Exercise 4.35: Write a procedure
an-integer-between that returns an integer between two given bounds.
This can be used to implement a procedure that finds Pythagorean triples, i.e.,
triples of integers (
i
,
j
,
k
) between the given bounds such that
i
≤
j and i
2
+
j
2
=
k
2, as follows:
(define (a-pythagorean-triple-between low high)
(let ((i (an-integer-between low high)))
(let ((j (an-integer-between i high)))
(let ((k (an-integer-between j high)))
(require (= (+ (* i i) (* j j))
(* k k)))
(list i j k)))))
练习 4.35:编写一个过程 an-integer-between,它返回两个给定界限之间的某个整数。这可以用来实现一个寻找勾股数组的过程,即在给定界限内满足 i ≤ j 且 i² + j² = k² 的整数三元组 (i, j, k),如下所示:
(define (a-pythagorean-triple-between low high)
(let ((i (an-integer-between low high)))
(let ((j (an-integer-between i high)))
(let ((k (an-integer-between j high)))
(require (= (+ (* i i) (* j j))
(* k k)))
(list i j k)))))
(define (a-pythagorean-triple-between low high)
(let ((i (an-integer-between low high)))
(let ((j (an-integer-between i high)))
(let ((k (an-integer-between j high)))
(require (= (+ (* i i) (* j j))
(* k k)))
(list i j k)))))