日期:2014-05-16  浏览次数:20389 次

js随机取整数
我有0-19这20个整数,我现在想要 js随机取一个0-19之间的整数,该如何?而且我取的这个整数不能和下一次取的整数相同,隔一次相同没关系,不要连着有相同的

------解决方案--------------------
如果要创建一个从x到y的随机数,可以这样写

Math.round(Math.random()*(y-x))+x;

var LastNum=0;//记录上一次产生的随机值
function getRandom(x,y)
{
var r=Math.round(Math.random()*(y-x))+x;if(r==LastNum) getRandom(x,y);//再次调用自身
LastNum=r;//记录值
return r;

}
alert("产生的随机数为"+getRandom(0,19));



------解决方案--------------------
<script>

//获取一个min_num到max_num之间的整数
function get_math_num(min_num , max_num){
return (((Math.random() * (max_num - min_num + 1) ) + "").split(".")[0]) * 1 + min_num;
}

//获取一个不等于num的0-19之间的整数,如果不传num,就代表0-19之间的任意整数
function getmathnumber(num){
while(true){
var nm = get_math_num(0,19);
if(!num || num != nm){
return nm;
}
}
}

//第一次,任意取
var nnn = getmathnumber();
alert(nnn);

//后面每次取的时候,都将前一次取出来的带进去。
for(var i = 0 ; i < 30 ; i ++){
var temp = getmathnumber(nnn);
alert(temp);
nnn = temp;
}
</script>


经过测试,好使!