Congettura di Collatz in Python: come funziona


La congettura di Collatz è un famoso problema aperto della matematica, che a prima vista può sembrare semplice ma che si è dimostrato estremamente complesso. In parole povere, il problema chiede se, data una qualunque sequenza di numeri interi positivi, si può sempre arrivare al numero 1 seguendo un preciso algoritmo. La congettura di Collatz rappresenta un affascinante problema aperto della matematica che continua a intrigare i matematici di tutto il mondo. Nonostante non sia stato ancora dimostrato o confutato, la ricerca sulla congettura ha portato a importanti sviluppi nella teoria dei numeri e potrebbe portare a nuove scoperte in futuro.

Algoritmo per la congettura di Collatz

L’algoritmo è il seguente: partendo da un numero intero positivo n, se n è pari si divide per 2, altrimenti si moltiplica per 3 e si aggiunge 1. Si ripete questo processo finché non si arriva al numero 1. In Python:

def collatz(n):
    while n != 1:
        print(n)
        if n % 2 == 0:
            n = n // 2
        else:
            n = 3 * n + 1
    print(n)

collatz(6)

In questo esempio, il codice parte dal numero 6 e applica l’algoritmo della congettura di Collatz finché non si arriva al numero 1. Il risultato stampato dal codice è la seguente sequenza: 6, 3, 10, 5, 16, 8, 4, 2, 1.

Problema della terminazione

Ad oggi non è noto se questo algoritmo funzioni sempre per ogni numero intero positivo, ovvero non sappiamo se esista almeno un numero che non faccia finire l’algoritmo che girerà per sempre. Se esistesse, si invaliderebbe tutta la congettura ma ad oggi non è stato dimostrato, quindi funziona come nel metodo scientifico “fino a prova contraria”. In altre parole, non si sa se qualsiasi sequenza di numeri ottenuta seguendo questo algoritmo arrivi sempre al numero 1, anche se sembrerebbe che per la maggioranza dei numeri fino a 5,48 x 1018 sia esattamente così. La congettura è stata formulata dal matematico tedesco Lothar Collatz nel 1937, e da allora ha attirato l’attenzione di numerosi matematici che hanno tentato di dimostrare o confutare la congettura. Nonostante siano stati fatti progressi significativi, il problema resta aperto.

Perché è importante sapere della dimostrazione questa congettura? Innanzitutto, la congettura di Collatz rappresenta un interessante sfida per i matematici, che cercano di comprendere le proprietà dei numeri interi e le loro connessioni. Inoltre, la risoluzione della congettura potrebbe portare a nuove scoperte e sviluppi nella teoria dei numeri. Per mostrare come funziona la congettura di Collatz in pratica, possiamo scrivere un semplice codice Python che mostra la sequenza di numeri che converge sempre e comunque sul numero 1.

Esempi di sequenze di Collatz

n = 25

25
76
38
19
58
29
88
44
22
11
34
17
52
26
13
40
20
10
5
16
8
4
2
1

n = 666

666
333
1000
500
250
125
376
188
94
47
142
71
214
107
322
161
484
242
121
364
182
91
274
137
412
206
103
310
155
466
233
700
350
175
526
263
790
395
1186
593
1780
890
445
1336
668
334
167
502
251
754
377
1132
566
283
850
425
1276
638
319
958
479
1438
719
2158
1079
3238
1619
4858
2429
7288
3644
1822
911
2734
1367
4102
2051
6154
3077
9232
4616
2308
1154
577
1732
866
433
1300
650
325
976
488
244
122
61
184
92
46
23
70
35
106
53
160
80
40
20
10
5
16
8
4
2
1

n = 1979

1979
5938
2969
8908
4454
2227
6682
3341
10024
5012
2506
1253
3760
1880
940
470
235
706
353
1060
530
265
796
398
199
598
299
898
449
1348
674
337
1012
506
253
760
380
190
95
286
143
430
215
646
323
970
485
1456
728
364
182
91
274
137
412
206
103
310
155
466
233
700
350
175
526
263
790
395
1186
593
1780
890
445
1336
668
334
167
502
251
754
377
1132
566
283
850
425
1276
638
319
958
479
1438
719
2158
1079
3238
1619
4858
2429
7288
3644
1822
911
2734
1367
4102
2051
6154
3077
9232
4616
2308
1154
577
1732
866
433
1300
650
325
976
488
244
122
61
184
92
46
23
70
35
106
53
160
80
40
20
10
5
16
8
4
2
1

👇 Da non perdere 👇



Trovalost esiste da 4551 giorni (12 anni), e contiene ad oggi 4132 articoli (circa 3.305.600 parole in tutto) e 20 servizi online gratuiti. – Leggi un altro articolo a caso
Privacy e termini di servizio / Cookie - Il nostro network è composto da Lipercubo , Pagare.online e Trovalost
Seguici su Telegram, ne vale la pena ❤️ ➡ @trovalost
Questo sito contribuisce alla audience di sè stesso.