Archivi categoria: matematica_light

Addizione pitagorica

Sappiamo tutti che l’ipotenusa di un triangolo rettangolo di cateti 3 e 4 è lunga 5. Cosa succede se invece che scrivere \( \sqrt (3^2 + 4^2) = 5 \) decidessimo la formula 3 ⊕ 4 = 5? Avremmo definito una nuova operazione, che possiamo chiamare addizione pitagorica. Che proprietà ha questa operazione? Innanzitutto è commutativa, come la normale addizione: \( a \oplus b = b \oplus a \). È anche associativa: \( ( a \oplus b ) \oplus c = a \oplus (b \oplus c) \), e quindi possiamo scrivere \( a \oplus b \oplus c \) senza parentesi, il che tra l’altro ci dà la lunghezza della diagonale maggiore di un parallelepipedo. E ovviamente – non ve lo devo mica dimostrare, vero? – abbiamo che \( a \oplus b \lt a + b \), a meno che uno tra i due operandi sia nullo.

Ma ci sono anche altri usi dell’addizione pitagorica, tanto che molti linguaggi di programmazione la implementano come la funzione hypot (ipotenusa, senza grande fantasia). Per esempio, se dobbiamo convertire un numero in coordinate cartesiane \(a, b\) nell’equivalente in coordinate polari \(r, \theta \) applichiamo le formule \( r = x \oplus y; \theta = \textrm{atan2}(y,x) \). Un altro uso è quello per calcolare il valore efficace, detto anche media quadratica, di due valori, che è dato dalla loro somma pitagorica scalata di un fattore \( \tfrac{1}{\sqrt 2} \); più in generale la media quadratica di \( n \) valori ha come fattore di scala \( \tfrac{1}{\sqrt n} \).

Una curiosità è che nella maggior parte dei casi pratici di operazioni fatte al computer la radice quadrata serve solo per calcolare l’addizione pitagorica. Soprattutto con i primi calcolatori, quindi, si è cercato di trovare un algoritmo meno complesso computazionalmente, e già che si era lì di trovarlo “robusto”. Se i due operandi sono molto grandi, infatti, il calcolo naïf può portare a un overflow. Nel 1983 hanno così descritto un metodo iterativo che sostituisce man mano ai due numeri di partenza altri due numeri con la stessa somma pitagorica ma col secondo che diventa sempre più piccolo: quando arriva praticamente a zero, per definizione il primo numero è il risultato. Oggi ci sono metodi molto più semplici, anche perché possiamo permetterci il lusso di avere tabelle di lookup molto grandi che riducono enormemente il numero di operazioni necessarie; ma volete mettere il divertimento dei due ricercatori?

Ultimo aggiornamento: 2026-02-26 12:12

Quante molecole di emoglobina produciamo al secondo?

Lunedì ho ignominosamente ciccato una stima alla domanda del titolo, rispondendo “un miliardo”. A mia parzialissima discolpa, ho davvero tirato a indovinare, senza pensarci su: adesso provo a fare i conti spannometrici, come in ogni problema di Fermi che si rispetti, per vedere se vado un po’ meglio. I problemi di Fermi, se non lo sapeste già, sono quelli in cui bisogna dare una stima sensata della risposta senza andarla a cercare, usando magari in modo creativo tutte le reminescenze che vi vengono in mente.

Da dove parto? Da buon ex donatore di sangue, so che ci sono in media 4,5 milioni di globuli rossi per millimetro cubo di sangue, e che un globulo rosso vive una novantina di giorni. Inoltre il corpo umano ha circa 5 litri di sangue, che possiamo approssimare a 5 decimetri cubi. Arrotondando i numeri e usando la notazione esponenziale abbiamo 5·10^6·5·10^7 = 2,5·10^13 globuli rossi, diviso 100·10^5 = 2,5·10^6 globuli rossi prodotti per secondo. Questa è diciamo la parte facile, ed è una stima particolarmente corretta: qui per esempio dicono 2,4 milioni. Occhei, la fortuna del dilettante. Per quanto riguarda le molecole di emoglobina, mi trovo molto più a disagio e mi tocca arrampicarmi sugli specchi. Sempre come ex donatore so che la percentuale di emoglobina nel sangue è tra il 12 e il 18%, che arrotondo a 0,1 cioè un decimo. Abbiamo quindi circa 500 grammi di emoglobina nel sangue, che saranno come ordine di grandezza una mole: la molecola avrà un’ottantina di atomi, così ad occhio. Quindi il numero totale di molecole di emoglobina è il numero di Avogadro, 6·10^23, e quindi abbiamo circa 2·10^10 molecole di emoglobina per globulo rosso. Stavolta ho sbagliato per difetto di un fattore 100, banalmente perché una molecola di emoglobina è molto più grande di quello che pensavo: pesa circa 68.000 Dalton e non 500. Non si può avere sempre fortuna… In definitva il mio valore di 5·10^16 atomi è sbagliato rispetto alle stime tra 4,7 e 7·10^18 atomi, ma sicuramente molto più vicino alla realtà del valore che avevo tirato a indovinare.

Commenti? Per risolvere un problema di Fermi occorre avere conoscenze di tutti i tipi. Io avevo quelle empiriche da donatore di sangue, quelle delle misure standard come i circa 100.000 secondi in un giorno (sì, sono 86.400, ma qui si arrotonda), le reminescenze scolastiche come il numero di Avogadro ma mi mancavano quelle di chimica organica. Due ordini di grandezza di errore su un quintilione (americano: in italiano sarebbe un trilione) sono tanti o pochi? Decidete voi. Intanto mi porto a casa un valore di grandezza (una molecola complessa) che potrà servirmi in futuro per altri problemi di Fermi…

Un racconto sulle dimostrazioni a conoscenza zero

La scorsa settimana vi avevo promesso di dire qualcosa di più sulle dimostrazioni a conoscenza zero. Lo faccio ispirandomi a questo articolo di Jean-Jacques Quisquater e Louis Guillou, dal titolo (nella traduzione inglese fatta con Tom Berson) “How to Explain Zero-Knowledge Protocols to Your Children”. La mia non è ovviamente una traduzione, perché violerei il copyright, ma un racconto simile. Pronti?

Qualche mese fa mi è arrivata una lettera che aveva dell’incredibile. Pare che un mio bisnonno fosse un collaboratore di Houdini, e avesse collaborato con lui alla creazione di un gioco di prestigio che il grande mago non ebbe mai la possibilità di mettere in pratica per la sua morte inaspettata. Le ultime volontà che sussurrò al mio bisnonno furono di mantenere il segreto e confidarlo solo a un suo parente laureato in matematica. Il mio bisnonno cercò invano di convincere i suoi figli e poi i suoi nipoti a darsi alla matematica, senza alcun risultato. Prima di morire lasciò le istruzioni e una certa somma di denaro a uno studio legale, che finalmente cominciò a fare ricerche anche sui rami collaterali arrivando finalmente a trovare me. Ma qual era questo gioco di prestigio?
le stanze segrete
Si tratta di un esperimento di manipolazione del pensiero. Ci sono due stanze, come in figura, che vengono mostrate a chi vuole partecipare al gioco. Le stanze hanno solo una porta di ingresso, e c’è un corridoio a gomito che non permette di vedere quale viene aperta. Il mago entra nel corridoio, e quando il partecipante è pronto entra in una stanza. A questo punto il partecipante arriva e bussa a una porta… e il mago esce invariabilmente dall’altra. Il trucco è ingegnoso: le due stanze sono in realtà comunicanti, perché la parte arancione della parete che le divide è scorrevole. La parte davvero complicata è capire come farla scorrere. Le piastrelle ai lati della parete sono collegate a un insieme di ingranaggi, e c’è una (lunga) combinazione di pressioni sulle varie piastrelle che permette di azionare il meccanismo. La lettera che ho ricevuto conteneva un’altra busta chiusa con la combinazione da usare, che ho imparato a memoria prima di distruggere il foglio.

Come sfruttare questa conoscenza? Ho pensato di registrare una trasmissione televisiva dove dimostro la mia capacità non tanto di leggere nel pensiero ma di sapere attraversare i muri. Una troupe è venuta con me, ha filmato le stanze e poi siamo tutti usciti dalla struttura. A questo punto io sono entrato da solo; una volta dentro il conduttore ha lanciato una moneta e a seconda se fosse uscito testa o croce mi diceva “esci dalla porta di destra” oppure “esci dalla porta di sinistra”, cosa che potevo fare senza problemi. Abbiamo ripetuto la stessa scena quarantadue volte, tra una battuta e l’altra. Una volta, due, tre potevo essere stato fortunato: ma con quarantadue volte era chiaro che potevo davvero attraversare i muri, in un modo o nell’altro!

Tutto bene? Macché. Quelle stanza erano parte della Fondazione Houdini, e quindi chiunque poteva visitarle. Un network concorrente chiese la possibilità di accesso per mezza giornata, e filmò esattamente la stessa mia scena. Naturalmente per circa metà delle volte il mio alter ego non poté uscire dalla porta giusta, ma questo non era affatto un problema: in fase di postproduzione tagliarono tutti i tentativi infruttuosi e il giorno e l’ora stessa in cui il mio programma andò in onda trasmisero la loro versione, per dimostrare che era tutta una finta. Siamo andati in tribunale, e i giudici hanno visionato fotogramma per fotogramma le due registrazioni: non c’era nessuna possibilità di capire quale fosse reale. Addio ai miei sogni di gloria.

Questo racconto evidenzia le tre caratteristiche di base delle dimostrazioni a conoscenza zero. La prima è che, come avevo già detto la settimana scorsa, una dimostrazione a conoscenza zero non dà mai la certezza, ma solo una probabilità che possiamo rendere grande a piacere di essere vera. Questo può spaventare un matematico, abituato alla precisione totale: ma qui lavoriamo fuori dall’iperuranio e possiamo permetterci un po’ di sciatteria. La seconda caratteristica è forse la più sconcertante: la “prova della dimostrazione” non è a sua volta una dimostrazione! Infatti la troupe che ha girato le scene con me è convinta che io possa attraversare il muro tra le due stanze, non importa come, ma la presunta prova (il video con la mia performance) può essere ricreato anche senza conoscere il segreto del passaggio tra le due stanze, proprio come col filmato che avevo proposto la settimana scorsa. Infine la terza caratteristica è legata alla casualità. Quando entro in una stanza, nessuno sa quale sarà l’esito del lancio della moneta! Se non fosse così e una successione di esiti fosse definita a priori, il mio alter ego saprebbe già dove andare, e chiunque giuardasse il video – che stavolta non deve nemmeno essere editato – penserebbe che anche lui conosce il segreto. Insomma, se vogliamo essere convinti della dimostrazione a conoscenza zero dobbiamo per forza introdurre un elemento di casualità.

C’è altro? Sì. ma ne parlerò un’altra volta :-)

Ultimo aggiornamento: 2026-02-11 10:34

Logaritmo discreto e dimostrazioni a conoscenza zero

Avevo parlato delle dimostrazioni a conoscenza zero una decina d’anni fa, sul Post. Magari la prossima settimana ne scrivo ancora. Per il momento vi lascio una dimostrazione pratica: una dimostrazione si dice a conoscenza zero se io riesco a convincerti che conosco un segreto senza rivelartelo. Per esempio, potrei dirti che ho una tecnica infallibile per lanciare una moneta e farla cascare su testa o croce: tu mi dai una moneta, mi dici quale faccia vuoi che esca, e io ci riesco una, dieci, cento volte di fila. A un certo punto tu ti fiderai che io sono effettivamente in grado di decidere quale faccia mostrare (e ovviamente non giocherai più a testa o croce con me), anche se non hai nessuna idea di come io faccia. La parola chiave è “fidarsi”: le dimostrazioni a conoscenza zero sono inerentemente probabilistiche, proprio perché non possiamo controllare la dimostrazione. Quello che conta è che la probabilità che io sia stato semplicemente fortunato sia piccola a piacere: con un solo lancio capiterebbe una volta su due, con dieci lanci una volta su 1000, con cento lanci la probabilità di essere stato fortunato sarebbe inconcepibilmente piccola.

Passiamo ora al logaritmo discreto. Probabilmente vi ricordate che se avete l’equazione $b^x = y$ allora $b$ è la radice x-sima di $y$, mentre $x$ è il logaritmo di $y$ in base $b$: a differenza di addizione e moltiplicazione, l’elevazione a potenza non è commutativa e quindi ci sono due operazioni inverse. Quello che a scuola non insegnano è che è possibile anche calcolare il logaritmo in un gruppo finito, se la dimensione del gruppo è un numero primo $p$ (insomma, se stiamo usando i numeri modulo $p$). Prendiamo per esempio $p = 7$: le potenze di 3 in base 7 sono le seguenti.

$$\begin{matrix}
n & 1 & 2 & 3 & 4 & 5 & 6 \\
3^n & 3 & 2 & 6 & 4 & 5 & 1 \\
\end{matrix}$$

Notate che non consideriamo lo 0, perché ci interessa il gruppo moltiplicativo e non quello additivo; notate anche come tutti i valori da 1 a 6 sono presenti nella riga delle potenze. Da qui è facile ricavare il logaritmo discreto:

$$\begin{matrix}
n & 1 & 2 & 3 & 4 & 5 & 6 \\
\log_3 n & 6 & 2 & 1 & 4 & 5 & 3 \\
\end{matrix}$$

In questo caso la tabella è facile da calcolare, ma se partissimo da un numero primo di centinaia di cifre sarebbe ancora facile elevare un numero a una qualche potenza, ma non lo sarebbe affatto partire da quel risultato e risalire al numero. Il logaritmo discreto è insomma una di quelle “funzioni a senso unico” che servono per la crittografia. Come si può sfruttare il logaritmo discreto per convincere il mio interlocutore che conosco $x$, il logaritmo in base $b$ di $y$, senza rivelarglielo? Ecco un protocollo di comunicazione, come spiegato da John Cook.

(1) Io scelgo un numero (naturale) casuale $r$, calcolo $t = b^r$, e mando al mio interlocutore il numero $t$.
(2) Lui mi spedisce a sua volta un altro numero casuale $c$.
(3) Io calcolo $s = r + cx$ e glielo mando.
(4) Lui verifica ce effettivamente $b^s = ty^c$. In caso affermativo si fida (oppure riprova più volte, se pensa che io abbia avuto fortuna).

Cosa conosce il mio interlocutore, oltre alla base $b$ e a $y$? Due numeri: $t$ e $s$. Il primo, $t$, è l’esponenziale (in base $b$ di un numero casuale, e quindi è anch’esso casuale: non dà dunque nessuna informazione. Il secondo, $s$, di per sé è basato su $x$, ma per trovarlo bisognerebbe conoscere $r$ e per riuscirci dovrebbe essere in grado di calcolare rapidamente il logaritmo discreto, cosa che al momento non è fattibile. Infine, abbiamo che $b^s = b^{r+cx} = b^r b^{cx} = t (b^x)^c = ty^c$. Inoltre, visto che io non potevo conoscere a priori $c$, non potevo fare il calcolo in anticipo. Anche questo punto è importante, perché altrimenti potrei usare dei trucchi: tornando all’esempio del lancio di monete, non è così difficile fare un video in cui io per dieci volte di fila lancio una moneta dicendo ciascuna volta cosa uscirà. Comincio a filmare finché non mi capita la successione di dieci risultati corretti, e taglio tutta la parte precedente del video…

Ultimo aggiornamento: 2026-02-05 07:44

Dimostrazione senza parole

In un triangolo rettangolo il quadrato costruito sull’ipotenusa ha la stessa area della somma dei due quadrati costruiti sui cateti. Questo è il teorema di Pitagora, e penso sia noto a tutti. Ma lo sapevate che se noi prolunghiamo la bisettrice dell’angolo retto essa taglia il quadrato costruito sull’ipotenusa in due trapezi congruenti?
La dimostrazione sembrerebbe a prima vista complicata, ma non è affatto così: basta costruire un quadrato a partire dal triangolo, come si può vedere in questa dimostrazione senza parole.

i due triangoli opposti sono congruenti, quindi per simmetria lo sono anche i due trapezi

disegno di Petrus3743, da Wikimedia Commons: https://commons.wikimedia.org/wiki/File:01_Rechtw._Dreieck_Winkelhalbierende-2.svg

Scrivere un numero come somma di palindromi

Un palindromo è una parola che può essere letta allo stesso modo da sinistra a destra o da destra a sinistra. Come a suo tempo scrisse Stefano Bartezzaghi, in italiano i palindromi più lunghi secondo le regole della Settimana enigmistica (nomi, oppure verbi all’infinito o al participio) hanno sette lettere (OSSESSO, INGEGNI, ANILINA); accettando i risultati “in altura” (parole desuete) troviamo le otto lettere di EREGGERE, forma antica di erigere; “in favore di vento” (verbi coniugati) tocchiamo le nove lettere di ONORARONO. Se infine accettiamo il doping e inventiamo parole, arriviamo alle quattordici lettere di ACCAVALLAVACCA, ipotetico dispositivo per impilare mucche una sull’altra.

Se dalle lettere passiamo ai numeri, possiamo chiederci se possiamo ottenere un numero qualunque sommando due numeri palindromi. La risposta è no: per arrivare a 201 bisogna per forza sommare tre palindromi, per esempio 101+99+1. Però è sempre possibile ottenere un numero sommando tre numeri palindromi. Questo articolo del 2017 di Javier Cilleruelo, Florian Luca e Lewis Baxter lo dimostra esplicitamente non solo per la base 10 ma per tutte le basi da 5 in su, costruendo una serie di algoritmi che trattano i vari casi. Si può dire qualcosa di più? Non molto, almeno leggendo questo articolo. Si sa che la densità dei numeri che non possono essere scritti come somma di due palindromi è positiva (esiste cioè una costante c per cui la quantità di numeri da 1 a x esprimibili come somma di due palindromi è minore di cx); nel 2024 Dmitrii Zakharov ha trovato un risultato più forte, che cioè esiste una costante c’ per cui la quantità di numeri da 1 x esprimibili come somma di due palindromi è minore di x/logc’x. Quindi per ottenere “quasi tutti” i numeri c’è bisogno di sommare tre palindromi. Per quanto riguarda le altre basi, Aayush Rajasekaran, Jeffrey Shallit e Tim Smith hanno dimostrato che anche in base 3 e 4 bastano tre palindromi, mentre in base 2 ne possono occorrere quattro: che tre non bastassero era già noto, perché 101100002 non può essere scritto come somma di due palindromi, ed essendo pari non può essere somma di tre palindromi, visto che un palindromo in base 2 deve per forza terminare con 1. Questo articolo è interessante perché l’approccio usato per risolverlo è stato costruire un automa che verificasse le proprietà, roba insomma più da informatica teorica che da matematica.

A che serve tutto questo? Ovviamente a nulla :-)

PS: ho provato a chiedere a Gemini “is it true that every positive integer in base 3 is the sum of at most three palindromes? Do you have a source for this?” e ha fallito miseramente, dicendo che sì, è sempre vero, e citando proprio l’articolo qui sopra. Mai fidarsi di un chatbot.

Biliardi come macchine di Turing

Il biliardo di Turing Premetto che ho solo dato una rapida occhiata a questo post. Ma il risultato è incredibile. Definiamo un biliardo come una superficie bidimensionale senza attrito al cui interno si trova una particella puntiforme che si muove con velocità costante, e ogni volta che tocca un punto del contorno della superficie rimbalza con un angolo simmetrico a quello con cui l’ha colpita. Fin qui nulla di strano. Eva Miranda e Isaac Ramos hanno dimostrato che è possibile codificare una macchina di Turing con un biliardo il cui contorno è formato solo da segmenti e archi di parabola. Il risultato pratico è che anche un sistema passivo (una volta data direzione e punto di partenza è tutto definito) in uno spazio bidimensionale continuo ha sufficiente potenza elaborativa per compiere qualunque operazione calcolabile. (Immagino che vi siate ricordati che anche Life di Conway è Turing-completo; ma quello è un sistema bidimensionale discreto). Un corollario notevole è che anche un sistema totalmente deterministico come il nostro biliardo può avere un comportamento indecidibile (cioè non è detto sapere se il percorso del nostro punto si ripeterà prima o poi, oppure no) per un motivo puramente logico, senza dovere mettere in campo l’impossibilità quantistica di fare una misura perfetta. Il nostro universo è insomma sempre meno possibile da comprendere, anche solo in linea teorica…

I numeri di Heesch

cornici di rettangoliConsiderate un rettangolo 1×2, come quello giallo al centro della figura qui a fianco. È possibile circondarlo completamente, senza lasciare spazi vuoti, con cinque rettangoli uguali, quelli rossi. La figura ottenuta può a sua volta essere circondata da nove rettangoli (blu), e ancora da tredici rettangoli (verdi), e così via all’infinito. Ma se avessimo avuto un cerchio al posto del rettangolo non saremmo mai riusciti a completare nemmeno una corona. E il problema non è tanto dovuto al fatto che il cerchio sia una figura curva: se per esempio togliamo due quadratini piccoli da un lato lungo del rettangolo di partenza, il problema è comunque impossibile.

figura con numero di Heesch 1

figura di Cmglee, https://en.wikipedia.org/wiki/File:Heesch_number_1_parts.svg

Bene: come spiega Wikipedia, queste due figure hanno numero di Heesch rispettivamente infinito e zero. Più precisamente, il numero di Heesch di una forma bidimensionale è il massimo numero di anelli circolari (o corone), costituite dalla stessa forma, che si possono costruire attorno ad essa, senza sovrapposizioni e senza spazi vuoti. Il problema di Heesch consiste nel chiedersi se esistono forme geometriche ch hanno un numero di Heesch qualunque tra 0 e infinito. Heinrich Heesch ideò il problema quando nel 1968 scoprì una forma (mostrata in nero nella figura di destra) che all’inizio pare poter tassellare il piano come i quadrati, ma che si blocca subito: il numero di Heesch corrispondente è 1. Si è poi scoperto che nel 1928 Walther Lietzmann aveva già trovato una figura con numero di Heesch 1, che assomiglia ai puntatori di Google Maps :-)

Nella voce di Wikipedia potete trovare esempi di figure con numero di Heesch da 1 a 6, il massimo che si è scoperto finora. Qui mostro solo il più piccolo polimino con numero di Heesch 2, che può far capire come il problema non sia affatto facile da risolvere: chi si immaginava che una figura così arrivasse ad avere due corone?

Il più piccolo polimino con numero di Heesch 2

figura di Cmglee, https://en.wikipedia.org/wiki/File:Heesch_number_2_minimal_polyomino.svg