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

时间:2011-03-11 10:15:32

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

}

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

7 个答案:

答案 0 :(得分:336)

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

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

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

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

答案 1 :(得分:41)

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

int r = (int) (Math.random() * (upper - lower)) + lower;

答案 2 :(得分:8)

int Random = (int)(Math.random()*100);

如果您需要生成多个值,那么只需使用 为此循环

 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*/

答案 3 :(得分:4)

像这样,

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

答案 4 :(得分:2)

使用Random.nextInt(int)

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

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

答案 5 :(得分:1)

Java在两个值之间没有Random生成器,就像Python一样。它实际上只需要一个值来生成Random。那么,您需要做的是为生成的数字添加ONE CERTAIN NUMBER,这将导致数字在一个范围内。例如:

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()是随机数本身的值,因为我把(100)在括号中,它是介于1和100之间的任何数字。所以当我加100时,它变成一个介于101和200之间的数字。你实际上并没有生成一个介于100和200之间的数字,你正在添加一个在1到100之间。

答案 6 :(得分:1)

也可以尝试下面的内容:

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