web-dev-qa-db-ja.com

Javaは与えられた2つの値の間で乱数を生成する

与えられた2つの値の間に乱数を生成する方法を知りたいです。

以下を使って乱数を生成することができます。

Random r = new Random();

for(int i = 0; i < a.length; i++){
    for(int j = 0; j < a[i].length; j++){
        a[i][j] = r.nextInt();
    }

}

しかし、どうすれば0から100までの範囲の乱数を生成できますか?

118
MusTheDataGuy

あなたが使用することができますr.nextInt(101)

より一般的な「2つの数字の間」には

Random r = new Random();
int low = 10;
int high = 100;
int result = r.nextInt(high-low) + low;

これはあなたに10(包括的)と100(排他的)の間の乱数を与えます

339
Erik

上限を上限、下限を下限とすると、2つの範囲の間に乱数rを作成できます。

int r = (int) (Math.random() * (upper - lower)) + lower;
43
user2512642
int Random = (int)(Math.random()*100);

複数の値を生成する必要がある場合は、そのためにforループを使用してください。

 for (int i = 1; i <= 10 ; i++)
       {
        int Random = (int)(Math.random()*100);
        System.out.println(Random);
       }

あなたがもっとまともな範囲を指定したいなら、10から100のように(両方とも範囲内にある)

そのため、コードは次のようになります。

   int Random =10 +  (int)(Math.random()*(91));
   /* int Random = (min.value ) + (int)(Math.random()* ( Max - Min + 1));
  *Where min is the smallest value You want to be the smallest number possible to       
  generate and Max is the biggest possible number to generate*/
8
Vytautas

このような、

Random random = new Random();
int randomNumber = random.nextInt(upperBound - lowerBound) + lowerBound;
4
user2754122

Random.nextInt(int) を使用してください。

あなたの場合は、このようになります。

a[i][j] = r.nextInt(101);
2
MAK

以下も試すことができます。

public class RandomInt { 
    public static void main(String[] args) { 

        int n1 = Integer.parseInt(args[0]);
        int n2 = Integer.parseInt(args[1]);
        double Random;

        if (n1 != n2)
        {
            if (n1 > n2)
            {
                Random = n2 + (Math.random() * (n1 - n2));
                System.out.println("Your random number is: " + Random);
            }
            else
            {
                Random = n1 + (Math.random() * (n2 - n1));   
                System.out.println("Your random number is: " +Random);
            }
        } else {
            System.out.println("Please provide valid Range " +n1+ " " +n2+ " are equal numbers." );
        }                     
    }
}
1
Sunil

Pythonと同じように、Javaには2つの値の間にRandomジェネレータはありません。 Randomを生成するために実際には1つの値しか取りません。あなたがする必要があるのはそれから、生成された数に1つの特定の数を追加することです。これは数を範囲内にすることになります。例えば:

package RandGen;

import Java.util.Random;

public class RandGen {


    public static Random numGen =new Random();

public static int RandNum(){
    int Rand = Math.abs((100)+numGen.nextInt(100));

    return Rand;
}

public static void main(String[]Args){
   System.out.println(RandNum());
}

}

このプログラムの関数は完全に6行目( "int Rand ..."で始まるもの)にあります。Math.abs()は単に数値を絶対値に変換し、それはintとして宣言されています。 (100)は私が乱数に追加した数で、これは新しい出力数が乱数+ 100になることを意味しますnumGen.nextInt()は乱数自体の値です、括弧内は1から100までの任意の数です。したがって、100を追加すると、101から200までの数値になります。 100。

1
David Behrens