我想在两个范围之间创建一个10的倍数的随机数。
例如,如果我向函数提供参数0, 100
,它将返回以下数字之一:
0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100
但不像63
或55
。
是的,我知道这会使真正的“随机性”失败,但我只需要一种快速简便的方法来获得两个范围之间的10的倍数。
感谢。 :)
答案 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)
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
阶乘/增量数