我想在方案中有一个流,它包含一堆具有一定顺序的矩阵。
该流的流车将是矩阵 [1 6 0 3];也就是说,第 1 行 col 1 为 1,第 1 行 col 2 为 6,第 2 行 col 1 为 0,第 2 行 col 2 为 3。每个矩阵在技术上都是一个列表,但我有一个表示(构造函数和选择器)一个 2x2 矩阵。因此,这将是一个 2x2 矩阵流。
现在,流中的下一项应该是 [2 10 0 5]。这里的模式是下一个流中的矩阵增加如下: [k (4k+2) 0 (2k+1)] 其中 k 是第 k 个矩阵。
我有一个想法,我想如何存储这些。例如,我知道我可以通过以下方式获得连续的流:
(define ones (cons-stream 1 ones))
和一个连续的整数流:
(define integers (cons-stream 1 (add-streams ones integers)))
所以,我想要一个上述格式的连续矩阵流。也就是说,第一个(汽车流)将是由 [1 6 0 3] 表示的矩阵,然后是由 [2 10 0 5] 表示的矩阵,然后是由 [3 14 0 7] 表示的矩阵。
所以,我知道它会是这样的:
(define start-matrix '(1 6 0 3))
(define init-stream (cons-stream start-matrix
(add-streams ___________
init-stream)))
下划线是“我认为”是缺失的部分。我已经从这篇文章中删除了“添加流”程序来清理我的帖子。
***编辑:意识到我认为我的“开始矩阵”必须是 1 6 0 3,而不是 1 4 0 2。
但是必须有一种方法可以将 1 4 0 2 添加到第 k 个矩阵。