Java Generate Random Number Between Two Given Values 
我想知道如何在两个给定值之间生成一个随机数。
我可以生成一个随机数,包括:
| 12
 3
 4
 5
 6
 7
 8
 
 | 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之间(包括0和100)的随机数?
您可以使用例如r.nextInt(101)。
对于更通用的"介于两个数字之间"使用:
| 12
 3
 4
 
 | Random r = new Random();
int  low = 10;
int  high = 100;
int  result =  r.nextInt( high- low) +  low; | 
这会给您一个介于10(含)和100(不含)之间的随机数。
		
		
- 谢谢你-我试过了,但好像不行。我使用从0到100(包括0到100)的随机数来填充多维数组;尝试此操作时,它会使用非常大和非常小的数字填充数组。例如,-3.76556749E8 3.0207573E8 2.033182079E9-6.86227134E8。
- 显示其余代码。例如,a。
- 你能公布一下你如何调用r.nextInt()和使用哪些值吗?
- @托马斯·埃多克斯
- 关于Java命名约定,变量名称应该从小写字符开始。
- 在此结果范围为10到100,r.nextint(高-低)给定范围为0到90
 
	 
假设上限为上限,下限为下限,则可以在两个边界之间生成一个随机数r,其中:
| 1
 | int r = (int) (Math .random() * ( upper -  lower)) +  lower; | 
		
		
- 这是上层的专享
- int r=(math.random()*(upper-lower))+lower;它将包含lower。可能会有所帮助。
 
	 
如果需要生成多个值,则只需使用为了那个循环
如果要指定更合适的范围,如从10到100(两者都在范围内)
所以代码是:
| 12
 3
 4
 
 |    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"更好。类通常为大写:)
- 如果max为integer.max_值,min为0,则此操作失败。使用math.round而不是casting to int来解决这个问题。
- 关于Java命名约定,变量名称应该从小写字符开始。
 
	 
这样地,
| 12
 
 | Random random = new Random();
int  randomNumber =  random.nextInt( upperBound -  lowerBound) +  lowerBound; | 
使用random.nextint(int)。
在您的情况下,它看起来像这样:
| 1
 | a[i][j] = r.nextInt(101); | 
您还可以尝试以下操作:
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 
 | 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." );
        }                     
    }
} | 
		
		
- 有点冗长和笨拙。您不需要重复该代码,只需要决定首先是使用n1还是n2的值。
- 关于Java命名约定,变量名称应该从小写字符开始。
 
	 
Java与Python一样,没有两个值之间的随机生成器。它实际上只需要输入一个值来生成随机值。然后,您需要做的是在生成的数字中添加一个特定的数字,这将导致数字在一个范围内。例如:
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 
 | 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之间的数字相加。