gpt4 book ai didi

java - 生成大小为 X 的随机数的算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:09:00 26 4
gpt4 key购买 nike

在我的移动应用程序中,我必须为用户提供一个随机的唯一 X 字母数字代码,以便用户可以使用该字母数字代码回复以执行某些任务。

使用此应用程序的用户数量约为 100 万人,消息流量约为 10 万条消息/天。

我只能使用 26 个大写字母、26 个小写字母和 10 个数字。如果随机数大小为 5,那么我可以生成 916132832 个唯一组合。组合用完后,我想再次回收这个数字生成。

我正在寻找一种算法方法。有什么算法可以解决这个问题吗?

最佳答案

如果同意回收随机数,为什么要等组合耗尽再回收?

  • 这使得数字在到达组合集末尾时越来越不随机
  • 这迫使您维护一些数据库,以了解哪些号码已被使用,哪些尚未使用。

我只会生成随机数,而不关心它们是否已被使用。

如果你真的真的想像你要求的那样保留它,你可以这样做:

  • 生成所有组合并将它们放入数据库表中
  • 将这个表的大小存储在一些变量中
  • 生成一个介于 1 和表的大小之间的随机数 R
  • 取出表第R行的组合
  • 从表中删除第 R 行,并递减 size 变量
  • 当表为空(且size变量为0)时,重新开始

您可以通过将使用过的数字从一个表移动到另一个表来改进它,并在第一个表为空时使用第二个表而不是第一个表。

如果你有足够的内存,你也可以在内存中这样做。

关于java - 生成大小为 X 的随机数的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7172288/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com