两个随机数

时间:2012-12-24 12:22:43

标签: javascript random

  

可能重复:
  Generate random between 0 - 9 but not 6

var ifanse=Math.floor(Math.random()*4)+1; 

var ifanse2=Math.floor(Math.random()*3)+1

这是2个随机数。有时他们是平等的,但如果ifanse等于ifanse2,它会有任何方式,它会在3 - 1之间重新生成随机,但不包括ifanse2。或者有没有办法避免在第一时间等同?

2 个答案:

答案 0 :(得分:4)

你可以循环直到你选择一个不同的数字:

var ifanse=Math.floor(Math.random()*4)+1; 
var ifanse2=Math.floor(Math.random()*3)+1;
while (ifanse2 == ifanse)
{
   ifanse2=Math.floor(Math.random()*3)+1;
}

答案 1 :(得分:2)

例如,您可以编写一个通用函数,它为您提供一组随机数

  • 使用您的范围编号填充和数组将消除重复的数字
  • 改组数组
  • 返回一个长度数组,其中包含您想要的随机数

  function genRand(min, max, cnt) {
      var arr = [];
      for (var i = min, j = 0; i <= max; j++, i++)
      arr[j] = i
      arr.sort(function () {
          return Math.floor((Math.random() * 3) - 1)
      });

      return arr.splice(0, cnt)
  }

console.log(genRand(0, 3, 2)) // e.g [0,3]

然后您可以将它们存储在var中,或直接从rands

访问它们
var rands = genRand(0,3,2);
var ifanse = rands[0]
var ifanse2 = rands[1]

你永远不会得到2个相同的数字,如果你需要,你可以产生2个以上不同的数量。

继承人Jsbin