要求:
我需要生成
4 位
非重复 号码 - 即使我的应用程序关闭,生成的号码也不能重复。我不想在任何存储中存储所有以前的数字。
有没有一种算法最有可能在一天内产生最多的唯一数字?
谢谢
最佳答案
不要生成随机数。相反,生成一个从 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/