1 C2 L. T. N4 l% b+ A0 c ! G* j/ v8 `" R( L3 l貌似三角形,并非三角形。, G2 |% V; U+ D
简单起见,假设格子是边长为1的正方形。红绿两三角形直角边比一个是3:8 一个是2:5 ,不相似,锐角也不等,所以接在一起两条斜边实际上是有夹角的,这样便围成了一个狭长的三角形。7 D+ \, H3 M y+ O, {& A
. O) l- U: F( S* ]/ b + ?1 L4 Y W4 C0 O0 G. u. t. H. N : |6 @) {- ?3 T/ |, a
6 Q4 {- O5 I- O
& b0 y) E* X; e; T
下面我们来算算这个狭长三角形的面积。 ( M g& b$ s3 p' w我们先求狭长三角形的三边长,然后用海伦公式求面积。! J- D1 Z- f5 k' V1 b+ P
(define (triangle-area a b c)1 ?8 e6 h( z. K& }/ d2 q" f( p! X' d
(let ((s (/ (+ a b c) 2)))5 J# L0 w5 O6 W- w, p
(sqrt (* s (- s a) (- s b) (- s c))))) ; Y& X7 a0 f4 \8 Z2 ^% E+ a; x* Z# ?$ S- U4 T% J6 Q
(define (hypo a b) : D+ @; |' U4 [+ d! v2 G) L(sqrt (+ (* a a) (* b b)))) 2 D4 D8 s. r! w0 d+ n9 ]
! M. _$ s7 a7 n: U5 r
(triangle-area (hypo 8 3) (hypo 5 2) (hypo 13 5)) , @$ M# s7 l& a0 J5 l; I( D! K
$ E' `4 Q' J2 W! j- s;0.4999999999994106 实际上刚好等于0.5。我还在想为什么…… & m9 ?8 t: g$ z" n# s 8 ?2 R% |- a: r+ O, R8 I, ~8 z M所以上下两个图形的面积差为2 * 0.5 = 1,这就解释了那个空格。 7 \! ~$ p9 O% a
J. R2 U" l' ~: V+ n: C3 R
3 y, n6 c/ k& ~: [- D0 d3 W
; ?: V6 T* p8 W. j1 M/ o- X9 _, _$ `+ T! J
总结( }# M+ O9 ~, Z! \& w$ Q7 ?
这个quiz非常巧妙,故意用扁长的格子,使红绿三角形顶角差异更小,组合图形的“斜边”夹角更加难以察觉,看上去完全就像是一条直线。 / h" H4 m/ E0 d
: }1 Z$ x' R/ F* [3 f( O8 X人总觉得“眼见为实”,看起来觉得是直角三角形便毫不怀疑,结果陷入困境。 0 r# |3 f1 ?# G" U% Y% H8 E2 S t
- r5 i( z8 D6 F8 \
反思一下,解决类似矛盾时,怎么才能避免落入思考的陷阱,明察秋毫呢? 2 E) {( e$ g' w X