产生唯一随机数的有效方法是什么?


What is the efficient way of generating unique random number?

我希望为每个用户贡献生成一个随机数作为贡献的标题。

我可以简单地每次用查询检查数据库并生成一个不等于数据库中任何条目的数字。但我认为这是低效的,而且在我看来,如果数据库很大,它可能会变得很慢。此外,我必须在某个地方包含数据库的所有数字来管理"不等于",在数组或类似的东西中,但最终可能会成为一个巨大的数字。

请原谅我的外行讲话,我是新手。

有什么建议可以有效地解决这个问题,而不会使资源过度紧张?你可以用语言来解释,不用给我提供任何脚本,我会弄明白的。

您可以使用uniqid()。我不确定它是否便携。

的例子:

printf("uniqid(): %s'r'n", uniqid());

输出如下:

uniqid(): 4b3403665fea6

uniqid()将为您提供一个技术上可以重复的随机数。

也许你可以应用一个简单的算法上的自动增量字段?N (N +1)/2什么的?