在JavaScript中获取范围随机数的最佳方法?

时间:2012-08-19 13:22:49

标签: javascript math random

  

可能重复:
  Generating random numbers in Javascript in a specific range?

最佳方法例如使用Math对象取随机数:

  • [a,b](双整数)(2例)
  • (a,b)(双整数)
  • [a,b)(双整数)
  • (a,b)(双整数)

任何人都可以帮助我吗?谢谢!

3 个答案:

答案 0 :(得分:1)

我想这就是你要找的东西:

var rand = function(a,b){
    return a+Math.round((b-a)*Math.random());
}
var r = rand(5,10);
console.log(r);

答案 1 :(得分:1)

Math.extendedRandom = function(a,b,excludeA,excludeB, round)
{
    var start = a;
    var end = b;
    if(excludeA)
        start++;
    if(excludeB)
        end--;

    var res = (end-start) * Math.random();
    return start + (round ? Math.floor(res) : res);
};

答案 2 :(得分:0)

最简单的情况是第三种情况,它已经是JavaScript中Math.random的实现。

第一种情况是answered by Trevor in this question。但是,请务必阅读其他答案和评论,以便清楚地了解其含义。

同样,第四个案例由nickf在同一个问题中回答。

第二个案件可以通过Trevor的答案来解决:

function zero_exclusive_random(){
  var r = Math.random();
  return r == 0 ? zero_exclusive_random() : r;
}