什么范围的数字?说真的,我头疼的想要弄清楚--_-
public function gerRandom(i:uint):uint {
return Math.round(Math.random()*i);
}
0
到i
的整数,包括?我需要这些。
一种菜鸟问题,但无论如何:D
答案 0 :(得分:11)
Math.random()将创建一个从0到1的数字(不包括1)。因此,您的代码将创建一个介于0和i之间的值,获得0和i的机会较少,并且与该范围中的其他值进行比较(它只会在0.5或更小的情况下向下舍入为0,在高达'i'时为'我'-0.5或更多)。
更好的方法是使用
public function getRandom(from:uint, to:uint):uint {
return Math.floor(Math.random()*(to-from+1))+from;
}
(这个)。
答案 1 :(得分:5)
将整数从0
返回到i
,包括两者,但概率不同。如果0
是Math.random()*i
的间隔,您将获得[0, 0.5)
,但如果它位于1
,则会获得[0.5, 1.5]
。
改为使用Math.floor(Math.random() * (i + 1))
。
答案 2 :(得分:2)
0到i之间的整数(包括):)
Math.random()
返回0到1之间的值Math.random*i
返回0到i之间的数字Math.round(Math.random()*i)
返回0到i之间的整数。