问一个取随机数的问题

noaso 2010-03-26 10:47:16


比如输入 a , b 取之间的随机数


用 int num = (int)(a + Math.random()*(b-a+1));

输入的 a比b小 没问题

但是输入 a比b大 怎么也能出来

后面不是就成负数了么?

...全文
103 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
noaso 2010-03-27
  • 打赏
  • 举报
回复
谢谢大家的帮助!

4楼的正确!

dj4kobe 2010-03-27
  • 打赏
  • 举报
回复
a比b大时,a加一个负数,是不是比a小啊(但又比b大)
liu_liyang 2010-03-27
  • 打赏
  • 举报
回复
我在群里就说的是Random。。你不用 。。现在看来问题还是解决的不够彻底啊
sky123123 2010-03-27
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 shan1119 的回复:]

用 int num = (int)(a + Math.random()*(b-a+1));

a比b小:结果范围是a 到 b之间的随机数
a比b大:结果范围是 b+1 到 a-1之间的随机数
自己考虑一下看看。
[/Quote]

曾却 ……
qybao 2010-03-27
  • 打赏
  • 举报
回复
int num = (int)((a<b ? a : b) + Math.random()*((a<b ? b : a)-(a<b ? a : b)+1));
yangzhi2008zz 2010-03-27
  • 打赏
  • 举报
回复
能否有if分支一下,先判断
liu_siat 2010-03-27
  • 打赏
  • 举报
回复
4楼正解
hepeng_8 2010-03-27
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 shan1119 的回复:]
用 int num = (int)(a + Math.random()*(b-a+1));

a比b小:结果范围是a 到 b之间的随机数
a比b大:结果范围是 b+1 到 a-1之间的随机数
自己考虑一下看看。
[/Quote]
认真的考虑一下 下面会熄灭米可以的
铁匠梁老师 2010-03-26
  • 打赏
  • 举报
回复
计算之前比较下大小然后对应上位置即可,无妨
shan1119 2010-03-26
  • 打赏
  • 举报
回复
用 int num = (int)(a + Math.random()*(b-a+1));

a比b小:结果范围是a 到 b之间的随机数
a比b大:结果范围是 b+1 到 a-1之间的随机数
自己考虑一下看看。
bawgiitx 2010-03-26
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 cbsoftlover 的回复:]
a比b大就交换呗。
[/Quote]
AAA
cbsoftlover 2010-03-26
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 noaso 的回复:]
现在只利用Math.random()这个

不说Random
[/Quote]
java api说,Math.random()也是用Random.
a比b大就交换呗。
noaso 2010-03-26
  • 打赏
  • 举报
回复
现在只利用Math.random()这个

不说Random

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧