Ipotesi di Goldbach (di Cristiano Armellini [email protected]) La seguente trattazione non è la vera dimostrazione della congettura (la congettura non è stata ancora dimostrata) ma solo il tentativo di fare alcuni ragionamenti intorno alla congettura stessa. LA CONGETTURA: Ogni numero pari maggiore di due è somma al più di due numeri primi non necessariamente diversi tra loro Primo tentativo di dimostrazione Sia data la funzione Phi di Eulero (q ) che mi dà il numero di primi con q minori di q. E’ facile provare che a) (q ) è sempre pari qualunque sia q b) (q ) q 1 sse q è primo c) 𝜑(𝑎𝑏) = 𝜑(𝑎)𝜑(𝑏) se MCD(a,b)=1 d) 𝜑(𝑝𝑛 ) = 𝑝𝑛 − 𝑝𝑛−1 , p primo PRIMO TENTATIVO DI DIMOSTRAZIONE (per induzione) 1) assumiamo che 2a = p+q vera, p, q primi 2) 2a ( p1 ) (q1 ) un numero pari è sempre la somma di due numeri pari ( p1 ) p1 1 sse p1 è primo; 3) 2a p1 1 q1 1 4) 2(a 1) p1 q1 vera (q1 ) q1 1 sse q1 è primo. Allora 5) per induzione 2a = p+q per ogni a (ad ogni a cambieranno p, q) SECONDO TENTATIVO DI DIMOSTRAZIONE (dimostrazione diretta) Sia n = pq con p, q primi di versi da 2. Possiamo anche considerare n = 2pq perché (q ) è sempre pari e ( pq) ( p) (q) perché MCD(p,q) = 1 ( pq) ( p) (q) ( p 1)( q 1) pq ( p q) 1 (2 pq) ( pq) (n) 2k pq ( p q) 1 (qui si può scrivere 4K al posto di 2k perché prodotto di due numeri pari cioè è il prodotto di (p-1)(q-1)). Nel caso particolare che 𝑛 = 𝑝𝑞 = 𝑝 ∗ 𝑝 = 𝑝2 = 2𝑘 per un certo k. In generale possiamo dire che 𝜑(𝑛) = 2𝑘 quando n è un numero primo o è un quadrato di un numero primo, mentre 𝜑(𝑛) = 4𝑘 in tutti gli altri casi pq+1-2k = p+q e dato che pq+1 è pari perché pq è dispari pq+1-2k è pari perché differenza di numeri pari, quindi pq+1-2k (o pq+1-4K) è un generico numero pari che è somma di due primi p, e q. In particolare pq+1-2k o (pq+1-4K) mi dà un insieme di numeri pari minori o uguali a pq+1 ma dato che p,q sono primi e i primi sono infiniti pq+1-2k (pq+1-4K) al variare di k mi dà l’insieme di tutti i numeri pari. Ovvero pq+1-2k mi dà sempre tutti i numeri pari minori o uguali a pq+1 mentre pq+1-4K mi dà esattamente la metà ma basta porre K =k/2 o variare p, q per raggiungere i numeri pari mancanti. Tutto questo ci indica una strada per costruire numeri primi: risolviamo il sistema (come abbiamo detto prima 2k si può sostituire con 4K) pq+1-2k = m p+q = m dove m è un generico numero pari e p, q sono le incognite mentre k è un parametro intero. Svolgendo i calcoli e le opportune sostituzioni abbiamo q 2 mq 2k m 1 0, p m q m m 2 4m 4 8k 2 2 m 4m 4 k 8 q a questo punto dovremmo essere in grado di sviluppare un applicativo tale che per ogni numero pari m mi generi almeno due numeri p, q primi. Ciclando per tutti i pari avremo tutti i numeri primi . In realtà ci si rende ben presto conto che con questo sistema si ottengono non solo le coppie di primi ma anche le coppie di dispari la cui somma è m (si veda più in basso l'impostazione geometrica del problema) ecco l'applicativo in C++: #include <stdio.h> #include <iostream.h> #include <math.h> int main(int argc, char *argv[]) { long double p, q, m, k; long double v, w; int i, temp; cout << "inserisci un numero pari "; cin >> m; k = int((pow(m,2)-4*m+4)/8); do { q = (m + sqrt(pow(m,2)-4*m+4-8*k))/2; p = (m - sqrt(pow(m,2)-4*m+4-8*k))/2; k = k-1; } while ((q != int(q)) || (p != int(p))) ; v = m-q; w = m-p; cout << "fattore " << p << "\n"; cout << "fattore " << q << "\n"; cout << "fattore " << v << "\n"; cout << "fattore " << w << "\n"; cin >> "inserisci numero " >> temp; return 0; } Si possono costruire altri programmi che sono varianti anche migliori di questa (le coppie dei numeri trovate non sono necessariamente prime). In alternativa è sempre possibile partire da un numero pari diciamo 2m e poi sottrarre 1, 2, 5, 7,...tutti i dispari e controllare poi le coppie così ottenute. Si potrebbe usare l'equazione di secondo grado x 2 sx p 0 x1, 2 s s2 4 p s2 con p 2 4 quindi possiamo scrivere un programma che accetta S in ingresso come numero pari e in output ci dà coppie x, y con x+y = s #include <stdio.h> #include <math.h> #include <iostream.h> int main(int argc, char *argv[]) { double x, y, a; long s, p; cout << "inserisci un numero pari "; cin >> s; for(p=int(pow(s,2)/4); p>0; p--) { x = (s + sqrt(pow(s,2)-4*p))/2; y = (s - sqrt(pow(s,2)-4*p))/2; p = p-1; if (x == int(x) && y == int(y)) { cout <<"------------------------" << "\n"; cout << " numero: " << x << "\n"; cout << " numero: " << y << "\n"; cout <<"------------------------" << "\n"; } } TERZO TENTATIVO DI DIMOSTRAZIONE (dimostrazione per assurdo) consideriamo l'approccio della dimostrazione per assurdo. supponiamo cioè di negare la tesi ovvero che esiste un numero pari che non può essere somma di due numeri primi. Sia allora 2a il più piccolo numero pari che non può essere scritto come 2a = p+q con p, q primi. Dunque 2a-2 è pari e può essere scritto come 2a-2 = p+q con p, q primi, allora 2a = 2+p+q caso 1) 2+p è primo con p primo allora arriviamo all'assurdo 2a = P + q con P= 2+p P, q primi e il teorema è dimostrato caso 2) 2+q + primo con q primo allora arriviamo all'assurdo 2a = p + Q con Q = 2 +q con p, Q primi e il teorema è dimostrato caso 3) 2+q non è primo né 2+p, allora si potrebbe cambiare la coppia p, q (es 10 = 7+3 = 5+5) e vedere se si verificano i casi 1) 2). Qui il problema è più complesso perché si lega ad un'altre ben nota congettura che vuole che i numeri primi si distribuiscano più facilmente nella forma p, p+2 con p primo. Nel sottocaso che p=q abbiamo che 2a = 2+2p quindi 2a = 1+(2p+1). Nota: non dobbiamo provare che la somma di due primi è un pari (questo è banale perché due primi sono sempre due numeri dispari altrimenti sarebbero divisibili per 2 e la somma di due dispari è sempre un numero pari), infatti p+q = 2b sempre (partendo da p e q noti, 2a = 2p' +1 + 2q' +1 per opportuni p', q' interi ) QUARTO TENTATIVO DI DIMOSTRAZIONE Consideriamo il numero pari 2*a . Per il teorema della decomposizione unica in fattori sappiamo che tale numero si può sempre scrivere come una somma (non necessariamente unica) di numeri primi e che questa somma deve essere costituita da un numero pari di addendi (altrimenti il risultato sarebbe dispari). Esempio: 30 = 3*10 = 3+3+3+3+3+3+3+3+3+3 = 5*6 = 5+5+5+5+5+5. Supponiamo che 2*a = p+q+r+s (con p, q, r, s numeri primi). Abbiamo preso 4 numeri primi ma il ragionamento sarebbe stato ugualmente valido per 6, 8, 10 numeri primi. Dunque 2*a –(r+s) = p+q ma r+s = 2b per un certo b quindi 2(a-b) = p+q. Fissato a tramite la decomposizione unica in fattori primi mi determino una classe finita di possibili valori di b e al variare di a 2(a-b) mi determinano l’insieme dei numeri pari. Quindi ho provato che il generico numero pari 2(a-b) lo posso sempre scrivere come somma di due primi p, q. Nell’ esempio di prima 30 = 5+5+5+5+5+5 => 30 – 5+5+5+5 = 5+5. => 10 = 5+5; 30 –3-3-3-3-3-3-3-3 = 3+3 => 6 = 3+3 Osservazioni: - non è vero che ogni numeri pari aumentato di una unità è un numero primo ma è sempre vero che un numero primo diminuito di una unità è un numero pari, quindi esistono infiniti numeri pari (non tutti), che aumentati di una unità danno un numero primo -un numero pari è sempre la somma (o differenza) di due numeri dispari oppure è la somma di due pari; l'insieme dei numeri dispari comprende l'insieme dei numeri primi - l'unico numero primo pari è il 2 (è un primo un po' speciale) - possiamo considerare 1 un numero primo (è un primo un po' particolare) Impostazione geometrica del problema Consideriamo un numeri pari e i un piano cartesiano rappresentiamo tale numero formando con le ascisse e le ordinate un quadrato. Consideriamo la diagonale del quadrato: nella figura le x sono nella diagonale le caselle gialle ottenute dall'intersezione tra i numeri primi delle ascisse (in giallo) e le ordinate (in giallo) minori del numero pari dato. Questo ci suggerisce un metodo iterativo per costruire la tavola dei numeri primi perché a partire dai primi numeri primi diagonale dopo diagonale si trovano i primi successivi. Vediamo meglio questo concetto. 6 5 Coppia primi 4 x Coppia primi 3 2 x 1 Coppia primi 1 2 3 4 5 6 a) prendiamo in considerazione tutte le coppie i, j tali che i +j = 2a per un certo a fissato b) prendiamo solo in considerazione quelle coppie tali che MCD (i,j) = 1 e la coppia speciale i=j c) escludiamo le coppie che contengono l'unità.... le rimanenti coppie sono coppie di primi ? No in generale ma se procediamo in modo ricorsivo a partire dal primo numero pari e per ogni pari con questo metodo determiniamo i primi numeri primi minori di quel numero pari nelle successive diagonali possiamo escludere quei casi in cui mcd(i,j)= 1 i+j = 2a ma uno dei due (i o j) non è primo (ovvero per ogni diagonale calcoliamo i primi e ne teniamo in considerazione per le diagonali successive - un po' come il crivello di Eratostene.) d) con questo metodo costruttivo iterattivo possiamo dire che nella diagonale c'è sempre qualche coppia di primi ? In realtà nella diagonale troviamo tutte le possibili coppie i, j tali che i +j = 2a. Le coppie devono essere o coppie di pari o coppie di dispari. Dobbiamo provare che tra le coppie di dispari c'è almeno una coppia di primi. 10 9 no 8 x 7 Primi 6 x 5 Primi 4 x 3 Primi 2 x 1 no 1 2 3 4 5 6 7 la diagonale è sempre simmetrica e questo ci permette di procedere più veloci visualizzazione multipla 8 9 10 10 9 no 8 7 x primi 6 5 x Primi 4 3 x primi x Primi 2 1 Primi x primi Primi Primi 1 Primi primi Primi x primi 2 x 3 x primi 4 x Primi 5 6 7 no 8 9 10 Un’indagine statistica nell’ipotesi di Goldbach Supponiamo di considerare l’insieme [0, 2a] ove a è un qualunque numero intero. Il numero di numeri primi che è contenuto in questo intervallo è approssimativamente (per il teorema dei numeri primi) pari ad: 2𝑎 𝑛 = 𝑖𝑛𝑡 ( ) log 2𝑎 Oppure 2𝑎 𝑛 = 𝑖𝑛𝑡 (∫ 2 𝑑𝑦 ) log 𝑦 Ove int(x) è la parte intera di x. Il numero di possibili combinazioni di due primi contenuti in questo intervallo è uguale a 𝐶𝑛,2 = 𝑛! (𝑛 2! − 2)! Possiamo dunque calcolare il rapporto 𝑘= 𝐶𝑛,2 𝑎 Ovvero il dà in via approssimativa il numero di coppie di primi che si sono per ogni numero pari compreso nell’intervallo considerato. Nella nostra formula dovremmo considerare che il primo numero pari non rientra nell’ipotedi di Golbach dal momento che 2 = 1+1 (quindi sostituire a con a-1), tuttavia la formula anche in questo caso si comporta bene e approssima i valori reali con estrema precisione, precisione che aumento ma mano che si considerano valori di a grandi. Possiamo agevolare il calcolo utilizzando il software Mathematica: a =10 b = Floor[2a/Log[2a]] n = b!/(2(b-2)!) k= n/(a) N[k] Da tutta una serie di prove il rapporto k risulta essere sempre crescente e questo prova che ma mano che consideriamo numeri pari sempre più grandi aumenta la probabilità di trovare almeno due primi la cui somma dia proprio quel numero pari. Solo per citare alcuni esempi: a = 5, k = 1,2 (usando la formula trovata prima) mentre il valore corretto è k = 5 (combinazioni)/4 (numeri)= 1,25 4 = 2+2 6 = 3+3 8 = 5+3 10 = 5+5+, 7+3 5 combinazioni per 4 numeri pari Nel caso a = 10 dobbiamo aggiungere 12 = 7+5 14 = 7+7 , 11+3 18 = 11+7, 13+5 20 = 13+7, 17 +3 In questo caso k = 1,5 mentre il valore esatto è 1,55 = 14 (combinazioni)/9 (possibilità) Metodi di verifica della congettura di Goldbach Di seguito due metodi molti semplici per la verifica dell’ipotesi di Goldbach (abbiamo preso il numero pari 20 ma potevamo considerare qualunque altro numeri pari) N 20 20 20 20 N/2+1 11 12 13 14 N/2-1 9 8 7 6 CONTROLLO –GOLD NO NO SI NO 20 20 20 20 20 N 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 15 16 17 18 19 5 4 3 2 1 PASSO 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 NO NO SI NO NO CONTROLLO NO NO NO SI NO NO NO SI NO NO NO MATR SIMMETRICA MATR SIMMETRICA MATR SIMMETRICA MATR SIMMETRICA MATR SIMMETRICA MATR SIMMETRICA MATR SIMMETRICA MATR SIMMETRICA MATR SIMMETRICA Sull’ipotesi di Riemann Sia ∑ 1 −𝑠 = ∑ 𝑛−𝑠 = ∑ 𝑒 ln(𝑛 ) = ∑ 𝑒 −𝑠𝑙𝑛(𝑛) 𝑠 𝑛𝑛 𝑛 𝑛 𝑛 Ora 𝑒𝑥 = ∑ 𝑚 𝑥𝑚 𝑚! Quindi ∑ (−𝑠 ln(𝑛))𝑚 1 −𝑠 ln(𝑛−𝑠 ) −𝑠𝑙𝑛(𝑛) = ∑ 𝑛 = ∑ 𝑒 = ∑ 𝑒 = ∑(∑ ) = 𝑃(𝑠) 𝑠 𝑚! 𝑛𝑛 𝑛 𝑛 𝑛 𝑛 𝑚 Ove ln (x) è il logaritmo naturale di x Ma P(s) che tipo di polinomio è ? È vero che P(s) = 0 => Re(s) = ½ con s numero complesso 𝑠 = 𝑥 + 𝑖𝑦 = 𝑟(cos 𝜃 + 𝑖 sin 𝜗)? Osservazione (dato che 𝑒 𝑖𝛼 = cos(𝛼) + 𝑖𝑠𝑒𝑛(𝛼) ∑ 𝑒 −𝑠 ln(𝑛) = ∑ 𝑒 −(𝑎+𝑖𝑏) ln(𝑛) = ∑ 𝑒 −𝑎𝑙𝑛(𝑛) cos(𝑏 ln(𝑛)) − 𝑖 ∑ 𝑒 −𝑎 ln(𝑛) 𝑠𝑒𝑛(𝑏 ln(𝑛)) 𝑛 𝑛 𝑛 𝑛 = ∑ 𝑛 cos(𝑏 ln(𝑛)) 𝑠𝑒𝑛(𝑏 ln(𝑛)) −𝑖∑ = 0 + 𝑖0 𝑎 𝑛 𝑛𝑎 𝑛 Ora ho che ∑ 𝑛 ∑ 𝑛 cos(𝑏 ln(𝑛)) 1 ≤ ∑ 𝑎 𝑎 𝑛 𝑛 𝑛 sen(𝑏 ln(𝑛)) 1 ≤ ∑ 𝑎 𝑎 𝑛 𝑛 𝑛