Pari o dispari?

[Nota: di questo articolo esiste anche la versione più leggera.]

[Le prime righe del triangolo di Tartaglia]Noi lo chiamiamo Triangolo di Tartaglia. Più o meno tutto il resto del mondo lo chiama Triangolo di Pascal. Credo che per gli arabi sia il Triangolo di Khayyam, e gli svizzeri potrebbero anche definirlo Triangolo di Bernoulli; i cinesi poi ci fanno gentilmente notare come loro lo conoscevano e ne parlavano ben prima che noi europei ne avessimo anche solo una lontana idea. Sicuramente l'avete visto chissà quante volte anche voi: è il triangolo formato dai coefficienti delle potenze nello sviluppo del binomio (1+a) n al crescere di n. Insomma, lo sviluppo binomiale di Newton, tanto per aggiungere ancora un altro nome alla sfliza di matematici enunciati all'inizio. Se così non vi viene in mente ancora nulla, magari vedere le sue prime righe vi dà qualche idea.

Generare il triangolo è semplice: i due lati del triangolo sono composti da tutti 1, e ogni altro numero è la somma dei due immediatamente sopra di esso. Le proprietà di questo triangolo sono tantissime, e ci si potrebbe scrivere probabilmente un libro sopra; ad esempio, se siete amanti dei numeri di Fibonacci sarete deliziati nello scoprire che è possibile trovare una successione di Fibonacci ben nascosta tra le righe (e le colonne). Scriviamo il triangolo in formato leggermente diverso e facciamo la somma dei numeri sulle diagonali: otteniamo proprio i numeri di Fibonacci. Simpatico, no?

[Ricavare i numeri di Fibonacci dal Triangolo
di Tartaglia] Ma stavolta non voglio parlare di Fibonacci, bensì di un misconosciuto matematico francese dell'Ottocento: Edouard Lucas. In effetti una correlazione c'è, visto che Lucas generalizzò la successione di Fibonacci e in suo onore quella che inizia con 1, 3, 4, 7, 11... si chiama appunto successione di Lucas. Ma Lucas, che fu un semplice professore di liceo, mi sa tanto che sia stato snobbato dai grandi matematici francesi da Cauchy a Poincaré, il che è semplicemente una vergogna. Oltre che esserci simpatico perché era un matematico intuitivo e amava i giochi matematici – ha anche scritto un'opera in tre volumi intitolata Récréations Mathématiques – ha scoperto dell'ottima matematica. Purtroppo per lui, è nato con un secolo di anticipo. Era infatti fissato con la rappresentazione binaria: roba tirata fuori già da Leibnitz ma che non aveva alcun interesse pratico almeno fino a che non sono stati sviluppati i primi elaboratori elettronici. Per fare un esempio, Lucas studiò i numeri di Mersenne (quelli della forma 2n-1, la cui rappresentazione binaria è quindi composta da tutti 1) e trovò un metodo (relativamente...) molto rapido per verificare se sono primi. Ancora oggi non è un caso che i numeri primi giganteschi che si scoprono ogni tanto siano di Mersenne, perché si usa una variante del suo metodo, detta test di Lucas-Lehmer. Un altro esempio dell'infatuazione di Lucas per la rappresentazione binaria è data dal gioco della Torre di Hanoi, inventato da lui e che - toh! - si risolve esattamente in 2n-1 passi, ciascuno dei quali ha un immediato corrispondente intuitivo in un numero binario.

Anche la proprietà che Lucas ha scoperto e che ora mi accingo a mostrare e dimostrare è legata ai numeri binari, ed è assolutamente incredibile a prima vista. Innanzitutto, un po' di notazioni per semplificarci la vita dopo. Definiamo B(n,k), con kn, il coefficiente (binomiale) di ak nello sviluppo di (1+a)n. Se prendiamo ad esempio

(1+a)5 = a5 + 5a4 + 10a3 + 10a2 + 5a + 1

abbiamo B(5,2) = 10. Nel nostro triangolo di Tartaglia, le righe – a partire dalla zeresima perché noi siamo matematici e ci piace iniziare dallo zero – contengono per l'appunto i coefficienti binomiali.

[Numeri dispari (neri) e pari (bianchi)] Per quanto detto prima, esiste una formula ricorsiva per calcolare B(n,k): se k=0 oppure k=n, esso vale 1, altrimenti vale

B(n-1,k-1) + B(n-1,k).

Esiste anche una formula diretta per calcolare B(n,k): esso vale n!/(k!(n-k)!), dove n! indica chiaramente la funzione fattoriale e cioè il prodotto dei numeri da 1 a n. Supponiamo però che non che ci interessi sapere esattamente qual è questo numeraccio, ma ci basti sapere se è pari (P) oppure dispari (D). Se guardiamo il disegno qui a fianco, dove i quadratini neri corrispondono ai numeri dispari e quelli bianchi ai numeri pari, sono certo che vi accorgete che c'è una regolarità di un qualche tipo: si vedono triangoloni e triangolini che sembrano avere una struttura frattale. In effetti una frattale fatto così ha anche un nome, triangolo di Sierpinski; possiamo quindi immaginare che ci sia una formula piuttosto compatta che ci permetta di esprimere questa regolarità. E qui arriva appunto Lucas, con il suo teorema: «Se scriviamo n e k in forma binaria, aggiungendo se necessario degli zeri a sinistra di k in modo che le due rappresentazioni abbiano la stessa lunghezza, allora B(n,k) sarà un numero dispari se e solo se in ciascuna posizione dove la rappresentazione di k ha un 1 allora la rappresentazione di n ha un 1.» Tutto qua.

Non so se avete notato il genio di Lucas al lavoro: per calcolare ad esempio se B(31415,926) è pari o dispari, ci basta trasformare i due numeri in forma binaria (costo dell'operazione O(n log n)) e confrontarli (costo O(n)). Roba che si può fare anche con carta e matita, mentre vi sfido a calcolare i fattoriali oppure fattorizzare tutti i numeri per vedere quante sono le potenze di due nei fattoriali sopra e sotto la divisione. D'altra parte, la cosa ha anche un senso: a noi non interessa sapere il valore del coefficiente binomiale fino all'ultima cifra, ma solo una piccola parte di esso - noi che siamo abituati ai computer diremmo "il bit meno significativo" - e quindi non serve necessariamente dover fare tutti i conti. Ma da qui a scoprire la regola enunciata sopra ce ne vuole! Noi siamo più fortunati di Lucas, perché a differenza sua sappiamo già qual è il risultato che dobbiamo dimostrare. Ma dobbiamo comunque dimostrarlo, no? Ecco qua come ho fatto io, probabilmente seguendo una strada non ottimale ma che ha il vantaggio di "pensare binario", il che mi pare nello spirito di Lucas.

Iniziamo con alcuni casi facili. B(n,n) è uguale a uno, e quindi dispari; e in effetti, visto che k è uguale ad n, è immediato che in ogni posizione in cui nello sviluppo binario di k c'è un 1, anche nella corrispondente posizione di n un 1 c'è per forza. B(n,0) vale anch'esso 1, ma può dare qualche problema in più per verificare la nostra tesi... se non si è abituati a fare matematica e quindi non si conoscono "le mirabolanti proprietà dell'insieme vuoto", come ci raccontavano all'università. La rappresentazione binaria di zero è composta da tutti zeri, il che significa che non c'è alcun 1; detto in altro modo, l'insieme delle posizioni con una cifra 1 è l'insieme vuoto. Ma allora è vero che per tutte le (inesistenti) posizioni dove c'è un 1, c'è un 1 anche nella posizione corrispondente di n! Se non siete ancora convinti della cosa, provo a spiegarlo con la logica formale. L'espressione A → B è logicamente equivalente a NOT B → NOT A. La nostra frase «in ciascuna posizione dove la rappresentazione di k ha un 1 allora la rappresentazione di n ha un 1» diventa «in ciascuna posizione dove la rappresentazione di n non ha un 1 (cioè ha uno 0) allora la rappresentazione di k non ha un 1 (cioè ha uno 0)». Vista così, converrete con me che è assolutamente vero, no? L'ultimo caso che ci serve come base di partenza è B(n,k) per n=2r e k diverso da 0 e n. Visto che la rappresentazione di n è del formato 1000...000, e quella di k ha per definizione un 1 in un'altra posizione, dobbiamo dimostrare che tutti questi valori sono pari. In effetti, scriviamo B(n,k) nella versione estesa (n(n-1)(n-2)...(n-k))/(1*2*...*k). Quando k è dispari, se si esclude il fattore n si possono accoppiare tra loro tutti gli altri numeri pari, uno al numeratore e uno al denominatore: 2 con n-2, 4 con n-4, e così via. Tutte queste coppie di numeri hanno esattamente lo stesso numero di fattori 2: se non ci credete, scrivetele in formato binario e controllate qual è la cifra 1 che si trova più a destra. Quindi tutti questi fattori 2 si eliminano, e resta solo a numeratore n, cioè 2r. Se invece k è pari, gli accoppiamenti lasciano liberi a numeratore n e a denominatore k; ci resta pertanto qualche fattore 2 in più da scialare a numeratore, e il risultato continuerà ad essere pari.

A questo punto, siamo pronti ad affrontare il caso generale. Fissiamo n, e prendiamo tutti i B(n,k) visti come i coefficienti delle potenze crescenti – andrebbero anche bene decrescenti per ovvie ragioni di simmetria, ma non stiamo a sottilizzare – di a nello sviluppo di (1+a)n. Se definiamo polinomio r-binario il polinomio (1+a)m dove m =2r, e ci limitiamo a guardare la "firma di parità", vale a dire scriviamo p se il coefficiente è pari e D se il coefficiente è dispari, abbiamo appena visto che la firma di parità di un polinomio r-binario è Dpppp...pppD, dove il primo D corrisponde al coefficiente del termine di esponente 0 e il secondo a quello del termine di coefficiente m, cioè 100...0 se viene scritto in notazione binaria. [la firma binaria di un prodotto] Scriviamo ora il nostro polinomio (1+a)n come prodotto di polinomi r-binari e iniziamo a fare il prodotto da quello con r più grande a quello con r più piccolo. Notiamo innanzitutto che ciascun prodotto, dal punto di vista dei coefficienti, consiste nel sommare la firma di parità Q1Q2Q3...Qt-1Qt con sé stessa spostata di m =2s posizioni per qualche s. Per costruzione, è impossibile che nei vari prodotti che si fanno si arrivi a sommare per qualche esponente due valori entrambi dispari, visto che questo significherebbe che la somma di potenze di 2 con esponenti tutti diversi tra loro sia una potenza di due con esponente ancora diverso. Sempre per costruzione, se nel nostro polinomio fattorizzato non c'è l'esponente di indice 2k allora al passo corrispondente a k non sarà possibile far diventare dispari gli esponenti di formato (2r+1)k e ai passi successivi non potranno quindi diventare dispari quelli tra (2r+1)k e 2(r+1)k-1. Se invece l'esponente di indice 2k allora quegli esponenti diventano dispari e si può andare avanti... ottenendo così per induzione esattamente il risultato voluto. Visto in questo modo, l'enunciato del teorema sembra assolutamente naturale: ma come ho detto all'inizio, il genio è stato vedere che si poteva lavorare in una configurazione come questa. Lucas è stato un genio, non c'è che dire.

Quando si arriva a un risultato così bello, un matematico pensa subito a come lo si possa generalizzare. Purtroppo non sono riuscito a vedere nulla di fattibile con il modulo 3. Oltre al fatto che non è che io sia un così bravo matematico, credo che conti molto il fatto che 2 sia un numero primo strano, come dicono gli inglesi: "2 is an even prime number, so it is odd". Lascio comunque al lettore la possibilità di generalizzare ;-)

©Maurizio Codogno, 27 febbraio 2009