我正在尝试制作一个快速的Fibonacci算法。它通常需要将BigInteger分配给另一个变量,并且因为C#BigInteger是作为结构实现的,所以它需要复制整个数组,这可能是数千个整数。所以我需要一个可以通过引用获取的BigInteger实现。 .Net Reflector和ILSpy都只显示空实现。
无论如何,看到源代码会很有趣,如下所示: How does the BigInteger store values internally?
问题是每个所谓的源代码文件实际上都没有实现,dll和从以下位置下载: http://referencesource.microsoft.com/netframework.aspx
制作包装类无济于事,因为算法需要大量计算,即使简单的添加也需要整个数组的三个副本。
有谁知道为什么BigInteger是作为结构实现的?哪里可以找到源代码?
答案 0 :(得分:2)
如果您需要更快的实施;我建议你看看另一种实现方式;例如GNU Multi-Precision Library包装器。
您还可以查看BigInt的实现。
答案 1 :(得分:0)
BigInteger的完整源代码和整个.net核心现在最终可以在source.dot.net和github上获得。