java用Math.random() 随机数控制范围问题

用Math.random()怎么输出1~7的整形数,怎么输出13~19的整形数之类的,求解决!... 用Math.random() 怎么输出1~7的整形数, 怎么输出 13~19的整形数 之类的,求解决! 展开
 我来答
ahcc08
2014-05-06 · 知道合伙人软件行家
ahcc08
知道合伙人软件行家
采纳数:11853 获赞数:51939
拥有丰富的软件开发经验。

向TA提问 私信TA
展开全部
这是一段程序中的代码:
int randomNumber=(int)(Math.random()*8)+1;
所给出的注释是:得到一个1到8之间的随机整数。开始的时候不是很懂,于是翻书、上网找资料,但是得到的结果都是一样的。Math.random()的作用是得到0-1之间的随机数。那么是如何实现的呢?
仔细想一想其实并不是很复杂:Math.random()的取值应该是0-1(事实上取不到0和1)之间的随机小数,乘以8之后应该是0-8之间的随机小数,也就是0.****到7.****之间的小数(大于0而小于8),经过int类型转换之后,应该是0-7之间的随机整数,所以"+1"之后就会得到1-8之间的
6fone
2014-05-06 · TA获得超过804个赞
知道小有建树答主
回答量:631
采纳率:33%
帮助的人:538万
展开全部
Math.random()是生成0~1之间的小数,Math.floor(Math.random()*7+1)输出1~7的整形数

Math.floor(Math.random()*7+13)输出 13~19的整形数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
精艺求金113
2019-03-06 · 超过11用户采纳过TA的回答
知道答主
回答量:43
采纳率:57%
帮助的人:12.9万
展开全部
记住一个公式:
a<= x < a+b 的表示为:(int)(a + Math.random() * b)
如果要得到1~7的整形数,a=1,b=7-1;如果要把7包进来,那么b = 7;
同理,要得到13~19,a = 13, b = 19 - 13.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式