我想实现一个随机数生成器,它允许我设置我想要的最大数量,但也让我调整概率,使得更难获得更大的数字。
使用此方法会将相同的概率分配给100范围内的任何值。
Math.floor(Math.random()*100);
当数字接近极限(100)时,如何让数字越来越难以显示?
答案 0 :(得分:5)
平方Math.random
的结果:
var result = Math.random();
result = result * result;
result *= 100;
result = Math.floor(result);
您可以通过调整指数来调整曲线。以下是一些不同指数的图表:
如果您要使用非整数指数,则需要使用Math.pow
。
答案 1 :(得分:4)
只需使用具有曲线的数学函数,即可获得所需的概率加权。例如,您可以“平方”您的号码:
var num = Math.pow(Math.floor(Math.random()*10), 2);
上面生成一个介于1-10之间的随机数,然后将其平方,得到一个介于1-100之间的随机数,但加权为较低的数字。
您可以通过使用更高的功率来进一步增加权重。
答案 2 :(得分:0)
Math.pow(Math.floor(Math.random()* 10),2);
或类似的东西。