La tua implementazione non centra nulla con quello che avevo chiesto.
Ma non fa niente. Tanto era solo un esercizio.
Non esiste una ""particolare"" categoria per questo tipi di algoritmi.
Diciamo che fa parte di quella categoria di algoritmi che hanno a che fare con la Teoria dei Numeri, la Matematica Discreta, o, ancora, dei Problemi di tipo Combinatorio.
In particlare, questo ""particolare"" modo di rappresentare un insieme fa uso di un sistema di rappresentazione dei numeri che si chiama "Combinatorial Number System"
https://en.wikipedia.org/wiki/Combinatorial_number_system
Come ben sai, i numeri si possono rappresentare in base 10, 2, 8, 16.
Ma chi ha detto che si possono rappresentare SOLO con queste basi?
Puoi usare un QUALUNQUE numero intero.
Ma chi ha detto che deve essere solo uno?
Un istante nel tempo puo' essere rappresentato come: (anno,mese,giorno,ora,minuto,secondo)
Supponiamo, tanto per semplificare, che i mesi siano 0..11, tutti i mesi abbiano 30 giorni ed i giorni siano 0..29.
In questo caso, cosa rappresenta la data (0,0,0,0,0,0) ? BANALMENTE il numero 0. E' ovviamente puoi continuare!
In pratica stai rappresentatndo un intero con una base MISTA.
Ma chi ha detto che deve per forza essere un numero FINITO di basi? Nessuno, ed infatti potresti usare
- i numeri di fibonacci
- i numeri primi
- i numeri combinatori (basati sul coefficiente binomiale)
Ma chi ha detto che devono essere tutti positivi? Ed in fatti si pososno usare sia positivi che negativi
ecc.
Questo per dire che NON BASTA inventarsi una soluzione, bisogna anche STUDIARE e CERCARE per vedere che cosa e' gia' stato fatto/scritto.
Il 99% di quello che ti servira' sul posto del lavoro non lo hai studiato all'universita'.
Ma NON E' perche' l'unversita' non insegna quello che serve per lavorare.
E' dovuto BANALMENTE al fatto che OGNI azienda ha le sue necessita' e sarebbe IMPOSSIBILE insegnare tutto quello che serve per QUALUNQUE azienda. Ma NEMMENO per un sottoinsieme MINUSCOLO di aziende.
Compito dell'universita' e' insegnare le BASI FONDAMENTALE dalle quali partire per imparare DA SOLI quello che manca.
E per fare questo, ti insegna anche come AFFRONTARE il problema di COME imparare le cose che non sai. Attraverso i LIBRI.
Piccola nota spicciola: PERCHE' i Maya pensavano che la fine del mondo avvenisse il 21 dicembre 2012?
La risposta e' legata a come loro rappresentavano le date.
Il calendario Maya e un calendario a 5 posizioni in base mista (un mix di 12, 18 e 20), MA l'a posizione corrispondete, in qualche modo, al "millennio" (erano dei GRANDI! Ragionavano in termini di millenni, NON di anni come i nostri politici ), e' in base 13, con le cifre che vanno da 0 a 12.
Il 20 dicembre 2012 corrisponde alla data Maya[12, 19, 19, 17, 19]
Il 21 dicembre 2012 corrisponde alla data Maya[13, 0, 0, 0, 0]
MA loro non conoscevano il numero 13, per quella particolare posizione, e quindi non sarebbero stati in grado di rappresentarlo.
OVVIAMENTE non usavano le cifre ma degli ideogrammi
http://dm.unife.it/storia/maya.ht
Mentre, ad esempio, la data Maya corrispondente a Maya[0,0,0,0,0] corrisponde al 11 agosto del 3113 Avanti Cristo (Prima di Cristo)
Per le curiosita' sui calendari, c'e' questo:
NON ragionare in termini moderni. Nel mediovevo non avevano i computer e quindi non avrebbero avuto un termine per descriverli.
Se non c'e' una parola per descrivere qualcosa, vuol dire che non conosci nemmeno l'esistenza di quel qualcosa.
Nota finale: queste cose non le ho studiate all'universta'! Ma e' un mix tra curiosita' e problemi al lavoro che ho risolto CERCANDO e STUDIANDO.