ホームページ  >  記事  >  Java  >  Javaでさまざまな乱数を生成する3つの方法

Javaでさまざまな乱数を生成する3つの方法

王林
王林オリジナル
2020-02-04 16:56:084093ブラウズ

Javaでさまざまな乱数を生成する3つの方法

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。