πやeなどの無理数を使用して乱数を生成できますか?


21

、、およびような無理数には、小数点の後に一意の非反復シーケンスがあります。このような数値から番目の数字を抽出し(はメソッドが呼び出される回数)、数字をそのまま使用して数字を作成する場合、完全な乱数ジェネレーターを取得する必要はありませんか?たとえば、、および場合、最初の数値は123、2番目の数値は471、次の数値は184などです。πe2nn2eπ


30
頭の中に「ランダム」という奇妙な定義があります。「ランダム」は「予測不能」を意味します。シーケンスはどのように予測不能ですか?「ランダム」の定義は何ですか?おそらく、「ランダム」と呼んでいるものには別の名前があります。
エリックリッパート

7
スピゴットアルゴリズムは前の数字を生成することなく、PI内の任意の16進数を生成するために使用することができます。
rcgldr

10
@EricLippertすべての擬似乱数ジェネレーターは予測可能ではありませんか?
フェデリコポロニ

7
この用語は数回登場しました。これは「乱数」ではなく「擬似乱数」です。これは、アルゴリズムで生成された(ランダムではない)数値ですが、乱数が持つ多くの望ましい特性を備えています。もう1つのアルゴリズムは「NYC phonebook」アルゴリズムです。このアルゴリズムでは、電話番号のリストをアルファベット順にたどり、それぞれから最後の数字を取得します。ランダムではなく、いくつかのかなり良い統計的動作を伴う擬似ランダム!
コートアンモン-モニカを

5
「疑似」とは、「似ているがそうではない」ことを意味します。したがって、擬似乱数は乱数に似ていますが、乱数ではありません。だから私はここであなたの思考の流れに従っていません。現在、暗号強度のPRNGには、内部状態が攻撃者に知られていない場合、所有する統計的テストでは暗号PRNGと真のRNGを区別できないという望ましい特性があり、予測不可能性も含まれます。しかし、piの数字にはそのプロパティがありません。彼らは非常に予測可能です。
エリックリッパー

回答:


17

最も明らかな欠点は、無理数に基づいたPRNGアルゴリズムの不必要な複雑さです。たとえば、生成された桁ごとに、LCGよりもはるかに多くの計算が必要です。通常、この複雑さはシーケンスを進めていくにつれて大きくなります。2兆番目のビットで256ビットのπを計算するには、1000台のコンピューターで23日かかりました(2010年に遡ります)-RNGにとってかなり法外な複雑さです。


47

完全の合理的な定義については、説明するメカニズムは完全な乱数ジェネレーターではありません。

  • 繰り返さないだけでは十分ではありません。10進数0.101001000100001は繰り返しありませが、答えは「常に」ゼロ、場合によっては1であり、それ以外のものではないので、ランダムな数字のひどいジェネレータです。

  • 実際に、πまたは  e 10進展開ですべての数字が同じ頻度で発生するかどうかはわかりません(そうなると思われますが)。

  • 多くの場合、乱数は予測不可能である必要があります(実際、ランダムな人に「ランダム」の意味を尋ねると、おそらく予測不可能なことを言うでしょう)。既知の定数の数字は完全に予測可能です。

  • 通常、乱数を合理的に迅速に生成したいのですが、数学定数の連続した数字を生成するのは非常に高価になる傾向があります。

  • しかし、πと  e数字が統計的にランダムに見えるのは、数字の可能なすべてのシーケンスがほぼ必要な頻度で発生するように見えるという意味で真実です。そのため、たとえば、各数字は10分の1に非常に近い頻度で発生します。100に1に非常に近い各2桁のシーケンスなど。


11
3番目のポイントについては、予測できないように生成プロセスに何らかの「秘密」の入力が必要です(さらに別の乱数ジェネレーターに依存したくない場合は、生成プロセス自体が決定論的である必要があります)。この追加の入力は、多くの場合シードと呼ばれます。
離散トカゲ

6
@Discretelizardこれは事実ですが、「位置始まる連続した数字を返す」以外のシードの範囲はあまりありません。あなたが見てきた時点で2 ログ桁を、その順序は、最初の内だけで数回発生し、S 2つの桁π、それは最初の内で一意ですので、sの高確率で数字とあなたが種を知っています。s2logss2πs
デビッドリチャービー

2
@Barmar:その時点で、この手法が「標準」PRNGよりも実際にパフォーマンスが高い(そしてスペース効率が高い)かどうかを尋ねる必要があります。
ケビン

2
piまたはeの数字完全に予測不能です。これは、特に視聴者/受信者/コードブレーカーなどが、あなたが既にあるシーケンスのどこまで進んでいるかわからないためです。シーケンスの237423桁目から開始すると、ランダムであるため、計算に時間がかかります。
リバースエンジニア

10
@DaveBoltman暗号化のようなことをしていないなら、誰もそれをわざわざわざわざ気にするほど気にしません。暗号化を行っている場合、攻撃者は使用しているアルゴリズムを知っていることが標準的な前提です。この場合、シーケンスの元となる無理数と、次のようなパラメータを除く数字の選択方法が含まれます「数字開始」。敵があなたが使用している数字を知らない場合、次の数字は文字通り何でもかまいませんが、彼らはそれがだと推測しますsとゲームがアップしました。my birthday
デビッドリチャービー

29

攻撃者はすべての数字を予測できるため、暗号的には役に立ちません。また、非常に時間がかかります。


11
OPは暗号...言及したことがない
AnoE

13
@AnoEだから?暗号はランダム性の熱心なユーザーであるため、このプロセスが暗号的には役に立たないことは依然として関連しています。デバイス/dev/randomを立ち上げると、/dev/urandom誰かが必ず暗号を立ち上げるでしょう。
グレッグシュミット-モニカを

6
リアルタイムPRNG生成において、暗号化セキュリティが役に立たないことに驚くでしょう。GPU PRNGでは、無理数がよく使用されます。PRNGの「安全性」がまったく関係のないアプリケーションがたくさんあります。コヒーレントノイズ生成のようなもので重要なのは、分布の品質と周期が繰り返される頻度、および隣接するシード(修正するにはアバランシェミキサーが必要)による相関効果です。正直に言って、あなたの答えは間違っていて、ここには属していないので、おそらく削除すべきです。
WHN

6
これは質問に対する答えではありません。リンクされた質問のOPは、モンテカルロ分析のシードに乱数を使用することに注意してください。質問に対処するための更新を検討する必要があります。 mathoverflow.net/questions/26942/...
CramerTV

8
確かに、PRNGを暗号で保護する必要がない多くのアプリケーションがあります。しかしOPは、それが何らかの目的に役立つかどうかを尋ねず、彼らはこの方法が「完璧なRNG」であるかどうか尋ねました。彼らが「完璧」とはどういう意味かを明確にしていないが、それがRNGの主要な用途の1つに適していないという事実は、その質問に答えることに非常に関連があるようだ。
ジェフリーブレント

7

(乱数ジェネレーターは単一の通常シーケンスと同じものではないことを多くの人々が指摘した後に更新されました)

πから通常のシーケンスを取得できるかどうか(つまり、すべての数値が均一に表示されるかどうか)を尋ねると、mathoverflowにはいくつかの答えがあります。たとえば、Piの数字の分布に関する答えは次のとおりです。

... πは通常の数であると考えられています(〜すべての数字列の均一な分布)。π

桁分布データについては、http//www.eveandersson.com/pi/precalculated-frequenciesまたはhttps://thestarman.pcministry.com/math/pi/RandPI.html(最初の1000桁)を参照してください

enter image description here

mathoverflowには、次の優れた回答もあります。


3
質問が重複していると思われる場合、なぜ答えているのですか?望ましくない投稿動作を強化するのではなく、単にフラグを立てる必要があります。
dkaeae

8
@dkaeae他のサイトでの質問の重複はサポートされていません。さらに、異なるサイトで同じ質問に異なる回答を得ることができます。この場合、数学などのサイトでは、セキュリティ上の問題をあまり考慮しないかもしれません。この回答も参照してください。複数のサイトで同時に同じ質問をすることは、無駄な努力につながる傾向があるため、お勧めできません。しかし、異なるサイトで異なる時間に異なる人が同じ質問をすることは通常大丈夫です。
離散トカゲ

6
残念ながら、数字が正常だからといって、その数字を出力することで良いRNGが得られるわけではありません。そのようなRNGの出力は、まだ完全に予測可能です。それが許容できるかどうかは、アプリケーションによって異なります。したがって、「piは正常で、ケースが閉じられている」と言うほど単純ではないと思います。
DW

2
これは、最初の数桁の単なる観測です。それはどういう意味ですか?
マーシャルクラフト

1
@DWπやeのような数字の組み合わせを使用するつもりだと述べました。そして、ジェネレーターがどの程度シーケンスを下げたかわからない場合に、出力がどのように予測可能になるかを教えてください。
Abhradeep Sarkar

1

一般的に、このアプローチは機能しません。「ランダム性」は、多くの異なる数字を取得することを意味しませんが、他の側面もあります。たとえば、古典的なテストでは、2桁または3桁などのすべての組み合わせが同じ頻度で発生するかどうかを確認します。これは非常に単純なテストであり、明らかな非ランダムな結果を除外できますが、実際にはランダムな動作をチェックするにはあまりにも単純すぎます。

これに関する主要な情報源へのリンク集として、ランダムネステストに関するウィキペディアのページを参照してください。彼らはかなり複雑な響きの概念をたくさん述べています。これについて深く掘り下げることはそれほど重要ではありませんが、特定の番号をそのような数字の良いソースとして宣言することは直感的に不可能であることは明らかです。

肯定的な注意:特定の無理数については、もちろんそれを試してみてください。すなわち、十分に大きな桁までの数を計算し、すべての既知のテストを実行します(そのためのツールがあります。上記のリンクを参照してください)。対策は、あなたのユースケースのための良い十分であり、あなたが認識している場合、これは暗号学的用途のために明らかに無用であること、そしてあなたは、最初からやり直す必要がある場合は、必ず同じ番号を取得し、あなたが乗り越える場合品質が低下する可能性がある場合はn、あなたが選びましたランダム性をテストするには、これらの数値を使用できます。ただし、専用の(擬似)乱数ジェネレーターを使用する方がはるかに優れています。そして、ランダム性の良い物理的ソースに勝るものはありません。


4
OK π そして eすべての2、3、4、...の数字列が正しい周波数で経験的に現れるという性質を持っています。誰もそれを証明することができませんでしたが、それは本当のようです。
デビッドリチャービー

3
Ayratの回答は、数学者がこれらのテストを行った他のサイトにリンクしています。彼らは、πが統計的検定を満たしていると信じていますが、証明されていません。
バーマー

はい、それが最後の段落で私が意味したことです-経験的に試してみるだけの価値があります。しかし、任意の「複雑に見える」非合理性については厳密に証明されていません(または単に真であると仮定することはできません)。@ DavidRicherby、@ Barmar
AnoE

1

多くの擬似乱数と同様に、それがどのように生成されたかがわかるまで、適切な乱数を提供します。選択した非合理的(非代数的および非超越的)な数字は一般的であり、他の数字よりも簡単に推測できます。あまり一般的ではないジェネレータを選択した場合、この方法で問題は発生しません。


4
No issue except the gross inefficiency, the fact that you're relying on any adversary not knowing what your algorithm is, the fact that a bad choice of generator could lead to very poor sequence, ...
David Richerby

4
By the way, of the numbers suggested in the question, 2 is algebraic and π and e are transcendental.
David Richerby

A transcendental number is a real number that is not algebraic. It is not possible for a real number to be both non algebraic and non transcendental.
Brady Gilg
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.