Fibonacci数据类型

时间:2012-02-20 14:25:39

标签: c# c#-4.0 ienumerable

我正在编写Fibonacci系列生成器,我不确定应该使用哪种数据类型。这就是我正在做的事情:

  • 在Fibonacci系列中生成前1000个数字并将其存储在集合中。

  • 随机播放上述系列(即处理元素)并将其存储在新的系列中。

  • 通过以下规则转换上述2个集合来创建新集合 - 新集合中的每个元素将是前2个集合中相应元素的平均值,驻留在同一索引中。即newcollection [0] =(原始[0] + shuffle [0])/ 2。

我已经确定我的原始集合和随机集合应该是IEnumerable<long>。平均的收集应该是IEnumerable<double>,你认为这是正确的吗?我应该将IEnumerable<decimal>用于平均收集吗?

注意:最终所有集合都会刷新到控制台。

谢谢, -Mike

3 个答案:

答案 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元素是整数。