📜  带有种子 php 的随机数字(1)

📅  最后修改于: 2023-12-03 14:54:06.320000             🧑  作者: Mango

带有种子 PHP 的随机数字

在 PHP 中,使用 rand() 函数可以生成随机数字。但是,这些数字并不是真正意义上的随机,而是伪随机。也就是说它们是根据算法计算出来的,所以如果不指定种子,生成的随机数会是相同的。为了解决这个问题,我们可以使用种子来让随机数更具有随机性。

使用 srand() 函数设定种子

可以使用 srand() 函数设定种子,该函数需要接受一个整数作为种子。我们可以使用当前时间毫秒数作为种子。

srand((int) (microtime(true) * 1000));
$random_number = rand();

该代码会使用当前时间毫秒数作为种子,然后使用 rand() 函数生成一个随机数。

使用 mt_srand() 函数设定种子

除了 srand() 函数,PHP 还提供了更为强大的随机数生成函数 mt_rand()。我们同样可以使用 mt_srand() 函数设定种子,并使用 mt_rand() 函数生成随机数字。

mt_srand((int) (microtime(true) * 1000));
$random_number = mt_rand();

需要注意的是,mt_srand()srand() 函数只需要设定一次种子即可,如果需要生成多个随机数,不需要每次都设定种子。

使用 random_int() 函数生成加密安全的随机数

PHP 还提供了加密安全的随机数生成函数 random_int(),该函数使用 random_bytes() 函数生成随机数。需要注意的是,该函数仅在 PHP 7.0 以上版本才能使用。

$random_number = random_int(0, 100);

该代码会生成一个介于 0 和 100 之间的随机数。

总结

在 PHP 中生成随机数字需要指定种子,以保证生成的随机数随机性更好。我们可以使用 srand()mt_srand() 函数设定种子,使用 rand()mt_rand() 函数生成随机数。如果需要生成加密安全的随机数,可以使用 random_int() 函数。