首页 > 解决方案 > 即使应用程序在一天内关闭,如何生成唯一随机数

问题描述

要求:

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

  2. 我不想将所有以前的号码存储在任何存储中。

是否有任何算法最有可能在一天内产生大部分唯一数字?

谢谢

标签: javaalgorithmdaterandom

解决方案


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


推荐阅读