У меня есть собственное приложение с гораздо меньшим «глобальным», чем наш настоящий глобальный, и мне нужна более короткая версия GUID. Теперь предположим, что у меня есть конкретное количество идентификаторов, которые, по моим оценкам, никогда не превышают (например, 100 миллионов идентификаторов). Как определить количество случайных бит, которые должны иметь такое же свойство, как и GUID? (Глобально уникальный, не требующий центральной власти для его создания). Использование обычного GUID будет излишним.Как я могу создать собственный GUID-алгоритм с меньшим «глобальным»?
Мое «излишество» относится к этому: мне нужно, чтобы идентификатор был так же легко набрал/сказал/записал как можно скорее и имел несколько астрономически низкий шанс столкновения как GUID в одно и то же время. Я слышал, что GUID можно назначить на каждое зерно песка на земле. Мое приложение - игра, каждый игрок получает один идентификатор, очевидно, мои игроки не так сильно, как количество песка на земле.
Было бы лучше, если бы игрок мог сказать «Мой идентификатор XXXX-XXXX». В этом случае я не был бы уверен, что 8 символов рандомизированных гексов недостаточно или слишком много для 100 миллионов игроков. (На самом деле, я кодирую его в A-Z 0-9 вместо hex). Моя игра не ограничена онлайн, поэтому я хотел бы, чтобы каждый игрок мог получить уникальный идентификатор, даже если он не был онлайн. (нет сервера для проверки коллизий ID)
GUID был разработан, чтобы быть уникальным во всем мире. Но я не знаю, почему это приводит к 128-битной последовательности. Может быть, они просто выбирают «очень большой», который имеет силу 2? Я не знаю, что они думают при разработке GUID, чтобы убедиться, что он не столкнется. (Они что-то используют в мировом населении? Если это так, я тоже могу использовать в 10 миллионов раз что-то.)
руководство является уникальным, потому что оно основано на MAC-адресе –
@ Lashane, который не является 100% истинным. v1 GUID используют MAC. v4 используют псевдослучайные числа. – Joe
Вам нужно изучить «парадокс дня рождения», чтобы оценить, сколько бит вам нужно для ваших целей. Но как с помощью обычного GUID «overkill»? Что это за запретная стоимость? – Thilo