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

将50个随机数赋予数组,确保数组内的元素值不重复。
求代码,谢谢。
辛苦。

------解决方案--------------------
<script type="text/javascript">
var size=0;
var arr=[];
while(true){
var b=parseInt(Math.random()*50);
if(arr[b+'a']==undefined){
arr[b+'a']=b;
size+=1;
if(size==50){
break;
}
}
}
for(var i in arr){
document.write(arr[i]+"<br/>");
}
</script>
这样试试
------解决方案--------------------
JScript code
Array.prototype.in_array = function(v) {
    for (var i = 0; i < this.length; i ++) if (this[i] == v) return true;
    return false;
}
var ar = [];
for (var i = 0; i < 50; i ++) {
    var x = Math.floor(Math.random() * 10000 + 1); //产生 1 - 10000范围内的随机数
    while(ar.in_array(x)) x = Math.floor(Math.random() * 10000 + 1);
    ar.push(x);
}
alert(ar);

------解决方案--------------------
JScript code
var i_rang=100;
//生成随机数范围,不能小于50
var arr = [],a_arr=[];
var temp,n;
for(var i=0;i<50;i++){
    temp=false;
    do{
        n=parseInt(Math.random()*i_rang);
        if(!arr[n]){
            arr[n]=true;
            temp=true;
            a_arr.push(n);
        }
    }while(!temp)
}
document.write (a_arr.join("-"));

------解决方案--------------------
<script type="text/javascript">
function GetRandomNum(Min, Max) {
var Range = Max - Min;
var Rand = Math.random();
return (Min + Math.round(Rand * Range));
}
var arr = [];
for (var i = 0; i < 50; i++) {
arr.push(GetRandomNum(1, 100));
}
alert(arr);
</script>
GetRandomNum(1, 100)
1,100,表示在1-100中取任意一个随机数