as里返回两个指定整数之间的随机数,为何这样?

来源:百度知道 编辑:UC知道 时间:2024/05/31 20:58:12
function randRange(min:Number, max:Number):Number {
var randomNum:Number = Math.round(Math.random() * (max-min+1) + (min-.5));
return randomNum;
}
trace(randRange(4, 11));

正在学习中~不太明白,random返回一个0到1的值,max.round为四舍五余,为什么这样达到两个数之间的随机数?能说明一下吗,.谢谢~~

算一下 Math.random() 这样就得到一个 0 -> 1 的数

Math.random() * (max-min+1) 得到的是一个 0 -> max-min+1 的数

Math.random() * (max-min+1) + (min-.5) 得到的将是 min - 0.5 -> max + 0.5 之间的数,

random 不包含边值 0 和 1 的话, 得到的数 n 满足

min - 0.5 < n < max + 0.5

四舍五入一下.. 就得到了 min 到 max 之间的整数了.