Domanda

Ho dimenticato come farlo.Come posso capire quali sono i requisiti per una stringa a 128 bit utilizzando un determinato alfabeto?

Vale a dire, voglio generare un valore uuid (128 bit), usando solo i 10 numeri per l'alfabeto.Quanti numeri ho bisogno, e qual è l'equazione generale, quindi posso capire questo per qualsiasi alfabeto di qualsiasi dimensione?

Qual è l'equazione per qualsiasi valore N-Bit con qualsiasi alfabeto X-Letter?

Il modo in cui lo faccio è indovinare e lentamente iteralmente finché non arrivo ad un numero ravvicinato.Per i poteri di 10 è facile:

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

Per altri numeri, ci vuole un po 'più di indovinare.Piacerebbe conoscere l'equazione per questo.

È stato utile?

Soluzione

Per stimare il numero di cifre decimali necessarie per rappresentare una $ 128 $ Numero di bit Utilizzare logaritmi in base $ 10 $ :

$ 128 \ volte \ log_ {10} (2) \ circa 38,53 $

Quindi è necessario $ 39 $ cifre decimali per rappresentare una classe $ 128 $ Numero di bit.

In un generale, per un "alfabeto" con $ N $ simboli necessari per trovare il valore della $ 128 \Times \ log_n (2) $ e quindi arrotondare questo fino al prossimo numero intero.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a cs.stackexchange
scroll top