質問: 乱数生成アルゴリズム どのアルゴリズムが(クレジットカード/デビットカード番号のような)乱数を生成するために銀行によって使用されていますか? 私はDB内のすべての番号を維持し、私は以下のアプローチを試してみて、 1. 乱数を生成します。 2. 番号が既に割り当てられているかどうかを確認します。 3. はいの場合は、手順1に進みます。 4. 新しい番号のDBにレコードを作成せず、結果を出力しない場合 カードの音量が上がると、dbヒット数が増えます。 他にこれを取る??助けてください。
回答: 何が必要ですか?私は一意の乱数を生成する必要があると思います。 あなたのケースのステップ2は、エントリの数に応じて長い時間がかかることがあります。 SHA1やMD5のようなハッシュアルゴリズムのいずれかを使って良い擬似乱数を得る ここでも、2つのエントリが同じ乱数を持つことができる稀な可能性があります 完全に一意にするために、エントリーの一意のIDで乱数をまとめることができます。 たとえば。一意のids1〜100を持つ100個のエントリがあります。100番目のエントリに対して一意の乱数を取得するには、乱数を生成します(1129642347など)。一意のID 100を使用します。その後、乱数は1129642347100になります