PHP生成随机数而不重复没有循环mt_rand并且不使用range()和shuffle()

时间:2018-05-10 10:38:46

标签: php random

我正在寻找一种方法来生成特定数量的唯一随机数(比如10,000),在特定的数字范围内,如(000000000,999999999)。

我希望不在rand()循环下重复使用mt_rand()for来执行此操作,因为这会在计算上效率低下。

是否有符合这些要求的PHP库或解决方案?

1 个答案:

答案 0 :(得分:1)

一种方法是使用Format Preserving Encryption,输出限制在0到999999999之间。如果加密数字0到9,999,您将在所需范围内获得10,000个唯一输出。通过加密,只要您不更改密钥,唯一输入就可以保证唯一的输出。