我想在PHP中,您可以使用以下代码:
那会不会影响获得更高/更低数字的概率和平等性呢?
rand(1, 100);
使用以下代码生成1到100之间的随机数。如果我想要使用此代码获取具有4位小数的随机数:
rand(1 * 10000, 100 * 10000) / 10000;
那会不会影响获得更高/更低数字的概率和平等性呢?
mt_rand
而不是rand
。主要区别在于mt_rand
使用不同的PRNG(伪随机数生成器)引擎,通常提供具有更好随机性的结果比rand
。即使如此,这种方法存在问题,您可能认为它严重或不严重。[1,100]
中每个数字,其十进制表示法中小数点后最多有4位的数字,将以相等的概率生成,如果忽略近似误差。当然,这是假设随机数生成器实际上生成均匀分布的情况下,才成立的,这也是我推荐使用mt_rand
的原因。我不这么认为。
如果你想在PHP中生成更好/更快的随机数,请使用mt_rand()函数http://php.net/manual/en/function.mt-rand.php
rand()
只是在两个范围之间提供一个伪随机数。首先乘以一个变量,然后再除以同一个变量对结果是高还是低没有影响。 - Fluffehrand(1000,9999)
可以实现,不过我建议使用mt_rand(1000,9999)
。 - Tim Seguine