Java生成两个给定值之间的随机数

我想知道如何生成两个给定值之间的随机数。

我可以用下面的方法生成一个随机数:

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)

对于更通用的“在两个数字之间”使用:

 Random r = new Random(); int Low = 10; int High = 100; int Result = r.nextInt(High-Low) + Low; 

这给你一个随机数在10(含)和100(不含)之间

假定上限是上限,下限是下限,那么可以在两个边界之间做一个随机数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; 

使用Random.nextInt(int) 。

在你的情况下,它会看起来像这样:

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

Java没有像Python那样在两个值之间有一个Random生成器。 它实际上只需要一个值来生成随机数。 那么你需要做的是在生成的数字中join一个一定的数字,这将导致数字在一个范围内。 例如:

 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()); } 

}

这个程序的function完全在第6行(以“int rand …”开头),注意Math.abs()只是将数字转换为绝对值,并将其声明为int,这并不重要。 (100)是我join到随机数字的数字,这意味着新的输出数字将是随机数字+100。numGen.nextInt()是随机数字本身的值,因为我把(100)在它的括号中,它是1到100之间的任何数字。所以当我加上100时,它变成了101到200之间的一个数字。实际上并不是在100和200之间产生一个数字,而是在1和1之间加上一个数字100。

也可以尝试下面的方法:

 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." ); } } }