Vorrei sapere se esiste una funzione da numeri n-bit a numeri n-bit che presenta le seguenti caratteristiche:
- dovrebbe essere biiettivo
- Sia che dovrebbero essere calcolabili abbastanza velocemente
- dovrebbe restituire un numero che non ha correlazioni significative con il suo input.
La logica è questa:
Voglio scrivere un programma che funziona sui dati. Alcune informazioni dei dati sono archiviate in un albero di ricerca binario in cui la chiave di ricerca è un simbolo di un alfabeto. Con il tempo, aggiungo ulteriori simboli all'alfabeto. Nuovi simboli ottengono semplicemente il prossimo numero gratuito disponibile. Quindi, l'albero avrà sempre una leggera propensione per le chiavi più piccole, il che provoca più riequilibrazioni di quanto ritenga necessario.
La mia idea è quella di manipolare i numeri dei simboli con tale che siano ampiamente diffusi su tutta la gamma di . Poiché i numeri dei simboli sono importanti solo durante l'input e l'output, che si verificano una sola volta, l'applicazione di tale funzione non dovrebbe essere troppo costosa.
Ho pensato a un'iterazione del generatore di numeri casuali Xorshift, ma non conosco davvero un modo per annullarlo, anche se teoricamente dovrebbe essere possibile.
Qualcuno conosce una tale funzione?
E 'questa una buona idea?