子集和-lisp
我想用lisp写一个子集和问题。 示例:子集和-lisp,lisp,common-lisp,Lisp,Common Lisp,我想用lisp写一个子集和问题。 示例:(subsetsum'(1 2 3)5)=(2 3),(subsetsum'(1 5 3)2)=无 我只能使用函数 (atom x) (null x) (eq x y) (equal x y) (numberp x) (append x y) (car x) (cdr x) (cons x y) (if x y z) (cond ... ) (let ((x y) (u v)) z) (let* ((x y) (u v)) z) (defun ...
(subsetsum'(1 2 3)5)
=(2 3)
,(subsetsum'(1 5 3)2)
=无
我只能使用函数
(atom x)
(null x)
(eq x y)
(equal x y)
(numberp x)
(append x y)
(car x)
(cdr x)
(cons x y)
(if x y z)
(cond ... )
(let ((x y) (u v)) z)
(let* ((x y) (u v)) z)
(defun ...)
(quote x) and its short form 'x
(list x1 x2 ...)
(print ...)
(sort L fun)
我能得到任何提示吗 这个问题的简化推理如下:
L
和一个编号S
(rest L)(-S(first L))
(rest L)s
S
不为零,或者如果所有元素都大于零,甚至对所有元素求和,则无法到达S