制作一个10的倍数的随机数

时间:2011-03-03 21:49:09

标签: javascript math random

我想在两个范围之间创建一个10的倍数的随机数。

例如,如果我向函数提供参数0, 100,它将返回以下数字之一:

0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100

但不像6355

是的,我知道这会使真正的“随机性”失败,但我只需要一种快速简便的方法来获得两个范围之间的10的倍数。

感谢。 :)

7 个答案:

答案 0 :(得分:8)

我想它可以提供帮助:

var randomnumber=Math.floor(Math.random()*11)*10

答案 1 :(得分:6)

只是一行:

function rand_10(min, max){
    return Math.round((Math.random()*(max-min)+min)/10)*10;
}

答案 2 :(得分:0)

使用正常的随机数函数,例如this one

function GetRandom( min, max ) {
    if( min > max ) {
        return( -1 );
    }
    if( min == max ) {
        return( min );
    }

    return( min + parseInt( Math.random() * ( max-min+1 ) ) );
}

因为这只会返回整数(“1的倍数”),所以你可以乘以10并得到10的倍数。

randomNumberMultipleOfTen = GetRandom(0,10) * 10;

当然,如果你愿意,你可以将两者合并为一个功能,我会将此作为练习留给你。

答案 3 :(得分:0)

  1. 取两个参数的区别。
  2. 将差异除以10。
  3. 生成从0到分割结果的随机数。
  4. 乘以10。
  5. HTH。

答案 4 :(得分:0)

这似乎做了工作

Math.floor(Math.random() * 10) * 10

如果您稍微修改一下,可以轻松地在任意两个数字之间进行修改。

答案 5 :(得分:0)

var a = 67;
var b = 124;
var lo = a + 10 - (a % 10) 
var hi = b - (b % 10)
var r = lo + 10 * parseInt(Math.random() * ((hi - lo)/10 + 1));

答案 6 :(得分:0)

function rand(maxNum, factorial) { 
    return Math.floor(Math.floor(Math.random() * (maxNum + factorial)) / factorial) * factorial; 
};

采用两个参数

  • maxNum随机生成的最大数量
  • factorial阶乘/增量数

    1. 将生成的随机数乘以maxNum。
    2. 缩小结果。
    3. 除以阶乘。
    4. 缩小结果。
    5. 然后再乘以阶乘。