乱数を生成して、データベースに追加する。 追加するときに重複チェックを行う。 重複していた場合は追加せず、再度乱数の生成を行う。 重複チェックを高速にできれば衝突の心配...
駄目です。 なぜならば「十分大きな乱数をユニークな識別子として使う」のは グローバル一意識別子(GUID)として使うことが多いから。 (ローカルで完結するなら乱数なんて使わず連番を...
あー、そういうことか。 それだったら日時+乱数を識別子にすれば、衝突の確率をさらに下げられるかも? 20171130120130(年月日時分秒)+ミリ秒ぐらいつけて、さらに128ビットの乱数と...
Qiitaでまとめてもらえました。増田には書いてみるものですね? はてなブックマーク - ID生成大全 - Qiita http://b.hatena.ne.jp/entry/s/qiita.com/kawasima/items/6b0f47a60c9cb5ffb5c4
発行済の乱数を記録して重複をチェックできる環境なら、乱数使わなくてもカウンタで新しい番号を発行するやり方でよくね?
衝突している乱数が10億分の1の確率で存在するということになる。 と言われたら、10億人のユーザが使っているとどこかで衝突するんじゃないかと不安になるんだよね。
人類70億人が使う場合を考えると、たかだか10億分の1程度の確率では十分とはいえませんね? 桁数を増やせばいいけど、今のハードウェアのスペックだと厳しいのかな?
ユーザーの緯度経度を混ぜて使うっていうのはどう たぶん重複しない アクセス日時とかIPとかも単体で使うと被るけど組み合わせればめったに被らなそうじゃない?
乱数って、結局「擬似乱数」であって、その生成アルゴリズムは分かっている。 入力値に偏りの少ないもの(再現性の低い現象)を利用しているだけで、本当の偶然性はコンピューター...