如何每次从1到12生成4个唯一数字

时间:2015-02-04 06:43:21

标签: random numbers unique

我希望每次从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次。我需要随机生成那些独特的数字块。

任何帮助将不胜感激。非常感谢提前...... :)

4 个答案:

答案 0 :(得分:0)

在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 :(得分:0)

只需使用随机函数,并将每个生成的随机数字与之前的数字进行比较。

答案 2 :(得分:0)

您尚未指定任何编程语言,但仍会尝试使用您将要使用的语言执行这些步骤:

  1. 生成1到12的随机数
  2. 生成第二个随机数并检查它是否与第一个相同,如果不是,则继续第三个数字并检查第一个和第二个。
  3. 对所有四位数重复此过程
  4. 使用您想要使用的任何编程语言实现上述步骤。

答案 3 :(得分:0)

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