[解決済み] シードを使用したJava乱数
2022-03-04 04:28:09
質問
これは、引数としてシードを使用して乱数を生成する私のコードです。
double randomGenerator(long seed) {
Random generator = new Random(seed);
double num = generator.nextDouble() * (0.5);
return num;
}
種を与えて100個の数字を生成しようとすると、毎回すべて同じ数字になる。
どうすれば直るのでしょうか?
解決方法は?
同じシードを与えているのであれば、それは正常なことです。これはテストを可能にする重要な機能です。
擬似乱数生成とシードについて理解するために、こちらをご覧ください。
疑似乱数生成器(PRNG)は、決定論的乱数生成器(Deterministic Random Generator)とも呼ばれる。 ランダム・ビット・ジェネレータ DRBGは、ランダムなビット列を生成するためのアルゴリズムである。 乱数の性質に近似した数値のことです。ただし という点で、シーケンスは真のランダムではありません。 によって完全に決定されます。 PRNGの状態と呼ばれる、比較的小さな初期値のセット。 には、真にランダムな種が含まれています。
もし、異なるシーケンスを持ちたい場合(アルゴリズムのチューニングやデバッグをしない場合の通常のケース)、毎回異なるシードを取得しようとするnanoTimeを使用するゼロ引数のコンストラクタを呼び出す必要があります。これは
Random
のインスタンスは、もちろんあなたのメソッドの外側に置いておくべきです。
あなたのコードは、おそらくこのようになるはずです。
private Random generator = new Random();
double randomGenerator() {
return generator.nextDouble()*0.5;
}
関連
-
[解決済み] JavaでFileFilterを作るには?
-
[解決済み] IntegerからBigIntegerへの変換
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] JavaでNullPointerExceptionを回避する方法
-
[解決済み] JavaScriptでランダムな文字列/文字を生成する
-
[解決済み] JavaScriptで特定の範囲のランダムな整数を生成する?
-
[解決済み] 乱数(int)を生成する方法を教えてください。
-
[解決済み] JavaScriptで2つの数値の間の乱数を生成する
-
[解決済み] 英数字のランダムな文字列を生成する方法
-
[解決済み] ランダムな文字列を使用するこのコードは、なぜ "hello world" と表示されるのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] JVMフラグCMSClassUnloadingEnabledは、実際に何をするのですか?
-
[解決済み] ストリングビルダー.イコール Java
-
[解決済み] enumのordinalを使用するのは良い習慣ですか?
-
[解決済み] 環境変数JAVA_OPTSの使い方を教えてください。
-
[解決済み] Oracle DB : java.sql.SQLException: 閉じた接続
-
[解決済み] Java の条件付きコンパイル:コードチャンクをコンパイルしないようにするには?
-
[解決済み] JavaにおけるMouseListenerとMouseAdapterの違いについて
-
[解決済み] アニメーションGIFの表示
-
[解決済み] Javaコンパイラーエラー:ステートメントではありません
-
[解決済み] ヘッドリカーシオンとテールリカーシオンの違い [重複]について