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

Mus*_*Guy 134 java random numbers

我想知道如何在两个给定值之间生成一个随机数.

我可以使用以下代码生成一个随机数:

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

}
Run Code Online (Sandbox Code Playgroud)

但是,如何生成0到100(含)之间的随机数?

Eri*_*rik 361

你可以使用例如 r.nextInt(101)

对于更通用的"两个数字之间"使用:

Random r = new Random();
int low = 10;
int high = 100;
int result = r.nextInt(high-low) + low;
Run Code Online (Sandbox Code Playgroud)

这为您提供10(包括)和100(不包括)之间的随机数


小智 44

假设上面是上限,下面是下限,那么你可以在两个边界之间创建一个随机数r:

int r = (int) (Math.random() * (upper - lower)) + lower;
Run Code Online (Sandbox Code Playgroud)

  • 这是上层独有的 (2认同)
  • int r = (Math.random() * (上 - 下)) + 下; 它将包含较低的费用。这可能会有帮助。 (2认同)

小智 9

int Random = (int)(Math.random()*100);
Run Code Online (Sandbox Code Playgroud)

如果你需要生成多个值,那么只需使用for循环

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

如果你想指定一个更合适的范围,比如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*/
Run Code Online (Sandbox Code Playgroud)

  • 也许有点晚了,它总是与意见和代码风格绑定,但通常你不会创建一个大写的变量,所以"更好"将其命名为"随机"而不是"随机".类通常是大写的:) (2认同)

小智 6

像这样,

Random random = new Random();
int randomNumber = random.nextInt(upperBound - lowerBound) + lowerBound;
Run Code Online (Sandbox Code Playgroud)