ホームページ >Java >&#&チュートリアル >Math.random() と Random.nextInt(): 乱数の生成にどちらを使用する必要があるか?
Math.random() ではなく Random.nextInt() を使用する理由
Math.random() と Random.nextInt の選択() は希望に応じて異なりますresult.
Math.random()
Math.random() は、0.0 から 0.9999999999999999 (1.0 より 1 小さい) のランダムな double を生成します。この値に整数 n を乗算すると、0.0 から n-1 までの double が得られます。ただし、この double を整数にキャストすると、可能な値が不均一に分布しているため、バイアスが生じます。具体的には、値 0 と n は他の値よりも発生する可能性が高くなります。
Random.nextInt()
対照的に、Random.nextInt(n) は0 から n-1 までの整数 (両端を含む)、一様分布。このメソッドは、より効率的なアルゴリズムを使用するため、高速かつランダム性の保持が向上します。
サイコロのロールに Random.nextInt() を使用する理由
サイコロのロールの場合Random.nextInt() の方が優れているのは間違いありません。その理由は次のとおりです。
追加の考慮事項
太陽による指摘応答でリンクされているフォーラムの投稿:
以上がMath.random() と Random.nextInt(): 乱数の生成にどちらを使用する必要があるか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。