与えられた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までの範囲の乱数を生成できますか?
あなたが使用することができますr.nextInt(101)
より一般的な「2つの数字の間」には
Random r = new Random();
int low = 10;
int high = 100;
int result = r.nextInt(high-low) + low;
これはあなたに10(包括的)と100(排他的)の間の乱数を与えます
上限を上限、下限を下限とすると、2つの範囲の間に乱数rを作成できます。
int r = (int) (Math.random() * (upper - lower)) + lower;
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*/
このような、
Random random = new Random();
int randomNumber = random.nextInt(upperBound - lowerBound) + lowerBound;
以下も試すことができます。
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." );
}
}
}
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。