我開始使用algortihm進行組合,但是當m在遞歸中變爲0時,第一個y將是'(()),所以程序將顯示只有()會重複4 *列表時間的大小。scheme - 顯示所有具有最大公約數的元素對1
(define (pairs-GCD L)
(define (comb m lst)
(cond ((= m 0) '(()))
((null? lst) '())
(else (append (map (lambda (y) (cond (equal? (GCD(car lst) y) 1) (cons (car lst) y))) (comb (- m 1) (cdr lst))) (comb m (cdr lst))))))
(comb 2 L)
) 編輯:校正後的輸出 輸入: '(2 5 3 6 11 15) 輸出:'((2 5)(2 3)(2 11)(2 15)(5 3) (5 6)(5 11)(6 11)(3 11)(6 11)(11 15))
你能提供一個帶有預期輸出的示例輸入嗎? –
剛剛添加了一些輸入和預期的輸出 – zaig
嗯,這不是'lcm',看起來更像'gcd'。另外,爲什麼'(2 15)'和'(11 15)'不包含在輸出中? –