我正在编写Fibonacci系列生成器,我不确定应该使用哪种数据类型。这就是我正在做的事情:
在Fibonacci系列中生成前1000个数字并将其存储在集合中。
随机播放上述系列(即处理元素)并将其存储在新的系列中。
通过以下规则转换上述2个集合来创建新集合 - 新集合中的每个元素将是前2个集合中相应元素的平均值,驻留在同一索引中。即newcollection [0] =(原始[0] + shuffle [0])/ 2。
我已经确定我的原始集合和随机集合应该是IEnumerable<long>
。平均的收集应该是IEnumerable<double>
,你认为这是正确的吗?我应该将IEnumerable<decimal>
用于平均收集吗?
注意:最终所有集合都会刷新到控制台。
谢谢, -Mike
答案 0 :(得分:3)
IEnumerable<long>
适用于(无限)发电机。
但是,IEnumerable
接口不保证对元素的常量(O(1))随机访问,这至少对于混洗是必需的。因此,您应该将生成器的结果存储到IList<long>
或简单数组中。
编辑:
我做了一些研究,似乎即使是第100个斐波纳契数也不适合长(check Wolfram alpha)。您必须在此处使用一些big integer数据类型...
答案 1 :(得分:0)
为什么不使用标准数组? int [1000]和double [1000]?
答案 2 :(得分:0)
只需使用List<int>
,因为Fibonacci元素是整数。