, l+ @0 |" Z- D, a+ I# @ 0 i8 o. |$ S! U# ~# t3 x2 O
* s- f7 q4 T" Z, q5 a$ r
: S( M( r" y' Q. _0 W8 ?下面我们来算算这个狭长三角形的面积。7 t+ h _6 |+ R
我们先求狭长三角形的三边长,然后用海伦公式求面积。, z O0 U p/ G! m& u( H7 Z
(define (triangle-area a b c)9 x# p; O+ w* {3 e8 S- l k, J
(let ((s (/ (+ a b c) 2))): k9 w8 p! w* Z/ R( }" N# U: ]
(sqrt (* s (- s a) (- s b) (- s c))))) . Z$ d9 R& `+ D Y5 B: Y" U) G+ g
7 ?( O/ j- t' I6 b4 }7 x. E
(define (hypo a b) 0 a7 n+ ^# j. h(sqrt (+ (* a a) (* b b)))) . {$ r- g. u2 D
9 U) L+ s( L& i. A8 j
(triangle-area (hypo 8 3) (hypo 5 2) (hypo 13 5)) 4 ]5 b% k4 X0 [
4 a# A, }) O9 k$ x: r;0.4999999999994106 实际上刚好等于0.5。我还在想为什么…… * R0 O/ d {5 e- b1 R
3 O. {; B& r- u1 D! K g$ M
所以上下两个图形的面积差为2 * 0.5 = 1,这就解释了那个空格。 7 c5 P' [/ w# e. K0 M
& _: h. @4 r' V: P! D* K# s. l2 v' m
4 L9 z, C5 v& ?! w( K5 ?. J, P总结7 z+ E; |. f, T; n
这个quiz非常巧妙,故意用扁长的格子,使红绿三角形顶角差异更小,组合图形的“斜边”夹角更加难以察觉,看上去完全就像是一条直线。 ( l. w1 u# F( F