擬似乱数ジェネレータの周期をどのように決定できますか?


14

線形合同擬似乱数ジェネレーター(PRNG)を使用しているとします。シード、乗算係数(a)、シフト係数(c)およびモジュラス係数(m)が与えられた場合、PRNGの期間をどのように決定できますか?実験/パターン検出アルゴリズムによって決定しますか、またはその期間を計算するための直接的な式はありますか? x0

私の質問は特に線形合同法に関するものですが、他のPRNGについても実際に期間がどのように計算されるかについて詳しく知りたいと思います。



ところで、LFSRを使用している場合、フィードバック多項式がプリミティブである場合、周期は最大になります。そのような場合には、期間私の知る限りでは(私を引用しないでください。私のコースのメモを掘るのが面倒)でどこフィードバックは、多項式P X FのQ [ X ]程度のN、及びqはの大きさであります係数のフィールド。qnp(x)Fq[x]nq

2
フロイドのサイクル検出アルゴリズムとブレントのサイクル検出アルゴリズムは、どちらもサイクルを検出する効率的な方法です。どちらも期間の複数のLを返します。それが得られたら、Lを因数分解して、期間の中で最小の因子がどれかを確認できます。
xdavidliu

回答:


12

フルサイクルの LCG PRNGに制限する場合、答えは簡単です。定義上は単純にmです。

特定のシードの非フルサイクルLCG PRNGの期間を見つけるには、シード値をもう一度生成するまでPRNGの反復回数をカウントする必要があります。

参照されているウィキペディアのページから

期間の長さ

一般的なLCG の周期は最大でmであり、一部の選択ではそれよりはるかに短くなります。仮定するとcゼロで、LCGは、すべてのシード値の完全な期間があります場合にのみを

  • cm比較的素数で
  • a1全てで割り切れる素因数m
  • a1mが4の倍数である場合、 a 1は4の倍数です。

cma

歴史的に、選択の悪さがLCGの非効率的な実装につながっていました。これの特に説明的な例は、1970年代初期に広く使用されていたRANDUであり、この貧弱なLCGの使用のために現在疑問視されている多くの結果につながります。

フルサイクルジェネレーターを使用する理由

フルサイクルのLCG PRNGに縛られないなら、あなたは大きなリスクを冒しています。

あなたはしていない場合は知っている与えられたLCGは、あなたが相互に異なる配列の任意の数の発電機で終わる可能性があり、そのうちのいくつかは、可能性がフルサイクルであることをあきれるほど小さく、おそらくさらに悪いことに、悪名高いよりも、ぞっとするランダム性を持っているRANDU発電機。

本当に可能なすべてのシード値をチェックして、アプリケーションに十分な長さのシーケンスが生成されることを確認する必要はありません。

参考文献

擬似乱数ジェネレーターの優れた入門書として、乱数に関する数値レシピの章を読むことを強くお勧めします。


それは本当ですが、私はフル期間のLCG PRNGに自分自身を制約していません...私は、フル期間を達成しないランダムストリームのような、a、c、およびmの貧弱な選択に興味があります。a、c、mが与えられた場合、期間がどうなるかを事前に知ることができるようにしたいと思います。上限はmであることは知っていますが、それよりもうまく処理して正確な期間を取得できるかどうか疑問に思っていました。
ポール

私はこれが専門性の毛を割っているとは思わない:質問は「任意のパラメータでLCGの期間を決定する方法」であり、この答えは「任意のLCGを使用せず、常に全期間LCGを使用し、そして、あなたがそうだと仮定する、あなたの質問に対する答え、定義により、可能な最大の期間になります」。この回答で説明されている全期間のLCFを使用することについての議論は完全に説得力がありますが、問題はその質問がまったく尋ねたことではないということです。
xdavidliu

@xdavidliuで申し訳ありませんが、あなたの新しいコメントが私の答えを改善するのにどのように役立つかわかりません。あなたは私が実際に質問に答えていないことに気付いたので、それを修正するために私の答えを編集し、それからあなたが笑顔になるかもしれないと思った方法で知らせます(あなたがフューチュラマのファンなら)。私はこれ以上何も言う必要がないと思います。
マークブース

スタック交換では、Computational Science Chatを使用するため、コメントは拡張ディスカッションを目的としていないことに注意してください。コメントは質問と回答を改善するためのものであり、気を散らすものなので、最小限に抑えるよう努めています。コメントは一時的なものと見なされるべきです。質問や回答の改善に積極的に役立たなくなったコメントは、いつでも削除て投稿を整理することができます。
マークブース
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.