問題タブ [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.
javascript - シードされた乱数
私はしばらくの間疑問に思っていました。シード中に数値をランダムにする良い (そして高速な) 方法はありますか? 1 つの数値を一見乱数に変換する優れたアルゴリズムはありますか?
ちょっとした例:
出力も巨大な数になることができれば、とてもいいでしょう。
注:プログラムを再起動するたびに同じ出力が必要なため、配列に大きな違いを与えることができるようにしたいので、配列を埋めて数字をランダム化したくありません
c++ - ランドはシードを変更せずに値を変更します
次のプログラムを受講してください。
rand
を使用してシードが変更されない限り、同じ値を生成するためsrand
、これは3つの同じ数値を生成するはずです。
例えば
ただし、このプログラムを実行すると、3つの異なる値が表示されます。
例えば
プログラムが(コンパイルされて)再度実行されると、同じ3つの数値が生成されます。srand
とは異なる結果を得る前に、シードを変更するために使用する必要はありませんrand
か?これは私のコンパイラ/実装が私に有利にしようとしているだけですか?
OS:Windows XP
コンパイラ:GCC 4.6.2
ライブラリ:MinGW
編集:を使用しようとするとsrand
、これが1のシードからの結果であることがわかりました(これはデフォルトになっていると思います)。
c# - C# フック : System.Random
System.Random
クラスを使用するソフトウェアを監視したいと考えています。
できるようにしたい:
1/ すべての Random インスタンスの作成を監視する
2/ このインスタンスで使用されるシードを強制する、
または 2bis/ ランダムの結果を自分のランダムに強制する
ソフトウェアが異なるコンピューター上でも常に同じように動作する必要があるため、それと通信する独自のソフトウェアをより適切にテストできます。
EasyHook のチュートリアルを読みましたが、クラスの作成やクラス メソッドのフックではなく、関数のフックについてのみ言及していると思います。
perl - localtime をシードとする Perl の rand() 関数
次のコードを見てください。
上記のコードを十分な時間(5〜10秒)間隔で複数回呼び出しますが、出力シーケンスは同じです。
すべての呼び出しにシードを設定したのでlocaltime
、異なるシードを使用する必要があり、時間のギャップのために、おそらく異なる 3 つの数字のシーケンスを生成する必要があります。何度も同じシーケンスを取得するのはなぜですか。
注: コードはループ内ではなく、複数回実行される Perl ファイル内にあります。
ドキュメントによると、複数のインスタンスが同じ「秒」で実行されて同じシードにつながると、このシードは失敗しますが、ここではそうではありません。
編集:: @simbabqueによる解決策は役立ちますが、期待されるランダム性は得られません。以下の前述のソリューションに関する私のコメントを見てください。
c++ - 実行時に srand() を変更する方法
私はsrand(
固定シードで ) を使用しており、100、200、300、...、1000 などの一連の異なるシードを使用してテストを実行する必要があります。これは可能ですか?事はsrand()
mainの冒頭で定義されているので、シードを変数で制御する方法がわかりません。
python - Pythonのランダムシードの範囲は何ですか?
モジュール内の 1 つのクラスでPython 関数を使用する場合random.seed(my_seed)
、このシードは、このモジュールでインスタンス化された他のすべてのクラスに残りますか?
matlab - matlabを使用したすべてのシミュレーションで同じ結果が得られます
重複の可能性:
疑似乱数ジェネレーターのカスタムシードを設定する方法
私はmatlabを使用していくつかのシミュレーションを構築しており、rand
関数を使用しています。
毎回同じ結果を得たいと思います。rand関数のシードを設定する必要がある場所を読みました。使ってみました
しかし、それは機能しませんでした。間違えましたか?
c++ - C++ クラスの rand() のシード
rand()
コンストラクターでa を使用する C++ クラスに取り組んでいます。このクラスがほぼすべての方法で自分自身を処理することを本当に望んでいますが、シードする場所がわかりませんrand()
。
コンストラクターをシードrand()
すると、オブジェクト タイプの新しいインスタンスが構築されるたびにシードされます。したがって、3 つのオブジェクトを順番に作成すると、それらはすべて同じ秒で作成されるためrand()
、 のシードが同じになり、オブジェクトの 3 つのインスタンスのそれぞれについてまったく同じデータが生成されます。
rand()
オブジェクトを作成する前にプログラムのメイン関数でシードするのではなく、クラス コード内でシードしたいと考えています。static bool seeded;
まだシードされているかどうかを示す変数を作成することを考えrand()
ましたが、クラスの作成時に false に初期化する方法がよくわかりません。
私の考えは次のようになります
プログラムの開始時に静的な値を一度だけ false に初期化する方法を理解できれば、これはうまくいくと思います。この static 値を true に変更すると、オブジェクトが静的である場合、オブジェクトのすべてのインスタンスが引き継がれるため、そのオブジェクト タイプが最初に作成されたときにのみシード関数が実行されることを理解しています。
python - Python .seed および .randrange if-else ステートメントのセットアップ
私のプログラムは非常に複雑です。以下の簡単なバージョンを提供しています。
以下は、上記のコードを使用するコードです。これは、deterministic が ==1 の場合に関数が実行され、deterministic==2 の場合に別の関数が実行される if-elif ステートメントです。
ここで、上記のコードの 2 つの関数を示します。問題は彼らにあると私は信じています。最初の関数は乱数を与え、毎回異なる乱数を与える可能性があります。2 番目の関数は、.seed を使用して、乱数を毎回同じ「乱数」に制限します。
def updateDisplayAllVar(選択、位置、時間、エネルギー):
今私の問題は...このコードでは、決定論的(乱数なし)モードを選択しなくても、ランダムではなく、2番目の関数に基づいた数値が得られることです。つまり、そこには 2 つの関数があり、ユーザーの入力に基づいて各関数を実行するように要求していますが、常にdeterministicMode(selection,position,time,energy)
実行されます。誰かが修正を知っていますか。不明な点があればお知らせください。修正します。