Java で乱数を生成するには、主に 3 つの方法があります:
1、new Random()
2、 Math.random()
3, currentTimeMillis()
最初のタイプでは、生成するために java.util.Random クラスの助けが必要です。最も一般的に使用されるコンストラクターにも、Random() と Random(long seed) という 2 つのコンストラクターがあります。最初のものは現在の時刻をデフォルトのシードとして使用し、2 つ目は指定されたシード値を使用します。生成後、さまざまなステートメントを使用して、さまざまなタイプの数値が生成されます。
(関連ビデオ チュートリアルの共有: java ビデオ チュートリアル)
シードは、生成された乱数の最初の使用値であり、関数を使用して変換するメカニズムです。シード値は乱数空間内の特定の点に変換され、生成された乱数は空間内に均等に分散されます。今後生成される乱数は、前の乱数に関連しています。
例:
public static void main(String[] args) { Random r = new Random(1); for(int i=0 ; i<5 ; i++) { int ran1 = r.nextInt(100); System.out.println(ran1); } }
私のコンパイラによって生成された 5 つの数値はすべて 85,88,47,13,54 です。Random r = new Random() が使用される場合、乱数は次のようになります。これはシードを決定した結果です。
2 番目のメソッドで返される値は [0.0, 1.0) の double 値ですが、double クラス数の精度は非常に高いため、ある程度乱数とみなすことができ、型は (int) を使用して決定されます。変換後、整数の乱数を取得できます。
例:
public static void main(String[] args)2 { int max=100,min=1; int ran2 = (int) (Math.random()*(max-min)+min); System.out.println(ran2);6 }
3 番目の方法は一般的には使用されませんが、これもアイデアです。このメソッドは、1970 年 1 月 1 日の 0:00:00 (これは UNIX システムに関連します) から現在までの長いミリ秒数を返し、モジュロをとった後、必要な範囲内の乱数を取得できます。
例:
public static void main(String[] args) { int max=100,min=1; long randomNum = System.currentTimeMillis(); int ran3 = (int) (randomNum%(max-min)+min); System.out.println(ran3); }
関連記事チュートリアルの共有: Java 入門チュートリアル
以上がJavaでさまざまな乱数を生成する3つの方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。