0
我尝试实现一个函数,它计算方案中具有自然数n的拉格朗日四方定理。不过,我没有任何想法做到这一点...有人可以给我一个例子/代码吗?方案 - 拉格朗日的四方定理
例如,a^2 + b^2 + c^2 + d^2 = n,其中n是函数的输入。
我尝试实现一个函数,它计算方案中具有自然数n的拉格朗日四方定理。不过,我没有任何想法做到这一点...有人可以给我一个例子/代码吗?方案 - 拉格朗日的四方定理
例如,a^2 + b^2 + c^2 + d^2 = n,其中n是函数的输入。
你可以用两种功能(主要&辅助)做到这一点:
如果n为自然,(拉格朗日N)给出了所有的四胞胎(A,B,C,d),如清单^ 2 + b^2 + c^2 + d^2 = n。
(define lagrange
(lambda (n)
(lagrange-aux 4 0 n)))
(define lagrange-aux
(lambda (size m sum)
(cond ((and (zero? size) (zero? sum)) '(()))
((or (zero? size) (> (* m m) sum)) '())
(else (append (map (lambda (x) (cons m x))
(lagrange-aux (- size 1) 0 (- sum (* m m))))
(lagrange-aux size (+ m 1) sum))))))
实施例:
(lagrange 13) ==>
((0 0 2 3) (0 0 3 2) (0 2 0 3) (0 2 3 0) (0 3 0 2) (0 3 2 0)
(1 2 2 2) (2 0 0 3) (2 0 3 0) (2 1 2 2) (2 2 1 2) (2 2 2 1)
(2 3 0 0) (3 0 0 2) (3 0 2 0) (3 2 0 0))