Seguici su Telegram, ne vale la pena ❤️ ➡ @trovalost
Vai al contenuto

Congettura di Goldbach nella pratica (e in Python)

La congettura di Goldbach è uno dei più antichi e noti problemi irrisolti della teoria dei numeri e di tutta la matematica. Essa afferma che ogni numero naturale pari maggiore di 2 è la somma di due numeri primi.

A cosa serve sapere queste cose nella vita di ogni giorno?

La congettura di Goldbach non presenta un’applicazione pratica diretta, in quanto è principalmente un problema teorico della matematica. Tuttavia, la sua importanza teorica è fuori discussione, in quanto fornisce una sfida interessante per i matematici e ha portato allo sviluppo di nuove tecniche e teorie nella teoria dei numeri. Inoltre, la ricerca sulla congettura di Goldbach e sui problemi correlati può portare a nuove scoperte in altri settori della matematica e delle scienze, come ad esempio la crittografia e la teoria dei grafi.

Una eventuale dimostrazione della congettura di Goldbach potrebbe fornire una migliore comprensione della distribuzione dei numeri primi e delle proprietà delle somme di numeri primi, che potrebbero trovare applicazioni in altri campi. Infine, la ricerca sulla congettura di Goldbach può anche essere un’importante fonte di ispirazione per i giovani studenti di matematica, incoraggiando la loro curiosità e la loro passione per la scoperta di nuovi risultati e teorie nella matematica.

Che cos’è la congettura di Goldbach

La congettura di Goldbach è un famoso problema matematico formulato nel 1742 dal matematico tedesco Christian Goldbach. La congettura afferma che ogni numero pari maggiore di 2 può essere espresso come somma di due numeri primi.

Ad esempio, il numero 4 può essere espresso come 2+2, il numero 6 può essere espresso come 3+3 o come 5+1, il numero 8 come 3+5, il numero 10 come 5+5 o come 7+3, e così via. Nonostante la congettura sia stata verificata empiricamente per tutti i numeri pari fino a circa 4 × 10 alla 18 (4e+18), non è stata ancora dimostrata in modo matematico. Molti matematici hanno lavorato per cercare di dimostrare la congettura di Goldbach, ma finora nessuno è riuscito a compiere l’impresa.

La congettura di Goldbach è ancora oggi considerata uno dei più grandi problemi aperti della teoria dei numeri, e la sua dimostrazione completa sarebbe un importante contributo alla matematica moderna (leggi qui per approfondimenti).

Spiegazione grafica della congettura di Goldbach

Abbiamo detto che la congettura afferma che ogni numero può essere espresso come:

n = p + q

Spesso si ricorre a questo grafico per spiegare la congettura in modo visuale: varie bande di puntini rossi, nello specifico, dove è bene ricordare che le ascisse (asse orizzontale) del numero p e le ordinate il numero q (asse verticale). Considerando solo i numeri primi, la forma del grafico assume la disposizione di una nuvola di punti suggestiva e caratterizzata da bande più o meno regolari.

goldbach
Immagine tratta da https://www.cogsci.ed.ac.uk/~richard/goldbach.html © Richard Tobin

Congettura di Goldbach in linguaggio Python

Se ad esempio consideriamo il numero n = 20 possiamo esprimerlo effettivamente come la somma di 13 e 7, così come il numero n = 100 = 41+59. Anche il numero 8 si esprime come somma di 3 e 5 e potremmo continuare “all’infinito” (più precisamente, è stato provato che la congettura è valida per qualsiasi numero minore di 4 × 1018.

Proviamo ad immaginare una possibile implementazione molto semplice di un algoritmo che prenda un numero intero n in ingresso e restituisca la somma dei numeri primi x e y (eventualmente anche uguali, ndr) in output, tali che n = x + y.

Per provare che x e y sono primi usiamo un algoritmo molto semplice:

 def primo(n, i=2):
    if n == i:
        return True
    elif n % i == 0:
        return False
    return primo(n, i + 1)

Per “provare” limitatamente la congettura in questione possiamo scrivere il seguente algoritmo, che prende n in ingresso, inizializza x e y a 1, e finchè x e y sommati tra loro non fanno n estrae casualmente due numeri primi dal setaccio (non escludiamo così facendo di prendere due volte lo stesso numero).

 def goldbach(n):
  x = 1 
  y = 1 
  primi = [j for j in range(2,n-1) if primo(j)]
  while ( x+y!=n ):
    x = random.choice(primi)
    y = random.choice(primi)

  return [x,y] 

👇 Da non perdere 👇



Questo sito esiste da 4461 giorni (12 anni), e contiene ad oggi 6563 articoli (circa 5.250.400 parole in tutto) e 12 servizi online gratuiti. – Leggi un altro articolo a caso
Non ha ancora votato nessuno.

Ti sembra utile o interessante? Vota e fammelo sapere.

Questo sito contribuisce alla audience di sè stesso.
Il nostro network informativo: Lipercubo.it - Pagare.online - Trovalost.it.