128bitの乱数らしい。
ネットでたまに、数学的にどれだけぶつかる可能性が低くて安心して使えるかというのが解説されてるのを見るけど、肝心のUUIDの生成法を解説してる記事を見たことない。
PostgresqlなんかはUUID型みたいのがあるけど、自動では作ってくれないし。
まあ、いまどきの言語なら高性能らしい乱数生成ルーチンがあるから、それを使えばいいんだろうけど、問題はシード値だよな。
ゲームに使う乱数のシードなら、unix時刻+プロセスIDとか、環境依存の数字をいくつかひっぱってくる程度でOKだろうけどUUIDに使うにはユニークさが足らないよな。
OSによっては安全な乱数を取得する方法が提供されてるから、それを使えばいいけど、どのプラットフォームでも共通で使える方法がなさそう。
この類の乱数が絡むのって、けっこう落とし穴があって素人が自力でやるとバグったり安全性が低かったりするから、UUIDを生成する方法も提供してほしい。
まず、現代のまともなプログラミング言語ならuuidの生成機能はある シードはurandom
外部のライブラリで? 標準関数か、デファクトスタンダートくらいのライブラリが存在しないと安全性が判断できない。
もちろん標準で C/C++だと怪しいかもな(Boostが必要かもしれない) それ以外で存在しないならその言語は欠陥品だから捨てていいよ
JavaとかPHPである?
どっちもあるよ
Goは無いです(小声) Googleが作ってる準標準レベルのパッケージがあるから困りはしないんだが