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

前端之家收集整理的这篇文章主要介绍了java – 生成大小为X的随机数的算法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在我的移动应用程序中,我必须为用户提供一个随机唯一的X字母数字代码,以便用户可以用该字母数字代码回复以执行一些任务.

使用此应用程序的用户数量约为100万人,邮件流量约为每天10万条.

我只能使用26个大写字母,26个小写字母和10个数字.如果随机数字大小为5,那么我可以生成916132832独特的组合.组合结束后,我想再次回收这个数字代码.

我正在寻找一种算法方法.是否有任何算法方法解决这个问题?

解决方法

如果您接受回收的随机数字,为什么要在回收之前等待组合的耗尽?

>当组合集合结束时,这使数字越来越少随机
>这将强制您维护一些数据库,以了解哪些数字已被使用,哪些数字尚未使用.

我只会生成随机数字,如果已经使用它们,则不用关心.

如果你真的想要像你问的那样保持它,那么你可以这样做:

>生成所有组合并将它们放入数据库表中
>将此表的大小存储在某个变量中
>生成一个随机数R在1和表的大小之间
>获取存储在表的第R行的组合
>从表中删除第R行,并减小大小变量
>当表为空(并且大小变量为0)时,再次启动

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

你也可以在记忆中做,如果你有足够的.

猜你在找的Java相关文章