我正在使用前26个素数的乘积。这需要超过52位的精度,我相信这是双倍可以处理的最大值,并且超过了十进制可以提供的28-29位有效数字。那么,对数字进行乘法和除法的策略是什么呢?使用大于最大十进制值的数字
此外,为了实现这一目标,我将不得不跳过什么样的箍环?
第22张素数(最让我可以在我的计算器一起乘而不落入科学模式)的产品是:
10,642,978,845,819,148,849,204,664,294,430
过去四年的产品是
72,370,439
当乘以一起时,我得到:
7.7023705133964511682328635583552e+38
性能影响a在这里尤其重要,因为我们基本上试图解决质数字符串比较解决方案在实践中是否比直接比较字符更快的问题。促使此次调查的帖子是here。处理器针对浮点计算进行了优化;理想情况下,我想在任何解决方案中充分利用优化。
TIA!
James
PS:我确实有的代码是针对竞争解决方案的;我不认为素数解决方案可能会更快,但我试图给它一个最公平的机会。
我可以在4.0中做到这一点,我还没有玩过它,但那将是完美的。你链接到的图书馆是非常令人印象深刻的......我很惊讶它自2002年以来没有更新,但可能没有需要。我会检查来源。非常好! – 2010-11-24 20:02:13
@James:给定的链接只是一个例子,告诉你在开源网站中有很多优秀的开源库。下次你需要一些图书馆时,试着找到一个。 – 2010-11-25 02:16:56