Dun*_*ter 9 java random algorithm math
在我的移动应用程序中,我必须为用户提供随机的唯一X字母数字代码,以便用户可以使用该字母数字代码进行回复以执行某些任务.
要使用此应用程序的用户数量约为100万人,消息流量约为每天10万条消息.
我只能使用26个大写字母,26个低位字母和10个数字.如果随机数大小为5,那么我可以生成916132832个唯一组合.在组合耗尽之后,我想再次回收这个数字代.
我正在寻找一种算法方法.是否有任何算法方法来解决这个问题?
JB *_*zet 6
如果您接受回收随机数,为什么要在回收之前等待组合耗尽?
我会生成随机数,如果已经使用它们就不用关心.
如果你真的想像你问的那样保留它,那么你可以这样做:
您可以通过将使用过的数字从一个表移动到另一个表来改进它,并在第一个表为空时使用第二个表而不是第一个表.
你也可以在记忆中做到这一点,如果你有足够的.
Pet*_*hev 0
首先,为什么不使用UUID?
但如果您想自己生成数字,请尝试以下操作:
预生成 10-2000 万个组合并将它们保存在内存中的一组中。当你想要下一个 id 时,从它们中获取一个随机组合并将其从集合中删除。
当集合变空时,用原始组合重置集合(您可以保留原始集合的第二个副本以进行快速重置)。
归档时间:
14 年,3 月 前
查看次数:
3436 次
最近记录:
13 年,12 月 前