gpt4 book ai didi

c# - .NET C#双等效项System.Numerics.BigInteger

转载 作者:太空宇宙 更新时间:2023-11-03 17:34:52 26 4
gpt4 key购买 nike

我目前正在编写一个计算pi位数的程序,但是我遇到了问题。经过三次迭代后,正确位数的数量超出了可用内存的两倍。
我听说过System.Numerics.BigInteger类型(在System.Numerics.dll中),但是我需要使用浮点数。我不太了解该算法以使用整数。

如果存在支持小数点的BigInteger版本,那就太好了。
下面我放了我的C#代码:

var a = 1.0;
var b = 1 / Math.Sqrt(2);
var t = 0.25;
var p = 1.0;
double anext, bnext, tnext, pnext;
int count = 0;

for (int i = 1; i <= accuracy; i++ )
{
anext = (a + b) / 2;
bnext = Math.Sqrt(a * b);
tnext = (t - p * ((a - anext) * (a - anext)));
pnext = 2 * p;

a = anext;
b = bnext;
t = tnext;
p = pnext;

var pi = ((a + b) * (a + b)) / (4 * t);

Console.WriteLine("Iteration = " + i.ToString());
Console.WriteLine("Pi = " + pi + "\n\n\n\n");
}

最佳答案

BigInteger类由BCL团队的Melitta Andersen编写,这是她的第一个项目。它实际上是在.NET 3.5中提供的,但已被隐藏,该类被标记为内部。直到.NET 4.0才公开。她还编写了一个浮点版本,称为BigRational。类似的问题,没有进入.NET 4.0。这些是我无法理解的奇怪且无法解释的决定。

但是,仍然可以使用BigRational的源代码。您可以下载it here

关于c# - .NET C#双等效项System.Numerics.BigInteger,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5189835/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com