java同时生成两个随机数_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之间(包括0和100)的随机数?

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

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

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,其中:

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

这是上层的专享

int r=(math.random()*(upper-lower))+lower;它将包含lower。可能会有所帮助。

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

也许有点晚了,而且它总是与意见和代码样式绑定在一起,但是通常不会创建大写的变量,因此将其命名为"Random"而不是"Random"更好。类通常为大写:)

如果max为integer.max_值,min为0,则此操作失败。使用math.round而不是casting to int来解决这个问题。

关于Java命名约定,变量名称应该从小写字符开始。

这样地,

Random random = new Random();

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

使用random.nextint(int)。

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

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

您还可以尝试以下操作:

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一样,没有两个值之间的随机生成器。它实际上只需要输入一个值来生成随机值。然后,您需要做的是在生成的数字中添加一个特定的数字,这将导致数字在一个范围内。例如:

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之间的数字相加。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值