RandomGeneratorState
擬似乱数生成器の内部状態表現を与える.
詳細
- RandomGeneratorState[…]は,生成器メソッド,メソッドのパラメータ,該当する場合は完全な内部状態を含んでいる.
- RandomGeneratorStateオブジェクトをSeedRandomに与えてそれが表す状態を回復することができる.
- メソッドの中には,それが作成されたカーネルセッションが継続している間しか存続できない状態を持つものがある.
- RandomGeneratorState[…]["prop"]で次の特性が抽出できる.
-
"CrossSessionPersistent" 内部状態が現行のカーネルセッションの終了後も存続するかどうか "Method" メソッド名 "StateHash" 整数による状態のハッシュ
例題
すべて開くすべて閉じる例 (2)
スコープ (5)
RandomGeneratorStateオブジェクトを使って再びシードする:
メソッドの中には同じセッション内でしか回復できないと述べているものもある:
SeedRandomは同じカーネルセッション内では期待通りに動作する:
新たなカーネルセッションでこの状態を回復しようとしても,メソッドは回復されるが状態は回復されない:
SeedRandomは,これらを使ってメソッドを設定することはできるが,乱数列は再生できない:
アプリケーション (1)
現行の乱数状態が回復できない場合は実行を拒むBlockRandomのバージョンを作る:
回復可能な状態を持たない乱数生成メソッドをアクティベートする:
このメソッドにはシードできないので,BlockRandomは再現可能な結果を与えることができない:
特性と関係 (5)
状態ハッシュの有効期限が切れていると,Noneが返される:
現行の乱数生成器の状態は,$RandomGeneratorStateに保存されている:
SeedRandomはRandomGeneratorStateオブジェクトを返す:
SeedRandomおよび関連関数で,RandomGeneratorStateオブジェクトをシードとして使うことができる:
SeedRandomでstateを使う:
これを使ってBlockRandom内に計算をシードする:
考えられる問題 (1)
セッション内限定のRandomGeneratorStateオブジェクトがSeedRandomに与えられると,コピーが作られる:
しかし,どちらのRandomGeneratorStateオブジェクトも同じ乱数列を生成する:
テキスト
Wolfram Research (2020), RandomGeneratorState, Wolfram言語関数, https://reference.wolfram.com/language/ref/RandomGeneratorState.html.
CMS
Wolfram Language. 2020. "RandomGeneratorState." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/RandomGeneratorState.html.
APA
Wolfram Language. (2020). RandomGeneratorState. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/RandomGeneratorState.html