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