【发布时间】:2012-10-15 05:53:37
【问题描述】:
我想在方案中有一个流,它包含一堆具有特定顺序的矩阵。
这个流的流车将是矩阵[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 个矩阵。
【问题讨论】:
-
不清楚你的问题是什么。您对以上哪一部分有问题?
-
嗨,它的布鲁斯。感谢您阅读本文。我只想要描述格式的矩阵流。即 [1 6 0 3] 然后 [2 10 0 5] 然后 [3 14 0 7]。它不断地用这种模式制作一个矩阵流。实际模式是 [k (4k+2) 0 (2k+1)] 我通过删除“添加流”的定义和映射过程来稍微清理一下我的帖子。没有它们,我想要什么应该很明显。
-
是的,你想要一个无限流。创作的哪一部分你不知道该怎么做?还是您只是希望人们编写您尚未编写的所有代码?
-
不,一点也不。我在上面说“我知道它应该是……”。我错过了一个关键部分。相信我,我已经花了几个小时试图弄清楚这一点,但没有任何运气。
-
是的,但是由于您的答案除了基本规范之外缺少有关您想法的所有内容,那么其他人怎么能知道您缺少哪个关键部分?这就像说“我想造一辆汽车”,却没有解释是轮子还是引擎打败了你。