java的两种产生随机数[0-2]
图片上第一种方法会不会比第二种难产生0这个数字,第一种好像是double类型转成int型,第二种是直接产生0-2这三个随机数。求解????...
图片上第一种方法会不会比第二种难产生0这个数字,第一种好像是double类型转成int型,第二种是直接产生0-2这三个随机数。求解????
展开
1个回答
展开全部
方法一不能产生数值为2的随机数,只能产生数值为0,1的随机数。
Math的public static double random()方法返回一个double值,该值大于等于 0.0且小于1.0。
因此(int)(Math.random()*2);中Math.random()*2的值是一个随机的大于等于0,小于2的double型的小数,强制转换成int后只能产生数字0,1,不能产生2。
假设要产生[min,max]范围的整数,可以使用以下公式:
(int)(Math.random()*(max-min+1))+min;
因此,要产生[0,2]可以使用int computer=(int)(Math.random()*3);。
方法二可以。
Math的public static double random()方法返回一个double值,该值大于等于 0.0且小于1.0。
因此(int)(Math.random()*2);中Math.random()*2的值是一个随机的大于等于0,小于2的double型的小数,强制转换成int后只能产生数字0,1,不能产生2。
假设要产生[min,max]范围的整数,可以使用以下公式:
(int)(Math.random()*(max-min+1))+min;
因此,要产生[0,2]可以使用int computer=(int)(Math.random()*3);。
方法二可以。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询