Pergunta

Eu tenho esquecido de como fazer isso.Como faço para descobrir quais são os requisitos para uma de 128-bit string usando um determinado alfabeto?

Que está a dizer, eu quero gerar um UUID (128 bits) valor, utilizando-se apenas a 10 números para o alfabeto.Quantos números eu preciso, e o que é a equação geral para que eu possa descobrir isso por qualquer alfabeto de qualquer tamanho?

Que é a equação para qualquer n bits de valor com qualquer x-letra do alfabeto?

A maneira que eu faço é para adivinhar e, lentamente, iterar até eu chegar em um próximo número.Para potências de 10, é fácil:

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

Para outros números, é preciso um pouco mais de adivinhação.Gostaria de saber a equação para isso.

Foi útil?

Solução

Para estimar o número de casas decimais necessárias para representar um $128$ número de bits de utilizar logaritmos de base $10$:

$128 imes \log_{10}(2) \approx 38.53$

então você precisa $39$ dígitos decimais para representar um $128$ número de bits.

Em geral, para um "alfabeto" com $n$ símbolos que você precisa para encontrar o valor de $128 imes \log_n (2)$ e, em seguida, volta para cima para o número inteiro seguinte.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a cs.stackexchange
scroll top