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
⁡≤ ∑ 𝑎
𝑎
𝑛
𝑛
𝑛