А какие есть варианты по обрезанию длины uuid, чтобы наилучше

с точки зрения вероятности?
Допустим мне нужна максимум половина по длине.

Если на половине обрезать, то нормально будет?

27 ответов

22 просмотра

А можно заменить uuid на что-то другое? Чтобы изначально генерить нормальной длины с гарантированным качеством?

а юзкейс какой? на половине скорее всего не нормально, потому что по факту получится время создания объекта в секундах

Gleb-Pylypets Автор вопроса
Vladislav 🇺🇸🚜
а юзкейс какой? на половине скорее всего не нормал...

Юз кейс, чтобы some_prefix+uuid не перевалило за макс разрешенный размер поля.

Gleb-Pylypets Автор вопроса
Gleb Pylypets
Юз кейс, чтобы some_prefix+uuid не перевалило за м...

Там 64 ASCII символа. Я думаю, если сократить где-то на половину uuid, то должно хватать.

Gleb-Pylypets Автор вопроса
Vladislav 🇺🇸🚜
размер поля - 64 бита?

64 байта. То есть 64 ASCII chars.

Gleb Pylypets
Там 64 ASCII символа. Я думаю, если сократить где-...

64 ascii символа - это 448 бит, туда 3.5 uuid без проблем влезет

Gleb-Pylypets Автор вопроса

до 32 символов

Gleb Pylypets
до 32 символов

в 32 символа всё ещё влезает полный uuid без потерь

Gleb-Pylypets Автор вопроса
Vladislav 🇺🇸🚜
в 32 символа всё ещё влезает полный uuid без потер...

42e307c5-51af-4857-8b7c-6581f62b31d8 ну вот uuid на 36 символов

Gleb Pylypets
42e307c5-51af-4857-8b7c-6581f62b31d8 ну вот uuid ...

информации в нём - на 19 ascii символов

Gleb Pylypets
Хм

В asccii есть ещё заглавные буквы, которые не встречаются в текстовой репрезентации UUID

Gleb Pylypets
Хм

https://en.wikipedia.org/wiki/Universally_unique_identifier > A universally unique identifier (UUID) is a 128-bit label used for information in computer systems. The term globally unique identifier (GUID) is also used

Gleb-Pylypets Автор вопроса
Vladislav 🇺🇸🚜
информации в нём - на 19 ascii символов

и что с этим делать? Вот есть питоновская либа uuid, которая генерит uuid, который я просто конвертнул в строку.

Gleb Pylypets
и что с этим делать? Вот есть питоновская либа uu...

Как угодно перегнать в массив аски-символов. Например, взять UUID.int и привести к 128-ричной системе счисления

Gleb Pylypets
+

In [7]: base64.b64encode(uuid.uuid4().bytes) Out[7]: b'cENuMEGyQOuxHheearowbQ=='

Vladislav 🇺🇸🚜
In [7]: base64.b64encode(uuid.uuid4().bytes) Out[7...

Или так, если идти простым путём)

Gleb-Pylypets Автор вопроса
Gleb Pylypets
А почему 128?

чтобы в ascii, но там наверняка со спец-символами всё равно проблемы будут (особенно с нулевым). Поэтому проще base64, раз уж всё равно влезает

Gleb-Pylypets Автор вопроса
Vladislav 🇺🇸🚜
чтобы в ascii, но там наверняка со спец-символами ...

так в ascii 0-255 или -128-127? Тогда к 256-ричной системе счисления?

Gleb-Pylypets Автор вопроса
Gleb Pylypets
так в ascii 0-255 или -128-127? Тогда к 256-ричной...

Хотя если наверняка в ascii, то 128, согласен.

Похожие вопросы

Обсуждают сегодня

Всем привет Есть достаточно базовая задача: Дан неориентированный граф. Требуется определить, есть ли в нем цикл, и, если есть, вывести его. Входные данные подаются в виде ма...
Αλeksandr
10
Привет всем. Подскажите, как можно данную задачу более менее эффективно решить? В столовой одного известного Завода вот-вот начнётся обед. На обеде есть три гарнира — макарош...
Vitaliy
6
Всем привет Пытаюсь решить следующую задачу: https://informatics.msk.ru/mod/statements/view.php?id=6992&chapterid=101#1 Строка S была записана много раз подряд, после чего из ...
Αλeksandr
10
всем привет. У меня есть неупорядоченный массив точек(в моем случае в трёхмерном пространстве). Есть критерий связанности точек: если евклидово расстояние между ними меньше за...
Павлик Ливаткин
31
Доброе утро. Такой вопрос: есть ли какие-то практически полезные меры вычислительной мощности (в смысле computational complexity) для реальных машин, с ограниченными ресурсам...
Yaroslav Schekin
15
Друзья, практический вопрос надо счиать скользящую медиану в последовательности по заданному окну (длины N) тупой вариант - взять значения в окне, отсортировать, взять элеме...
Стас Выщепан
17
Здравствуйте. Есть задача нужно найти наименшое число P где фактриал P делиться на 10^N. Ограничения 10^9. Знаю что нужно найти такой P в конце как минимум N нулей. Решение с ...
. Azmiddin
20
#pragma once #include <iostream> #include <vector> template <typename T, typename Comp = std::less<T>> class Heap { public: Heap() = default; Heap(const std::vector<T>&...
Степан
1
Должна-ли работать такая стратегия: Мы каждую секунду бросаем монетку - орел или решка. Если орел - покупаем акцию на все деньги, если у нас есть деньги, или продаем все акци...
George Polevoy
13
Как можно сжимать временные ряды в памяти? У меня есть исторические стоимости ценных бумаг. Данные для каждой минуты в истории OHLC (Open, High, Low, Close). Соответственно, O...
George Polevoy
10
Карта сайта