注:顧客番号、注文番号に最適な形式は何ですか?などの古い質問は既に読みました。、しかし、私の質問はもう少し具体的です。
疑似乱数を生成していると、やがて「誕生日問題」に遭遇します。たとえば、注文番号に 27 ビット フィールドを使用している場合、15000 エントリを超えると、衝突の可能性が 50% に増加します。
Amazon のような大規模な e コマース ビジネスが他の方法で注文番号を生成するかどうか疑問に思っています。たとえば、次のようになります。
- セット全体を事前に生成し、それらからランダムに選択します (数百 GB のデータベース)
- 特定のシード番号から始まる辞書編集の「next_permutation」を使用する
- 日付、ユーザー ID などのパラメーターの MD5 または SHA-1 ハッシュ (14 桁に切り捨て)
- 等
私が欲しいのは、特定の幅の繰り返しのない整数です(注文の総数を難読化する以外は非常にランダムである必要はありません)。これをどのように達成できるかについてのアイデアはありますか?