计算成员的sumatori
你好我列出了几点。我需要得到两个结果。1º-. Sumatori Xn*Yn+1
2º-. Sumatori Yn*Xn+1
例子:
(setq lista_puntos '((9.0 10.0)(12.0 11.0)(10.1 11.5)(11.3 13.0)(7.0 13.5)(9.4 12.2)))
1º-.Sumatori Xn*Yn+1
(9.0 x 11.0)+(12.0 x 11.5)+(10.1 x 13.0)+(11.3 x 13.5)+(7.0 x 12.2)=606.25
2º-. Sumatori Yn*Xn+1
(10.0 x 12.0)+(11.0 x 10.1)+(11.5 x 11.3)+(13.0 x 7.0)+(13.5 x 9.4)=578.95
当做 可能还有很多更优雅的方式,但也许:
(defun db_s1 (l / tot)
(setq tot 0)
(while (> (length l) 1)
(setq tot (+ tot (* (car (car l)) (cadr (cadr l))))
l (cdr l)))
tot)
(defun db_s2 (l / tot)
(setq tot 0)
(while (> (length l) 1)
(setq tot (+ tot (* (cadr (car l)) (car (cadr l))))
l (cdr l)))
tot)
(setq lst '((9.0 10.0)(12.0 11.0)(10.1 11.5)(11.3 13.0)(7.0 13.5)(9.4 12.2)))
(prin1 (db_s1 lst))
(terpri)
(prin1 (db_s2 lst))
-大卫 (defun f1 ( l ) (apply '+ (mapcar '(lambda ( a b ) (* (car a) (cadr b))) l (cdr l))))
(defun f2 ( l ) (apply '+ (mapcar '(lambda ( a b ) (* (cadr a) (car b))) l (cdr l))))
_$ (setq l '((9.0 10.0) (12.0 11.0) (10.1 11.5) (11.3 13.0) (7.0 13.5) (9.4 12.2)))
((9.0 10.0) (12.0 11.0) (10.1 11.5) (11.3 13.0) (7.0 13.5) (9.4 12.2))
_$ (f1 l)
606.25
_$ (f2 l)
578.95 这两种解决方案非常好。太棒了。非常感谢你。
当做
页:
[1]