算法 数字分配问题 一元夺宝分配开奖号
有一个算法问题: 一组有序数字,每个人随机分配多个,不能重复分配 模拟场景: 一元夺宝 下单分配开奖号
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
有一个算法问题: 一组有序数字,每个人随机分配多个,不能重复分配 模拟场景: 一元夺宝 下单分配开奖号
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(6)
我做过,提前生成好,每次用户来拿就用行锁来分配。
方式有很多哈!
我这边的搞法是:
提前生成开奖号,随机,然后保存进数据库!
有人付款的时候 按个数分配!
如果有更好的方法 @ 一下我 我也学习一下
java
一种思路:有序数字存放到 list 当中,每次随机取出 list 中的一个元素(随机生成一个0到 list.size()之间的数字即可),并移除当前元素,并做记录,开奖之后直接查询即可 [需要几个就取几次]
另一种思路:打乱数字顺序,放到队列中,从队列一端pop元素,并做记录,开奖查询即可
1:生成1000个随机数,保存至数据库或其它地方,USER_ID为0
2:取出USER_ID为0的N个随机数,开始分配,分配完成后,记录USER_ID为持有者的ID,并更新数据源
提前生成好全部的不重复数字并将其保存下来,当有人来认领的时候顺序分配即可。
考虑的方向不要从每次有人认领时即时生成不重复数字切入,而是从先生成好不重复数字,后顺序按指定量分配。