为了账号安全,请及时绑定邮箱和手机立即绑定

为什么 Random.nextInt() 和 Math.random 超出了我设置的范围?

为什么 Random.nextInt() 和 Math.random 超出了我设置的范围?

精慕HU 2022-08-17 12:27:06
所以我需要得到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之间)?
查看完整描述

2 回答

?
九州编程

TA贡献1785条经验 获得超4个赞

想想这部分:

random.nextInt(75) + 25

您正在生成一个介于 0 和 74 之间的数字,然后加上 25。这将生成一个从 25 到 99 的随机数。如果它生成 74,而您添加 25,则它变为 99。

您需要在生成之前减去下限:

random.nextInt(75 - 25) + 25)


查看完整回答
反对 回复 2022-08-17
?
饮歌长啸

TA贡献1951条经验 获得超3个赞

您的示例的范围是,因为您在结果中添加了二十五。你想要这样的东西25100

System.out.println(random.nextInt(75 - 25) + 25);

因为你想要一个范围中的值,然后通过添加二十五个来将它向上移动二十五个。050


查看完整回答
反对 回复 2022-08-17
  • 2 回答
  • 0 关注
  • 587 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号