gpt4 book ai didi

c# - 使用大于最大十进制值的数字

转载 作者:行者123 更新时间:2023-11-30 14:41:20 26 4
gpt4 key购买 nike

我正在处理前 26 个素数的乘积。这需要超过 52 位的精度,我认为这是 double 可以处理的最大值,并且超过了 decimal 可以提供的 28-29 位有效数字。那么,对这么大的数字执行乘法和除法有哪些策略?

此外,要实现这一目标,我必须跳过的任何环节对性能有何影响?

前 22 个素数的乘积(我可以在计算器上最多相乘而无需进入科学模式)是:

10,642,978,845,819,148,849,204,664,294,430

最后四次的乘积是

72,370,439

当相乘时,我得到:

7.7023705133964511682328635583552e+38

性能影响在这里尤为重要,因为我们实质上是在尝试解决素数字符串比较解决方案在实践中是否比直接比较字符更快的问题。促使这项调查的帖子是 here .处理器针对浮点计算进行了优化;理想情况下,无论我最终得到什么解决方案,我都希望尽可能多地利用这种优化。

TIA!
詹姆斯

PS:我所拥有的代码是针对竞争解决方案的;我不认为素数解决方案可能会更快,但我正在尽我所能给它最公平的机会。

最佳答案

您可以使用 BigInteger在 C#4.0 中。对于旧版本,我认为您需要一个开源库,例如 this one

关于c# - 使用大于最大十进制值的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4263520/

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