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

发布于 2024-12-18 09:42:07 字数 258 浏览 0 评论 0原文

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

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

请原谅外行的讲话,我对此很陌生。

有什么建议可以有效地解决这个问题而不会对资源造成太大压力吗?你可以用语言来解释,不需要给我任何脚本,我会弄清楚的。

I am looking to generate a random number for every user contribution as a title of the contribution.

I could simply check the database each time with a query and generate a number which does not equal to any of the entries of the database. But I imagine this as inefficient and it could become slow if the database is big in my opinion. Also I'd have to contain all the numbers of the database somewhere to manage the "not equals to", in an array or something similar but that can end up as a giant one.

Excuse the layman's speech I am new to this.

Any suggestions how this can be solved efficiently without straining the resources too much? You can explain it linguistically and do not have to provide me any scripts, I will figure it out.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

阳光下慵懒的猫 2024-12-25 09:42:07

您可以使用 uniqid()。我不确定它的便携性如何。

示例:

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

将输出类似以下内容:

uniqid(): 4b3403665fea6

You can use uniqid(). I'm not sure how portable it is.

Example:

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

Will output something like:

uniqid(): 4b3403665fea6
坚持沉默 2024-12-25 09:42:07

uniqid() 会给你一个技术上可以重复的随机数。

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

uniqid() will give you a random number that can technically repeat.

Maybe you can apply a simple algorithm on an auto-increment field? n(n+1)/2 or something?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文