这个问题在这里已有答案:
所以我需要得到25到75之间的随机数,我尝试了两件事:
System.out.println(random.nextInt(75)+25);
System.out.println((int)(Math.random()*75) + 25);
根据我的理解,我在两行中写的“75”应该是我得到的最大数字,“25”应该是最小的数字。但是,我得到的数字如下:
84,94,82,79,98 // these are only the numbers that went out of range
我想我误解了nextInt和Math.random的规则。我怎样才能得到我想要的数字(25到75之间)?
想想这部分:
random.nextInt(75) + 25
你生成一个0到74之间的数字,然后加上25.这会产生一个从25到99的随机数。如果它生成74并且你加25,它就变成99。
您需要在生成之前减去下限:
random.nextInt(75 - 25) + 25)
您的示例范围是25
到100
,因为您在结果中添加了二十五个。你想要的东西
System.out.println(random.nextInt(75 - 25) + 25);
因为你想要一个0
到50
范围内的值,然后通过增加二十五来将它向上移动二十五。