请问老师,生成随机数*4+1和*5有什么区别吗,对我的这个程序有什么影响吗

请问老师,生成随机数*4+1和*5有什么区别吗,对我的这个程序有什么影响吗

相关代码:

public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		String[] arr=new String[5];
		for(int i=0;i<arr.length;i++) {
			System.out.println("请输入第"+(i+1)+"个旅游目的地");
			arr[i]=sc.next();
		}
		System.out.println("以下地方仅供参考:");
		for(String n:arr){
			System.out.print(n+"   ");
		}
		int n=(int)(Math.random()*4+1);
		System.out.println();
		System.out.println('\n'+"生成的随机旅游目的地"+'\n'+arr[n]);
	


正在回答

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

1回答

同学你好,是有区别的。

Math.random()*4+1先计算Math.random()*4将随机数结果加1,得到的随机数为:[1,5)

Math.random()*5是直接用Math.random()乘5,得到随机数为:[0,5)

另外建议同学上传代码时选中对应的代码语言,避免上传后代码格式混乱。

https://img1.sycdn.imooc.com//climg/61a59349090e6b0301240204.jpg

https://img1.sycdn.imooc.com//climg/61a59351095ea1e807770133.jpg

祝学习愉快~


  • 壮壮1013 提问者 #1

    那老师,这个程序应该用哪一个呢,一个是012345六个结果,一个是12345五个结果

    2021-11-30 11:01:32
  • 壮壮1013 提问者 #2

    或者(1+Math.random())*4

    2021-11-30 11:03:20
  • 好帮手慕小小 回复 提问者 壮壮1013 #3

    同学你好,应使用(int)(Math.random()*5)。

    (int)(Math.random()*4+1)生成的随机数为:1,2,3,4

    (int)(Math.random()*5)生成的随机数为:0,1,2,3,4

    代码中n的范围应是从0开始最大到数组长度减一,即:[0,4]故选择(int)(Math.random()*5)

    祝学习愉快~

    2021-11-30 11:11:39
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
微信客服

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

帮助反馈 APP下载

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

公众号

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

在线咨询

领取优惠

免费试听

领取大纲

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