方法一: 随机号码+去重
var m = (x, y) => {
var s = [];
while (s.length < x) {
var code = Math.floor(Math.random() * y + 1);
s.indexOf(code) < 0 && s.push(code)
};
return s.sort((a, b) => a - b)
};
console.log(`双色球:%c${m(6,33)} %c${m(1,16)}`, 'color:red', 'color:blue')
console.log(`大乐透:%c${m(5,35)} %c${m(2,12)}`, 'color:red', 'color:blue')
方法二:从数组中随机取出不重复号码
var m = (x, y) => {
var s = []
var redList = Array(x).fill(0).map((v, i) => i + 1)
while (s.length < y) {
var i = Math.floor(Math.random()*redList.length)
s.push(redList[i])
redList.splice(i, 1)
}
return s.sort((a, b) => a - b)
}
console.log(`双色球:%c${m(33,6)} %c${m(16,1)}`, 'color:red', 'color:blue')
console.log(`大乐透:%c${m(35,5)} %c${m(12,2)}`, 'color:red', 'color:blue')
方法三:洗牌--抽牌
var m = (x, y) => {
var s = [];
var redList = Array(x).fill(0).map((v, i) => i + 1);
var shuffle = (arr) => {
var result = [];
while(arr.length){
var i = Math.floor(Math.random() * arr.length);
result.push(arr[i])
arr.splice(i, 1)
}
return result;
}
while (s.length < y) {
redList = shuffle(redList)
var i = Math.floor(Math.random() * redList.length)
s.push(redList[i])
redList.splice(i, 1)
}
return s.sort((a, b) => a - b)
}
console.log(`双色球:%c${m(33,6)} %c${m(16,1)}`, 'color:red', 'color:blue')
console.log(`大乐透:%c${m(35,5)} %c${m(12,2)}`, 'color:red', 'color:blue')
方法四:洗牌--换牌
var m = (x, y) => {
var s = [];
var redList = Array(x).fill(0).map((v, i) => i + 1);
var shuffle = (arr) => {
for (var i = 0; i < arr.length; i++) {
var r = Math.floor(Math.random() * arr.length);
var temp = arr[r]
arr[r] = arr[i]
arr[i] = temp
}
return arr;
}
while (s.length < y) {
redList = shuffle(redList)
var i = Math.floor(Math.random() * redList.length)
s.push(redList[i])
redList.splice(i, 1)
}
return s.sort((a, b) => a - b)
}
console.log(`双色球:%c${m(33,6)} %c${m(16,1)}`, 'color:red', 'color:blue')
console.log(`大乐透:%c${m(35,5)} %c${m(12,2)}`, 'color:red', 'color:blue')
TIP
-
不是真随机码!!
-
放浏览器F12运行一下!!
-
兄弟们中奖了别忘记我啊!!
good luck!!