Anteprima della struttura

Dai logaritmi agli algoritmi: la scienza nascosta negli anagrammi

Un viaggio tra parole, permutazioni e pensiero computazionale: contare, verificare e inventare anagrammi senza perdere nemmeno una lettera.

Sezione: Logica Aggiornato:
Articoli /anagrammi-logaritmi-algoritmi-matematica-informatica
Dai logaritmi agli algoritmi: la scienza nascosta negli anagrammi

14 min

Basta spostare poche lettere perché un’idea ne diventi un’altra: LOGARITMI si trasforma in ALGORITMI. Non è soltanto una coincidenza divertente. Gli anagrammi permettono di incontrare, nello stesso gioco, lingua, matematica, informatica e creatività.

Immagine della sezione Logica
Sezione: Logica

Il percorso parte da una domanda semplicissima: che cosa deve rimanere identico quando cambiamo l’ordine delle lettere? Da lì arriveremo a contare le possibilità, scegliere un algoritmo efficiente e capire perché una frase brillante non è necessariamente un anagramma corretto.

LOGARITMI ⇄ ALGORITMI

1. Le lettere cambiano posto, non identità

Un anagramma riordina tutte le lettere di una parola o frase senza aggiungerne o eliminarne. Non basta ritrovare gli stessi tipi di lettere: deve coincidere anche il numero di volte in cui ogni lettera compare. In matematica è un multinsieme: un insieme in cui contano le ripetizioni.

In questo articolo ignoriamo spazi, apostrofi, punteggiatura e differenze tra maiuscole e minuscole. Conserviamo invece accenti e lettere come ñ: non li cancelliamo per far funzionare un esempio. Nella verifica digitale la normalizzazione Unicode NFC evita che una stessa lettera accentata, codificata in modi equivalenti, venga trattata diversamente.

La correttezza delle lettere è una condizione oggettiva. Il senso, l’ironia e la naturalezza sono un secondo livello: un buon anagramma letterario deve superare entrambi i controlli.

Normalizzazione Unicode: riferimento tecnico

2. Quando le parole raccontano una storia

ATTORE trova il suo TEATRO; un BIBLIOTECARIO può diventare BEATO COI LIBRI. Il piacere nasce quando la nuova disposizione conserva le lettere ma cambia, o illumina, il significato. Gli esempi seguenti sono giochi linguistici, non invenzioni attribuite qui a un autore.

PartenzaAnagrammaLegame di significato
ATTORETEATROUn protagonista e il suo luogo naturale.
BIBLIOTECARIOBEATO COI LIBRIUna descrizione scherzosa della professione.
ROMARAMOLa città diventa una parte dell’albero.
ANGELOGELANOUn nome e una forma verbale: le lettere restano identiche.

Una trappola istruttiva: SANTA → SATANA

Non è un anagramma: SANTA ha due A, SATANA ne ha tre. Il contrasto di significato non può compensare una lettera aggiunta.

3. Un gioco che non si traduce alla lettera

Tradurre il significato non significa conservare le lettere. LISTEN e SILENT sono un anagramma inglese; «ascoltare» e «silenzioso» ne spiegano il senso, ma non ne sono la traduzione come gioco di lettere. Per questo le quattro versioni dell’articolo usano esempi locali, anziché tradurre meccanicamente le coppie.

La coppia iniziale è una felice eccezione: LOGARITMI/ALGORITMI in italiano, LOGARITHM/ALGORITHM in inglese, LOGARITHME/ALGORITHME in francese e LOGARITMO/ALGORITMO in spagnolo funzionano ciascuna nella propria lingua. Non hanno però tutte la stessa lunghezza o le stesse ripetizioni, e dunque non danno lo stesso conteggio combinatorio.

Ecco tre esempi inglesi mantenuti nella lingua originale: le spiegazioni italiane chiariscono il legame, senza pretendere di essere a loro volta anagrammi.

PartenzaAnagrammaLegame di significato
ASTRONOMERMOON STARERAstronomo / osservatore della Luna.
DORMITORYDIRTY ROOMDormitorio / stanza sporca.
ELEVEN PLUS TWOTWELVE PLUS ONEUndici più due / dodici più uno: entrambe le somme valgono 13.

4. Quanti ordinamenti possiamo costruire?

Con quattro lettere tutte diverse, per il primo posto abbiamo quattro scelte; scelta la prima lettera, ne restano tre per il secondo, due per il terzo e una per l’ultimo. Moltiplichiamo perché stiamo attraversando fasi successive.

n! si legge «n fattoriale»: è il prodotto degli interi da 1 a n; per convenzione 0! = 1. Il conteggio comprende anche la parola originale. Se chiediamo soltanto riordinamenti diversi dall’originale, ne sottraiamo uno.

I 24 ordinamenti di ROMA non sono 24 parole italiane. ROMA, RAMO, ORMA, MORA e il poetico AMOR sono riconoscibili; altre sequenze non significano nulla. La formula conta disposizioni di lettere, non parole presenti nel dizionario.

ROMA: 4 × 3 × 2 × 1 = 4! = 24

5. Le lettere ripetute: perché bisogna dividere

Immaginiamo di etichettare temporaneamente le due A e le due N di ANNA: A₁, A₂, N₁, N₂. Avremmo 4! ordinamenti, ma scambiare A₁ con A₂ non cambia la parola visibile. Lo stesso vale per N₁ e N₂: ogni disposizione è contata 2! × 2! volte.

In generale, se n lettere comprendono gruppi di n₁, n₂, …, nₖ lettere identiche, con somma uguale a n, dividiamo per tutte le permutazioni invisibili dentro ciascun gruppo. Non stiamo dividendo per il numero delle lettere ripetute: dividiamo per i fattoriali delle loro molteplicità.

P = n! / (n₁! × n₂! × … × nₖ!)

ANNA: 4! / (2! × 2!) = 6
LOGARITMI: 9! / (2!) = 181440
AANN · ANAN · ANNA · NAAN · NANA · NNAA

6. L’esplosione delle possibilità e il ponte con gli algoritmi

Il fattoriale cresce molto più rapidamente di quanto suggeriscano le prime righe della tabella. Aggiungere una lettera distinta moltiplica il totale per il nuovo numero di posizioni. Produrre ogni disposizione solo per controllare una coppia di parole è quindi un lavoro sproporzionato.

LOGARITMI e ALGORITMI creano anche un ponte concettuale: la ricerca binaria dimezza ogni volta uno spazio ordinato di candidati, e il numero di dimezzamenti cresce come log₂ n. Da 1024 possibilità a una servono dieci dimezzamenti. Questo legame tra concetti non è una dimostrazione di parentela etimologica tra le due parole.

Lettere tutte diverseOrdinamenti
424
6720
840.320
103.628.800
12479.001.600
151.307.674.368.000

7. Come verifica un anagramma il computer

Possiamo ordinare le lettere di ciascuna espressione e confrontare le sequenze ottenute. La sequenza ordinata è una firma: se coincide, coincidono tutte le lettere e le loro ripetizioni.

Oppure possiamo contare. Incrementiamo un contatore leggendo la prima parola e lo decrementiamo leggendo la seconda. Alla fine tutti i contatori devono essere zero. La somma dei codici delle lettere non è una firma sicura: A+D e B+C hanno la stessa somma nei codici ASCII, ma non le stesse lettere.

Nel confronto dei costi n indica la lunghezza normalizzata complessiva e k il numero di lettere dell’alfabeto scelto. Per un alfabeto fissato il conteggio è lineare: O(n+k) diventa O(n). Per testi e alfabeti più complessi bisogna definire con cura che cosa conta come lettera; la normalizzazione non autorizza a eliminare distinzioni linguistiche.

ATTORE → AEORTT
TEATRO → AEORTT
LetteraPrima parolaSeconda parola
A11
E11
O11
R11
T22
MetodoLavoro richiestoPerché
Generare ogni disposizioneFattoriale nel caso di lettere distinteEsplora moltissimi candidati che non servono per verificare una sola coppia.
Ordinare e confrontareO(n log n) con un ordinamento per confronti efficientePorta le lettere uguali nelle stesse posizioni.
Confrontare frequenzeO(n+k), cioè O(n) con alfabeto fissatoVisita le lettere e confronta i k contatori.
VERIFICA(s, t)
  s ← PREPARA(s); t ← PREPARA(t)
  se lunghezza(s) ≠ lunghezza(t): ritorna FALSO
  contatori ← zeri per tutte le lettere ammesse
  per ogni lettera c di s: contatori[c] += 1
  per ogni lettera c di t: contatori[c] -= 1
  ritorna TUTTI_ZERO(contatori)

Per approfondire il conteggio delle frequenze: Princeton · Count.java

Verificare una proposta significa rispondere sì o no a un vincolo preciso. Inventare una frase nuova richiede invece esplorare un vocabolario, combinare parole e valutarne il senso. Non occorre però tentare ciecamente tutte le permutazioni.

Un programma può indicizzare un dizionario per firma: parole con gli stessi conteggi finiscono nello stesso gruppo. Per cercare frasi, sceglie una parola compatibile, sottrae le sue lettere dal materiale disponibile e continua. Se una lettera richiesta manca, abbandona subito quel ramo: è potatura. Se deve cambiare scelta, torna al passo precedente: è backtracking.

Il risultato dipende dal dizionario e dalle regole: nomi propri, forme flesse e parole rare possono essere ammessi oppure no. Non trovare una frase in un certo elenco non dimostra che non esista nella lingua.

9. Umano, computer e intelligenza artificiale

Il pensiero computazionale entra in gioco quando separiamo il compito in parti: preparare il testo, contare, controllare e infine giudicare il significato. Umano e macchina non devono per forza fare lo stesso lavoro.

Un’IA può proporre collegamenti e formulazioni, ma una frase convincente può aggiungere una lettera senza che ce ne accorgiamo. La proposta linguistica va sottoposta a un controllo deterministico dei conteggi. Creatività e verifica si aiutano: nessuna delle due sostituisce l’altra.

ProblemaContributo umanoContributo del computer
Stabilire le regoleSceglie lingua, accenti e parole ammesse.Applica la stessa preparazione a tutti i testi.
Verificare una coppiaSpiega perché il controllo è significativo.Confronta ogni frequenza senza fidarsi del senso.
Trovare candidatiPropone temi, ironia e collegamenti.Cerca nel dizionario e scarta rami incompatibili.
Valutare una fraseGiudica naturalezza, contesto e opportunità.Offre proposte e controlli, senza sostituire il giudizio editoriale.

10. Galileo: nascondere una scoperta nelle lettere

Nel 1610 Galileo comunicò in forma anagrammatica un’osservazione di Saturno, per riservarne il contenuto e rivendicare la priorità. La frase svelata parlava del pianeta visto in forma triplice: il suo cannocchiale non distingueva chiaramente gli anelli.

È un uso storico degli anagrammi, non un sistema moderno per proteggere dati: riordinare le lettere lascia esposto il loro inventario e non garantisce una sola interpretazione.

Per verificare il contesto storico: Mario Biagioli · From ciphers to confidentiality; Museo Galileo · Saturno.

11. Sei sfide: prova prima di aprire la soluzione

Le soluzioni sono inizialmente nascoste. Prima di aprirle, annota quali informazioni rimangono uguali e quale formula o algoritmo serve davvero.

1. Verifica ATTORE / TEATRO: quale firma ordinata e quali conteggi ottieni?

Mostra soluzione e ragionamento
ATTORE → AEORTT
TEATRO → AEORTT

La firma coincide perché ogni lettera compare con la stessa frequenza.

2. Quanti ordinamenti distinti ha ROMA? Sono tutti parole?

Mostra soluzione e ragionamento
ROMA: 4! = 24

La formula comprende l’ordine originale e tutte le sequenze prive di significato: il dizionario è un filtro successivo.

3. Quanti ordinamenti distinti ha ANNA? Perché non basta n!?

Mostra soluzione e ragionamento
ANNA: 4! / (2! × 2!) = 6

Scambiare copie identiche non crea un nuovo risultato visibile: perciò dividiamo per i fattoriali delle molteplicità.

4. AAB e ABB contengono gli stessi tipi di lettere: sono anagrammi?

Mostra soluzione e ragionamento
AAB: A=2, B=1
ABB: A=1, B=2

No. AAB contiene due A e una B; ABB una A e due B. Stessa lunghezza e stesso insieme di tipi non bastano.

5. Quanti ordinamenti di ROMA iniziano con R?

Mostra soluzione e ragionamento
3! = 3 × 2 × 1 = 6

Fissata la prima lettera, restano tre lettere distinte da sistemare: 3! = 6.

6. Un’IA propone una frase molto brillante: come decidi se è un anagramma esatto?

Mostra soluzione e ragionamento

Dichiara le regole, normalizza entrambi i testi, controlla lunghezza e frequenze. Se coincidono verifica poi grammatica e significato; se non coincidono la frase va corretta, anche se è spiritosa.

12. Un’idea da portare con sé

Un anagramma insegna una lezione più grande del gioco: cambiare rappresentazione può rendere semplice un problema che sembrava enorme. Non dobbiamo generare milioni di frasi per verificare due conteggi; non dobbiamo confondere una disposizione possibile con una parola sensata.

La matematica conta, l’informatica organizza, la lingua dà significato e la creatività scopre relazioni. Il controllo finale resta una domanda piccola e precisa: abbiamo usato esattamente le stesse lettere?

Continua il percorso