没有PHP扩展的大数字(权力......)

时间:2015-10-09 11:55:44

标签: php

<?php
$res = pow(5, pow(5, pow(5, pow(5, 5))));
echo $res;

输出:

INF

我知道它不能存储在64位浮点数中,但有没有办法计算这种大数? 我所有的尝试都失败了(总是这个“INF”)。

编辑:是的,我知道这个数字是巨大的,而这正是我想要计算的。 另外,我试图在没有扩展的情况下这样做(除非我完全理解扩展的功能,并且我能够自己编写代码)。

3 个答案:

答案 0 :(得分:1)

修改 如评论中所述,GMP extension可能有效,可能更适合整数数学。

另一位意见提供者建议提供比链接更多的信息。在这个和其他答案中提到的扩展比标准的内置php函数更适合更大的整数或更精确的浮点数。

但是......您可能无法将结果与gmp_pow结合起来,就像您在问题中一样。首先,你需要php 5.6来使用gmp数作为gmp_pow的参数。

另一方面,这个数字太大了,您可能需要使用gmp_powm,正如in this answer所述

原始答案 您可以尝试BCMath extension,但默认情况下可能无法安装。 (尽管BCMath可能更适合使用浮点而不是Ints)

答案 1 :(得分:0)

您可以尝试使用http://pear.php.net/package/Math_BigInteger/docs 它可以通过梨安装

答案 2 :(得分:0)

这两个会有所帮助   - BC数学扩展   - GMP库