conversione ai numeri di base-R
-
01-11-2019 - |
Domanda
Sto leggendo gli algoritmi 4a edizione di Robert Sedgewick e sono sconcertato da un problema particolare. A pagina 460 del libro l'autore sta descrivendo una tecnica per le stringhe di hash e usa i numeri primi per hashing modulare. A partire dalla quarta riga:
If R is greater than any character value, this computation would
be equivalent to treating the String as an N-digit base-R integer,
computing the remainder that results when dividing that number by M.
Dove si è utilizzato l'algoritmo per hash una corda lunga n-character:
int hash = 0;
for (int i = 0; i < s.length(); i++)
hash = (R * hash + s.charAt(i)) % M;
In che modo l'algoritmo di cui sopra si traduce in un numero intero di base-R?
Qui m e r sono numeri interi (casuali) e s è la stringa di lunghezza N.
Suppongo che con il "calcolo sopra" l'autore significhi il calcolo all'interno delle parentesi => r*hash + s.charat (i)
Nessuna soluzione corretta
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a cs.stackexchange