我正在寻找一种使用 PHP生成大随机数的方法,例如:
mt_rand($lower, $upper);
我看到的是gmp_random () 但它不允许我只指定每个肢体的位数的下限和上限(我不知道它是什么)。
编辑:Axsuuls 的答案似乎与我想要的非常接近,并且与 gmp_random 非常相似,但是在一种情况下似乎只有一个缺陷。
假设我不想得到一个随机数:
- 1225468798745475454898787465154
和:
- 1225468798745475454898787465200
所以如果函数调用BigRandomNumber ():
BigRandomNumber($length = 31);
这可以轻松返回超出指定边界的 9999999999999999999999999999999。
如何使用最小/最大边界而不是长度值?
BigRandomNumber('1225468798745475454898787465154', '1225468798745475454898787465200');
这应该返回一个介于1225468798745475454898787465 [154 .. 200]之间的随机数。
作为参考,我认为解决方案可能必须使用此问题中提供的功能。
编辑:上面的帖子被删除了,这里是:
function compare($number1, $operator, $number2) {
$x = bccomp($number1, $number2);
switch($operator) {
case '<':
return -1===$x;
case '>':
return 1===$x;
case '=':
case '==':
case '===':
return 0===$x;
case '!=':
case '!==':
case '<>':
return 0!==$x;
}
}