Categorie: Matematica
Tags: codice segreto fermat numeri autobiografici quiz soluzione
Scritto da: Vincenzo Zappalà
Commenti:6
Soluzione del codice di Fermat ***
QUI il quiz
La scoperta del terzo codice è, in fondo, meno difficile di quanto sembri all'inizio. Oltretutto nel racconto vi è un aiuto "mascherato" che può già far pensare a che strani numeri ci troviamo di fronte. Ho parlato, infatti, di un manoscritto autobiografico e la soluzione si basa proprio sui numeri autobiografici.
Vediamo le caratteristiche peculiari che ci mostrano i primi due codici:
1210
La prima casella si riferisce allo zero, la seconda all'uno, la terza al due e la quarta al quattro. In che modo? La prima casella ci dice quanti zero sono presenti nel numero, la seconda quanti uno sono presenti, la terza quanti due e l'ultima quanti tre. Proviamo a verificare:
0 1 2 3 numero della casella
1 2 1 0
nel numero ci deve essere un solo zero, due uno, un due e nessun tre. Perfetto, il numero si descrive da solo.
Proviamo col secondo.
0 1 2 3 4 5 6 numero della casella
3 2 1 1 0 0 0
Il numero dice che ci sono tre zeri, 2 uno, un due e un tre, nessun 4, 5 e 6
Perfetto!
Il codice con dieci caselle deve essere un numero che ha questa stessa caratteristica.
Però, però... i primi due codici ci dicono anche che la somma delle cifre che compongono il codice è proprio uguale al numero di caselle. Infatti:
1 + 2 + 1 + 0 = 4
3 + 2+ 1 + 1 + 0 + 0 + 0 = 7
Ne segue che il nostro codice di dieci cifre deve avere come somma delle sue cifre proprio il numero 10.
Scriviamolo come
0 1 2 3 4 5 6 7 8 9 numero della casella
n0 n1 n2 n3 n4 n5 n6 n7 n8 n9
Sapendo che:
n0 + n1 + n2 + n3 + n4 + n5 + n6 + n7 + n8 + n9 = 10
La somma è decisamente un numero piccolo, per cui è sicuramente necessario che compaiano molti zeri.
Con queste premesse, molto personali, ho cominciato a mettere tutti zero nelle caselle superiori a zero.
9 0 0 0 0 0 0 0 0 0
Bene, la prima casella mi dice che ci sono nove zeri. Attenzione però, mi dice anche che ci deve essere un uno nella nona casella
9 0 0 0 0 0 0 0 0 1
La somma è proprio 10, ma le cose si complicano, dato che compare un 1. Corro ai ripari e metto un 1 nella casella dell'uno
9 1 0 0 0 0 0 0 0 1
Niente da fare... ho due uno e quindi devo mettere un 2 nella casella dell'uno. Ma questo fatto implica che deve comparire anche un 2 e, quindi, devo mettere un uno nella casella del due.
9 2 1 0 0 0 0 0 0 1
Sono state bloccate la seconda e la terza casella. Ne segue che ovunque vada a mettere il secondo 1 la configurazione della seconda e terza casella non può cambiare. Il che vuol dire che il numero di zeri deve diminuire... al massimo può essere 6.
La soluzione risulta quindi ovvia: basta mettere 6 nella casella dello zero e un uno nella casella del 6.
6 2 1 0 0 0 1 0 0 0
Adesso tutto torna e quindi questo deve essere il codice.
Se volete saperne di più... andate nei commenti del quiz, dove Andy e Maurizio si sono scatenati!
6 commenti
solo come curiosità, mi sono scritto i numeri a partire dal 3211000 fino al 6210001000 in sequenza.
BASE NUMERO autobiografico / descrittivo nella sua base
7 3211000
8 42101000
9 521001000
A 6210001000
Osservando la struttura di questi numeri autodescrittivi dalla base 7 alla 10 (che indico con A) si vede uno schema che si ripete con regolarità.
- Ciascun numero ha nella prima posizione un valore incrementato di 1 rispetto al precedente.
- Tutti i numeri finiscono con 1000
- La stringa di '0' inclusa tra i due '1' si incrementa di una posizione rispetto al numero precedente.
Posso facilmente estendere alle basi successive, (per esempio le prossime 3) questa struttura generando i numeri in sequenza
BASE NUMERO autobiografico / descrittivo nella sua base
Ma posso anche non fare riferimento al numero precedente e scrivere direttamente il numero in funzione della sua base.
- In prima posizione metto (base - 4)
- seguono 2 e 1 nelle due posizioni successive.
- poi la stringa di 0 costituita da (base-7) elementi
- concludo con la stringa 1000
Posso scrivere immediatamente, per esempio, l'autodescrittivo nella base 13 ( ossia D)
13-4 fissi stringa di 13-7= 6 '0' 1000 finale
9 2 1 0 0 0 0 0 0 1 0 0 0
Per la base 16 (di particolare interesse in informatica) l'autodescrittivo vale
16-4 fissi stringa di 16-7= 9 '0' 1000 finale
C 2 1 0 0 0 0 0 0 0 0 0 1 0 0 0
Interessante la tua osservazione Maurizio, anche perché da spunto ad alcune riflessioni:
rimanendo nel sistema a base 10 e applicando il criterio da te descritto, partendo dal codice a 10 cifre
6 2 1 0 0 0 1 0 0 0 posso ottenere quello da 9 cifre scalando di un'unità il primo numero della sequenza (il 6 in blu), lasciando fisso il 2 ed eliminando uno zero subito dopo il primo 1 (terzo numero da sinistra): 5 2 1 0 0 1 0 0 0
stesso discorso per 8 cifre: 4 2 1 0 1 0 0 0
e per 7 cifre: 3 2 1 1 0 0 0
Praticamente le cifre variano secondo una parte semi-fissa (la prima cifra che diminuisce/aumenta di 1 unità e la seconda cifra che rimane costantemente 2. La parte "binaria" del codice, invece, varia secondo un certo algoritmo:
nel codice a 7 cifre, la parte binaria è: che equivale a decimale,
nel codice a 8 cifre è che equivale a decimale
nel codice a 9 cifre è che equivale decimale
e infine per il codice a 10 cifre: che equivale a decimale
cioè la parte variabile decimale varia secondo l'algoritmo dove è la prima cifra della sequenza. Questo fino alle 7 cifre perché per codici di lunghezza 6, 3, 2 non ho trovato il corrispondente autodescrittivo, mentre per lunghezza 4 e 5:
Cambiando invece la base del sistema di numerazione (base 10, base 11, etc...) e considerando il codice di massima lunghezza relativamente al sistema di numerazione (10 cifre base 10, 11 cifre base 11, etc...) il ragionamento rimane lo stesso ma cambia l'algoritmo di determinazione della parte che si fa variare:
Insomma, abbiamo detto le stesse cose, tu parlando in "decimalese" ed "esadecimalese" forbito, io in un misto dialettale di "binariese algoritmico" con accento "decimalese"...
Le formule si sono "mangiate" i binari del sistema a base 10:
7 3 2 24DEC = 3×23 1 1 0 0 0
8 4 2 40DEC = 3×23 + 24 1 0 1 0 0 0
9 5 2 72DEC = 3×23 + 24 + 25 1 0 0 1 0 0 0
10 6 2 136DEC = 3×23 + 24 + 25 + 26 1 0 0 0 1 0 0 0
Vabbè, anche le potenze del 2
Comunque ci siamo capiti...
Molto interessante anche questa integrazione. Ottimo.
Gli autodescrittivi delle basi 2 e 3 non esistono come si può verificare anche esaustivamente date le pochissime configurazioni possibili in queste basi.
Per la base 6 sconsiglio l'analisi esaustiva delle configurazioni ma facendo qualche ragionamento si capisce che non ha autodescrittivi.
Ho fatto un po' di prove in excel e ho visto che si riesce a generarli in sequenza , a partire da quello di 7 cifre con questa formula.
N i +1 = (Ni *10) + 10ni - 9000
in cui N i +1 è il nuovo numero in base ni+1
Ni è il precedente numero in base ni
Certo che poi non vedo cosa potremmo farcene di uno sterminio di questi numeri, salvo usarli per proteggere la famosa prova perduta del teorema Fermat
Latex latex ....
La formula è questa:
-
dove è il nuovo numero in base
è il precedente numero in base