关于随机函数问题

关于随机函数问题

导入random包的方式,声明方法为,Random i=new Random(); int s=i.nextInt(3)+1。和直接调用random方法:int s=(int)(Math.random()*3)+1;的区别。 为啥前者可以在循环体内每轮会改变一个值而后者是固定一个值。 另外想知道这二者的具体区别都在哪。

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕小脸 2020-08-16 09:59:33

同学你好,

1、带参的nextInt(int x)则会生成一个范围在0~x(不包含X)内的任意正整数。

      即:nextInt(3);,则会生成一个范围在0~3内的任意正整数。

     调用Math.random()是产生一个[0,1)之间的随机数,并且不存在四舍五入的概念

    即:(int)(Math.random() * 3)  将上述强制类型转换为int 型,结果是   [0,2] 之间的  int 值

2、 Random.nextInt(n)是生成[0, n)范围内的Int类型随机数

      Math.random() 方法生成[0, 1)范围内的double类型随机数

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~


  • 提问者 慕哥8310336 #1
    没搞懂,我用字符串数组来存储随机数指定相应名字的时候,用后者一直随机固定名字,而用前者每轮循环结束后进行下次循环名字就会改变。
    2020-08-16 11:58:50
  • 好帮手慕小脸 回复 提问者 慕哥8310336 #2
    同学你好,建议将代码贴出,方便老师结合代码看一下哟 祝学习愉快~
    2020-08-16 13:54:57
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师