宝くじの番号を生成するために乱数を使用しています。しかし、Javaのランダムジェネレーターを使用しようとすると
Random randomGenerator = new Random(System.currentTimeMillis());
int randomInt = randomGenerator.nextInt(totalsize);
currentTimeMillis をシードとして使用した後でも、これは純粋な乱数を生成しません。そのため、以前の乱数を保存し、古い乱数と比較してから新しい乱数を生成する必要があると考えています。これらの乱数はループでは生成されません。そのため、メモリまたはデータベースに保存されていない限り、それらを比較することはできません。
以前の乱数を保存するために、いくつかのオプションを考えています
-シングルトンを使用して保存します(どのように行うか、ソリューションがどれほど優れているかはわかりません)
-またはデータベースに値を保存する
-実装したくない3番目は、memcacheなどを使用することです。日付は保存する必要がある20個の数字しかないため、サーバーのメモリ制限のために過剰であり、オプションから外れています。
この一時データを格納するためにシングルトンまたはデータベースを使用する必要があります。IFシングルトン、どうやって?
私の要件は、10 個のリスト (10 種類の宝くじの種類ごとに 1 つ) を保存し、それらに 2 つの以前のランダム値を保存することです。
編集: Tomcat で実行されている Java Web アプリです。したがって、単純にリストを維持することはできません。クライアントがサーブレットにアクセスするたびに、乱数が生成されます。したがって、サーバーから乱数を送信する必要がありますが、これは前の 2 つの値で繰り返されません。