我的应用程序(PHP)需要执行很多高精度的数学运算(总共可能出现100个数字)
通过这个论坛上的最后几篇文章,我可以知道我必须使用任何高精度的库,比如BC Math或GMP,因为float类型不能处理冗长的数据,因为它们的最大大小是有限的
由于我的应用程序需要十进制数字,而GMP不支持小数,因此选择BC Math是显而易见的
我只是想找出在性能方面最好的方法
案例一:在进行任何数学运算前先检查数值,如果结果超过浮动限制,则按常规方式进行计算,执行BC Math运算,得到准确的结果
案例2:从一开始就直接使用BC Math
假设50%的计算不需要高精度的数学计算。在这种情况下,哪一个的性能会更好
请给我建议
发布于 2013-09-30 22:08:57
我用WolframAlpha计算了一些很难的数学题。因此,我们的计算机上的WolframAlpha速度很快,如果您有互联网连接,就可以使用它。这是计算最大数的根的例子。并且结果很糟糕,请检查它。
<?php
function pow_a($a,$b){
$a = file_get_contents("http://www.wolframalpha.com/input/?i=$a"."%5E"."$b");
if(preg_match_all('/first\sbtn\"\>\<a\shref\=\"(.*?)\"/', $a, $m))
$b = file_get_contents("http://www.wolframalpha.com/input/".htmlspecialchars_decode($m[1][0]));
if(preg_match_all("/\"stringified\"\:\s\"(.*?)\.\.\./i", $b, $k))
return $k[1][0];
}
echo pow_a("9999999999999999999999999", "0.2222");
?>https://stackoverflow.com/questions/19080659
复制相似问题