我正在使用随机数来生成彩票号码。但是当我尝试使用 Java 的随机生成器时
Random randomGenerator = new Random(System.currentTimeMillis());
int randomInt = randomGenerator.nextInt(totalsize);
即使使用 currentTimeMillis 作为种子,这也不会生成纯随机数。所以我正在考虑我应该保存以前的随机数,并在与旧的比较后生成新的随机数。这些随机数不是循环生成的。因此,除非存储在内存或数据库中,否则它们无法进行比较。
为了保存以前的随机数,我想了几个选项
- 要么使用 Singleton 保存它们(不知道我会怎么做以及解决方案有多好)
- 或将值保存在数据库中
-我不想实现的第三个是使用内存缓存或其他东西,因为日期只有我必须保存的 20 个数字,所以由于服务器的内存限制,它是一种过度杀伤和不可选项。
我应该使用 Singleton 还是 Database 来存储这些临时数据。如果单例,那怎么办?
我的要求是保存 10 个列表(10 种不同彩票类型中的每一种)在其中保存 2 个以前的随机值
编辑:它是一个在 tomcat 上运行的 JAVA Web 应用程序。所以简单地维护一个列表是不可能的。每次客户端点击 servlet 时,都会生成一个随机数。所以我需要从服务器发送一个随机数,与前两个值不重复。