【发布时间】:2021-02-06 12:08:18
【问题描述】:
我正在尝试解决一些有关方案中矩阵运算的练习。因此我有一个程序累积:
(define (accumulate operation startvalue sequence)
(if (null? sequence)
startvalue
(operation (car sequence)
(accumulate operation startvalue (cdr sequence)))))
例如:
(define (dot-product u v)
(accumulate + 0 (map * u v)))
向量(或矩阵)被定义为列表(或列表的列表),例如
(define v (list 1 2)) ;or
(define m (list (list 3 4) (list 5 6)))
现在必须实现矩阵向量积。 我应该得到这样的东西:
(define (matrix-vector-product m v)
(map + <?? v ??> m)
有人给我提示吗?
同行
更新:
我找到了一个计算矩阵向量积的解决方案。它并没有真正遵循(map <??> m) 的模式,但至少它使用了已经存在的过程。
(define (matrix-vector-product v m)
(if (not (pair? m)) '()
(cons (dot-product v (car m)) (matrix-vector-product v (cdr m)))))
【问题讨论】:
标签: matrix vector scheme accumulate