問題タブ [random-seed]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Java で乱数ジェネレーターに特定のシードを使用する
以前にもここでシードについて多くの質問があったことは知っています。かなりの数を調べましたが、まだ苦労しています。これが繰り返しのように思われる場合は申し訳ありません! 基本的に、ユーザーに入力値 (シードになります) を要求し、そのシードを使用してランダムな値を生成します。私のコードは 2 つの別々のファイルにありますが、整理しておこうと思います。
ファイル 1:
ファイル 2:
random - lua での疑似乱数生成。可変ループの問題
わかりました、誰かが私よりも簡単にこれを行う方法を知っているに違いありません。かなり一般的な式を使用して乱数ジェネレーターを作成しようとしています。
などなど。これを行うためのより速い方法を知っている人はいますか? 私はそれを次のようなものに適合させたいと思っています:
文字列の型。卓上ゲームで作成しているトラックの乱数を生成するために使用しています。コードのハンクの例:
終わり
残念ながら、これを使用すると乱数分布のかなり悪いセットが生成されるようで、もっとうまく機能することを本当に望んでいます。可変ループサイクルを具体化するための可能な限りの支援をいただければ幸いです。math.random() が呼び出されるたびに X[loop count]] に 1 を追加する呼び出しのようなものでさえ、生成されたすべての数値が実際により良い疑似乱数分布になるようにします。
中途半端なネタバレをお許しください。私の心は、今、必ずしも順番に考えているとは限りません。
c++ - C++ でできるように、R で複数の独立した乱数ジェネレーターを使用できますか?
乱数を生成する必要がある多くの独立したランダム プロセス (到着プロセスなど) があります。これらのプロセスのそれぞれに共通の乱数を使用して、これらのポリシーを制御するときに異なるポリシーがどのように実行されるかを比較したいと考えています。
プロセス A をジェネレーター A に管理させたい (シード A を使用) プロセス B をジェネレーター B に管理させたい (シード B を使用) ..
等々。
これをRで実装することは可能ですか.それを行った人を見つけることができません. 私が試してみました。これが繰り返しの質問であれば、私を許してください。
ありがとう
ジャック
c - Cのchar配列を持つSrand?
Cでintの代わりにchar配列を使用してシードをランダムにするにはどうすればよいですか?
数字ではなくパスワードを使用したいのですが、srand整数のみを取ります。
これを行う方法はありますか?
r - グローバル R プロセスからローカル環境のランダム性を分離する
set.seed()Rでランダムシードを設定するために使用でき、これはグローバルな効果があります。私の目標を説明するための最小限の例を次に示します。
基本的に.Random.seed、R 関数などのローカル環境でグローバル ランダム シード (つまり ) の影響を回避できるようにして、ユーザーが制御できないある種のランダム性を実現できるようにしたいと考えています。たとえば、ユーザーが を持っていても、set.seed()この関数を呼び出すたびに異なる出力が得られます。
現在、2 つの実装があります。set.seed(NULL)最初のものは、乱数を取得するたびに R にランダム シードを再初期化させることに依存しています。
シードを 0 に設定しても、異なる ID 文字列が取得され、グローバルな乱数ストリームは引き続き再現可能であることがわかります。
2 番目の実装は、こちらの Github にあります。それはより複雑で、基本的な考え方は次のとおりです。
set.seed(NULL)(in.onLoad())を使用して、パッケージの起動時にランダム シードを初期化します。- ランダム シードを別の環境に保存する (
.globals$ownSeed) - 乱数を生成するたびに:
- ローカル シードをグローバル ランダム シードに割り当てる
- 乱数を生成する
- 新しいグローバル シード (ステップ 2 により変更されたもの) をローカル シードに割り当てます。
- グローバルシードを元の値に復元します
ここで私の質問は、2 つのアプローチが理論上同等であるかどうかです。最初のアプローチのランダム性は、createUniqueId()呼び出されたときの現在の時刻とプロセス ID に依存し、2 番目のアプローチは、パッケージが読み込まれたときの時刻とプロセス ID に依存しているようです。最初のアプローチでは、2 つの呼び出しがcreateUniqueId()同じ R プロセスでまったく同時に発生し、同じ ID 文字列が返される可能性はありますか?
アップデート
以下の回答で、Robert Krzyzanowski は、set.seed(NULL)重大な ID 衝突につながる可能性があるいくつかの経験的証拠を提供しました。私はそれを簡単に視覚化しました:

線がプロットの最上部に達すると、重複した値が生成されたことを意味します。ただし、これらの重複は連続して発生しないことに注意してany(x[-1] == x[-n])くださいFALSE。システム時刻に関連する重複のパターンが存在する可能性があります。時間ベースのランダム シードがどのように機能するかを理解していないため、これ以上調査することはできませんが、関連する C ソース コードはこちらとこちらで確認できます。
javascript - sinを使ったシードベースの世界生成
ランダムなものが必要なときはいつでも を使用して世界生成メカニズムを作成しようとしましMath.random()たが、シードベースが必要であると判断したため、シードが与えられたので、同じことを行うことを期待してすべてをMath.random()toに変更しましたが、Math.sin(seed++)/2+0.5種が同じ種である場合は同じになります。その後、誰かが正弦波が均等に分配されていないことに気付き、最終的にコードの一部が奇妙な動作をする理由がわかりました。簡単な修正があるかどうか、またはない場合は、このような別の非常に単純なシードベースのランダマイザーがあるかどうか疑問に思っていました
python - hash() のランダム化は暗号学的に強いと見なされますか?
CPython 3.3以降では、ハッシュのランダム化がデフォルトで有効になっています。以前のバージョンでは、-Rコマンドライン オプションを指定するか、PYTHONHASHSEED環境変数を に設定することで有効にできましたrandom。
ドキュメントを引用:
デフォルトでは
__hash__()、str、bytes、および datetime オブジェクトの値は、予測不可能なランダム値で「ソルト」されます。個々の Python プロセス内では一定のままですが、Python の呼び出しが繰り返される間は予測できません。
これは、生成された値が暗号的に強力であることを意味しますか?
haskell - 単純な Haskell モナド - 乱数
この投稿(受け入れられた回答)のコードを拡張して、シードを引数として受け取る関数 randomGen に基づいて、randomGen2 を呼び出して乱数を取得できるようにしようとしています。しかし、Int を返すにもかかわらず、randomGen2 を呼び出すたびに、Random を出力できなかったというエラーが表示されます (実際には、Int のみを出力しようとしています)。
コードは次のとおりです。
何か案は?
更新 - 予想される動作 インタープリター (例: GHCI) からこれを実行できるようになることを望んでいます -
つまり、シードを使用して getRandom 関数を設定し、 を使用してシードを格納するputと、この関数が戻って終了します。次に、他の処理を行ってから、再度 getRandom を呼び出すと、シードが保存されていたモナドからシードが取得されます。