java - 即使应用程序在一天内关闭,如何生成唯一随机数
问题描述
要求:
我需要生成
4-digit
不重复的号码 - 即使我的应用程序关闭,号码的生成也不能重复。我不想将所有以前的号码存储在任何存储中。
是否有任何算法最有可能在一天内产生大部分唯一数字?
谢谢
解决方案
不要生成随机数。相反,生成一个从 0000 到 9999 的序列号,然后使用https://stackoverflow.com/a/34420445/56778中描述的技术对其进行混淆。
这样,您唯一需要保存的是下一个序列号。
该示例使用乘法逆运算将 0 到 100 之间的数字映射到同一范围内的其他数字。从 0 到 100 的每个数字都将映射到 0 到 100 之间的唯一数字。它快速简单,您可以通过更改常量来更改映射。
更多信息请访问http://blog.mischel.com/2017/06/20/how-to-generate-random-looking-keys/
推荐阅读
- javascript - 通过 Ajax 解析 PHP 文件获取的 JSON 数据时出现问题
- c# - 在标准 C# 分析中,如果不是 VariableDeclaration 的成员,VariableDeclarator 是否可以存在?
- python - mailchimp_transactional 电子邮件响应提供空数组和电子邮件未发送
- nginx - nginx url重写,https访问会自动跳转到http
- python - Keras 的稀疏分类交叉熵形状问题
- python-3.x - 从链表元素中删除元素时出现属性错误
- c# - 在更改的架构上恢复代码首次迁移
- python - 在 Python 中使用什么方法来返回对象的属性?
- javascript - 是否可以在从另一个 js 文件导入的 js 脚本中应用内容安全随机数?
- apache-spark - 如何在 databricks 集群上有效地运行非火花模型训练任务(使用 fasttext)?