次のような PHP で大きな乱数を生成する方法を探しています。
mt_rand($lower, $upper);
私が見たより近いのはgmp_random () ですが、リムあたりのビット数だけで下限と上限を指定することはできません (これが何であるかはわかりません)。
編集: Axsuuls の回答は、私が望むものにかなり近く、gmp_random に非常に似ているようですが、1 つのシナリオには 1 つの欠陥しかないようです。
次の間の乱数を取得したくないとします。
- 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;
}
}