java - 如何生成唯一的随机数,即使应用程序在一天内关闭

标签 java algorithm date random

要求:

  1. 我需要生成4 位 非重复 号码 - 即使我的应用程序关闭,生成的号码也不能重复。

  2. 我不想在任何存储中存储所有以前的数字。

有没有一种算法最有可能在一天内产生最多的唯一数字?

谢谢

最佳答案

不要生成随机数。相反,生成一个从 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/

关于java - 如何生成唯一的随机数,即使应用程序在一天内关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51408363/

相关文章:

java - 有没有办法在@Service上使用@ControllerAdvice

c++ - 如何生成具有预定义*唯一性*的整数序列?

javascript - 比较美国日期标准 mm/dd/yyyy 中两个日期之间的差异

java - 将 HashTable/Map 绑定(bind)到 Jtable

java - boolean 字段的命名约定以避免变量名称冲突

java - 使用 .app 运行自定义安装脚本

python - 压缩一堆(字符串对)的算法

algorithm - 将单词与字典中的目标单词进行比较

javascript - 将 7 天日历更改为 5 天日历

sql - 返回日期范围之间的所有月份和年份 - SQL