function random(min,max)
{
var x = min*Math.random()+(max-min);
x = Math.ceil(x);
return x;
}
for(var i=0;i<=1000;i++)
{
var a = random(30,60);
if(a==30)
alert(a);
}
function random(min,max)
{
var x = (max-min+1)*Math.random()+min;
x = Math.ceil(x);
return x;
}
Math.random(); 结果为0-1间的一个随机数(包括0,不包括1)
Math.ceil(n); 返回大于等于n的最小整数。
再看你的程序 var x = min*Math.random()+(max-min); 此时x是一个大于等于30小于60的数
x = Math.ceil(x); 执行此操作后,x是大于等于30的小于60整数
看起来有一定概率,但归根结底概率太低。因为 Math.random();相当于取出一个无限小的数,而等于0的概率可想而知。
你写的代码理论上是对的,但正好得到30的概率非常低,你改成31立马就不一样了。