您的位置:首页 > Web前端 > JavaScript

随机选择2(JS)

2016-06-18 18:29 239 查看
调整的思想, 是后面的随机得到的值其实是更后面的值,

所以需要加一个数. 要加的数量是其前面有多少个数.

// 随机选择
function rand_select(N, n){
if (N < 0 || n < 0 || N < n) return null;
var r = [];
// 按可重复随机
for(var i=0; i<n; ++i){
var p = Math.floor(Math.random() * (N-i+1));
r.push(p);
}

// 调整
// 从后向前(避免调整后的值影响比较)
for(var j=r.length-1; j>0; --j){
var p_last=r[j];
// 从后向前(避免调整后的值影响比较)
for(var k=j-1; k>=0; --k){
if(r[k]<=p_last) ++p_last;
}
r[j]=p_last;
}

// 排序
r.sort(function (a, b) { return a - b; });
return r;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: