Я хотел бы иметь возможность рассчитать длину самой короткой подстроки, необходимой для достижения полной уникальности.Есть ли формула для поиска кратчайшей длины, необходимой для достижения уникальности по множеству
Допустим, у меня есть переменная длина списка из 32 символов UUID, но то, что я хотел бы достичь, сокращает их во время ссылки только до тех пор, пока это необходимо для достижения уникальности в их наборе. Например, если у меня есть следующий набор UUID (в трубах, вставленных иллюстрировать ответ) ...
428|07082e1f445e79501bebfa87396af
723|0785bffaf4747865c202dd0924c7f
b65|634be909d4e5590aa0cdc97251eef
3c4|d94c683624d75a273e3186ec65b78
09e|bd42af0404bcf90413e11c5b40fbb
011|004743d65466dae8a9a6bc814ef4b
1f1|889e04e3a453fbf57521de0a70b60
1ac|44707af8d4681875171ad47c61037
42f|7a6236deb4a9ead32ab2e816d73a3
83a|fe22086064eec87704127622b8165
я потребовала бы только первые три символов для достижения того же уровня уникальности, как если бы я был использовали все 32 символьные строки.
Мне любопытно, есть ли формула для достижения этого значения. Я знаю, что могу поместить это в пару вложенных циклов, но я хотел бы знать, есть ли более элегантный или программный способ достижения этого.
Редактирование: только для того, чтобы быть ясным, трубы должны только показать, что я могу достичь уникальности только после трех символов. Результатом формулы/метода должен быть массив равной длины с только кратчайшими строками, полученными из данного набора, в этом случае только первые три символа. Представьте, что я хочу использовать их в URL-адресе и что у меня не может быть двусмысленности, но все же хочу иметь возможность ссылаться на одни и те же записи, как если бы я использовал полную строку в каждом случае.
EDIT2: Фактически ... поскольку я думаю об этом, нет необходимости в массиве результатов, только целое число, минимальная длина, требуемая в символах.
Не верно интерпретировать вопрос правильно. Как выводятся символы слева от символа трубы? Являются ли символы слева от символа трубы производными от символов справа от символа трубы? – guest271314
@ guest271314 проверьте, например, '428', если вы посмотрите на второй, вы увидите, что он начинается с' 42', поэтому все значения уникальны только при использовании 3 символов ... в трубе отображается только _when_ значения начинают быть уникальными (обратите внимание, что я не op) – FirstOne
@FirstOne Все еще не следует, откуда вызывается «428»? – guest271314