phpのrandom_int関数の分布はどうですか?phpのrandom_int()関数の分布
私はそれがgetrandom(2)と/dev/urandom
の分布になると思いますか?それらはどのように配布されますか?
random_int
は、均一分散乱数生成器に使用できますか?
phpのrandom_int関数の分布はどうですか?phpのrandom_int()関数の分布
私はそれがgetrandom(2)と/dev/urandom
の分布になると思いますか?それらはどのように配布されますか?
random_int
は、均一分散乱数生成器に使用できますか?
random_intのためのPHPマニュアルから:
Windowsでは、CryptGenRandom()が常に使用されます。
分布はOS依存であることを意味し
Linuxの場合、利用可能であればgetrandom(2)システムコールが使用されます。
他のプラットフォームでは、/ dev/urandomが使用されます。だから、
...
、私はそれが元の質問に答えることは簡単ではないと思うのPHPのrandom_int関数の分布は何ですか? '.. Linuxでは、例えば、a discussionからおよそint getrandom(void *buf, size_t buflen, unsigned int flags);
:
[...] The GRND_RANDOM flag bit can be used to switch to the /dev/random pool, subject to the entropy requirements of that pool [...]
ので、異なる実行時の引数に基づいて、ランダムな分布は、PHPのドキュメントから同じ OS ...
'/ dev/random'と'/dev/urandom'は同じ乱数発生源を使用する可能性が高いため、配布が異なるとは思わないでしょう。 – gordon
はい、あなたが正しいです...更新された答え... – MarcoS
よく私は尋ねる前にドキュメントのその部分を読んでいます。それはおそらくgetrandom(2)や/ dev/urandomに追加されたのです。おそらくgetrandom(2)と/ dev/urandomの配布について尋ねているはずです。したがって、OSに依存する部分は正しいです。しかし、パーハブでは、ウランダムとgetrandom(2)の分布についての回答が得られますか?あるいは、異なるハードウェアを「ランダムなハードウェアノイズ」に変更して、ディストリビューションを変更することさえできますか? – dfherr
が異なることがあります。「を生成します偏りのない結果が重大な場合に使用するのに適した暗号の乱数」である。これからは分布が一様であると仮定します。結局のところ、 'random_int'や'/dev/urandom'が統一されていなければ意味をなさないでしょう。なぜなら、他のディストリビューションのランダムなデータをユニフォームからランダムに生成するのは間違いありません。 – gordon
あなたにとって重要なのは、それをテストしてみませんか?特定のディストリビューションが必要であると仮定すると、マッピング関数を生成するための最初のステップになります。 – symcbean
@symcbeanは、私の理解から判断すると、ランダム性はハードウェア特有のものである可能性があるので、私の特定の環境のテストよりも一般的な概念に興味がありました。 – dfherr