Вопрос

Я забыл, как это сделать.Как узнать, какие требования к 128-битной строке с использованием определенного алфавита?

Что сказать, я хочу создать uuid (128-битное) значение, используя только 10 номеров для алфавита.Сколько мне нужно номера, а каково общее уравнение, поэтому я могу понять это для любого алфавита любого размера?

Что такое уравнение для любого n-битного значения с любым алфавитом x-буквы?

То, как я это делаю, должен угадать и медленно итерации, пока не прибуду по тесному номеру.Для полномочий 10 легко:

Math.pow(2, 128)
3.402823669209385e+38
Math.pow(10, 39)
1e+39
.

для других чисел, требуется немного больше угадывания.Хотел бы знать уравнение для этого.

Это было полезно?

Решение

Для оценки количества десятичных цифр, необходимых для представления $ 128 $ Битовый номер, который вы используете логарифмы для базы $ 10 $ :

$ 128 \ times \ log_ {10} (2) \ Приблизительно 38.53 $

Так что вам нужно $ 39 $ Десятичные цифры для представления $ 128 $ Битовое число.

в общем, для «алфавита» с $ n $ символы, которые необходимо найти значение $ 128 \Times \ log_n (2) $ а затем округляйте это до следующего целого числа.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с cs.stackexchange
scroll top