如何每次生成4个唯一数字形成1到12
How to generate 4 unique digit each time form 1 to 12
我想从1到12每次生成4个唯一数字。例如:[1,3,4,6]或[1,3,10,6]或[1,2,3,4 ]...但不像 [1,2,8,1] 或 [2,2,4,5]
因为在最后两个块中 1 出现了两次,所以在第二个块中出现了 2。我再次需要随机生成那些独特的数字块。
如有任何帮助,我们将不胜感激。非常感谢...:)
在javascript
random: function (min,max,l){
var arr = [],m = [],n = 0;
if (max - min < l-1) return;
for (var i=0; i<=(max-min); i++)m[i] = i + min;
for (var i=0; i<l; i++) {n = Math.floor(Math.random()*(m.length)); arr[i]=m.splice(n,1);};
return arr;
}
只需使用随机函数并将生成的每个随机数字与之前的数字进行比较。
您没有指定任何编程语言,但无论您要使用哪种语言,都请尝试这些步骤:
- 生成一个从 1 到 12 的随机数
- 生成第二个随机数并检查它是否与第一个相同,如果不相同则继续生成第三个随机数并与第一个和第二个进行检查。
- 对所有四位数字重复此过程
无论您想使用哪种编程语言,都可以执行上述步骤。
在javascript中:
var numbers = [0,1,2,3,4,5,6,7,8,9];
var uniqueNumbers = [];
function getRandom(){
return numbers[Math.floor(Math.random()*numbers.length)];
}
while (uniqueNumbers.length < 4){
var value = getRandom();
if(uniqueNumbers.indexOf(value) < 0)
uniqueNumbers.push(value);
}
console.log(uniqueNumbers);
我想从1到12每次生成4个唯一数字。例如:[1,3,4,6]或[1,3,10,6]或[1,2,3,4 ]...但不像 [1,2,8,1] 或 [2,2,4,5] 因为在最后两个块中 1 出现了两次,所以在第二个块中出现了 2。我再次需要随机生成那些独特的数字块。
如有任何帮助,我们将不胜感激。非常感谢...:)
在javascript
random: function (min,max,l){
var arr = [],m = [],n = 0;
if (max - min < l-1) return;
for (var i=0; i<=(max-min); i++)m[i] = i + min;
for (var i=0; i<l; i++) {n = Math.floor(Math.random()*(m.length)); arr[i]=m.splice(n,1);};
return arr;
}
只需使用随机函数并将生成的每个随机数字与之前的数字进行比较。
您没有指定任何编程语言,但无论您要使用哪种语言,都请尝试这些步骤:
- 生成一个从 1 到 12 的随机数
- 生成第二个随机数并检查它是否与第一个相同,如果不相同则继续生成第三个随机数并与第一个和第二个进行检查。
- 对所有四位数字重复此过程
无论您想使用哪种编程语言,都可以执行上述步骤。
在javascript中:
var numbers = [0,1,2,3,4,5,6,7,8,9];
var uniqueNumbers = [];
function getRandom(){
return numbers[Math.floor(Math.random()*numbers.length)];
}
while (uniqueNumbers.length < 4){
var value = getRandom();
if(uniqueNumbers.indexOf(value) < 0)
uniqueNumbers.push(value);
}
console.log(uniqueNumbers);