用Math.random产生小于等于 50 的随机数,然后加上50就行了。

解决方案 »

  1.   


    <script>
    var a=new Array();
    var b=new Array();
    var num=0;
    var end=5;//输出5个
    for(i=0;i<50;i++){
     var tmp=Math.round(Math.random()*50);
     if(!a[tmp]){
       a[tmp]=true;
       b[num]=tmp+50;
       document.write(b[num]+"<br>");
       num++;
     }
     if(num>=end) i=50;
    }
    </script>
      

  2.   

    Math.round(100*Math.random()+50)
    這樣可以産生一個.你要産生五個不同的,這裏提供一點思路,在産生第二個的時候,就和第一個比較是否相同....第三個就和前兩個比較...
      

  3.   

    <script>
    var a=new Array(5);
    var num=0;
    var end=5;//输出5个
    for(i=0;i<5;i++){
     var tmp=Math.round(100*Math.random()+50);
     for(j=0;j<i;j++){
       if(a[j]!=tmp) a[i]=tmp;
     }
    }
    </script>
      

  4.   

    这个算法更好点:
    <script>
    var b=new Array();
    var end=5;//输出5个
    for(i=0;i<end;i++){
     b[i]=Math.round(Math.random()*50)+50;
     for(j=0;j<i;j++){
     if(b[j]==b[i]){i--;j=i;}
     }
    }
    </script>
      

  5.   

    <script>
    var b=new Array();
    var end=5;
    for(i=0;i<end;i++){
     b[i]=Math.round(Math.random()*50)+50;
    document.write(b[i] + "<br>")
     for(j=0;j<i;j++){
     if(b[j]==b[i]){i--;j=i;}
     }
    }
    for(i=0;i<b.length;i++){document.write("---" + b[i] + "<br>")};
    </script>不赖,,收了,哈哈
      

  6.   

    洗牌算法(如果是从0~10000个数中抽取5000个,这个的效率优势就相当明显了):<script language="JavaScript">
    var end=5;//输出个数
    var b=new Array(51);//0~50个数字
    var i,tmp,rnd;
    for(var j=0;j<b.length;j++){
      b[j]=j+50;//生成数组内容
    }
    i=b.length;
    while(i>0){//洗牌
      rnd=Math.floor(Math.random()*i);
      tmp=b[i-1];
      b[i-1]=b[rnd];
      b[rnd]=tmp;
      i--;
    }for(var j=0;j<end;j++){//输出显示
    document.write(b[j]+"<br>");
    }
    </script>