什么会返回此功能? (的Math.random())

时间:2011-10-03 14:09:18

标签: actionscript-3

什么范围的数字?说真的,我头疼的想要弄清楚--_-

public function gerRandom(i:uint):uint {
        return Math.round(Math.random()*i);
}

0i的整数,包括?我需要这些。 一种菜鸟问题,但无论如何:D

3 个答案:

答案 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,包括两者,但概率不同。如果0Math.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之间的整数。