如何每次生成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. 生成一个从 1 到 12 的随机数
  2. 生成第二个随机数并检查它是否与第一个相同,如果不相同则继续生成第三个随机数并与第一个和第二个进行检查。
  3. 对所有四位数字重复此过程

无论您想使用哪种编程语言,都可以执行上述步骤。

在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);