请使用Javascript生成10个20~200之间的随机数,要确保生成的随机数不重复. 5

 我来答
子不语的节奏
2017-08-17 · TA获得超过3783个赞
知道小有建树答主
回答量:1316
采纳率:68%
帮助的人:344万
展开全部
var arr=[];
function rec(r,i){
    for(var j=0;j<i;j++){
        if(r==arr[j]){
            r=Math.floor(Math.random()*(200-20+1)+20);
            rec(r,i);
            break;
        }
    }
    if(j==i){
        arr.push(r);
    }
}
function random(){
for(var i=0;i<10;i++){
    var r=Math.floor(Math.random()*(200-20+1)+20);
    i==0&&arr.push(r);
    if(i>0){
        rec(r,i);
    }    
}
console.log(arr);
}
random();

运用了递归排除重复的可能,10个数重复的可能性很小,你可以生成更多数测试,是不会出现重复数字的

生成的10个随机数

生成的30个随机数

小花猫等你宠28
2017-08-25
知道答主
回答量:26
采纳率:0%
帮助的人:10万
展开全部
        var count = 200;
        var arr = new Array;
        //把20~200赋给一个数组
        for (var i = 20; i <= count; i++) {
            arr[i] = i;
        }



        //数组打撒,无序排列
        arr.sort(function () { return 0.5 - Math.random(); });
        //取出前10个数组的值
        for (var i = 0; i < 10; i++) {
            alert(arr[i]);
        }
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友2571d37bb
推荐于2018-06-06 · 知道合伙人软件行家
百度网友2571d37bb
知道合伙人软件行家
采纳数:1971 获赞数:7905
前端工程师

向TA提问 私信TA
展开全部
var arr = [];
while(arr.length < 10){
    var bFlag = true;
    var number = Math.floor(Math.random()*181 + 20);
    if(arr.length == 0){
        arr.push(number);
    }
    for(var i=0;i<arr.length;i++){
        if(number == arr[i]){
            bFlag = false;
        }
    }
    if(bFlag){
       arr.push(number); 
    }
}
console.log(arr);
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
吉他手_vai
2017-08-25 · TA获得超过223个赞
知道小有建树答主
回答量:331
采纳率:25%
帮助的人:347万
展开全部
function randomNumber(n){
    var out = [];
    for(var i =0; i < n ; i++){
         var num =  20|( (Math.random()*200)|0)
         if(out.indexOf(num)==-1)
             out.push(num)
         else
             i--;
    }
    return out;
}

console.log(randomNumber(10))
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
正定残疾人Cec5c
2015-09-23 · TA获得超过423个赞
知道小有建树答主
回答量:234
采纳率:0%
帮助的人:271万
展开全部
var arr = new Array();
while(arr.length < 10){
    var num = Math.round(180*Math.random()) + 20;
    var exists =false;
    for(var i=0,l=arr.length;i<l;i++){
        if(arr[i]==num){
            exists = true;
        }
    }
    if(!exists){
        arr.push(num);
    }
}
arr.sort(function(a,b){
    return a-b;
});
console.log(arr.join(","));
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式