Algoritmo di Siracusa

Successione di Collatz

David Wells
NUMERI MEMORABILI
Zanichelli
L'algoritmo di Siracusa inizia da un numero qualsiasi e poi lo divide per 2 se è pari, mentre invece lo moltiplica per 3 e vi somma 1 se è dispari.
Il procedimento viene ripetuto.

Ecco la sequenza che comincia da 17:
17 -> 17*3+1=52 -> 52/2=26 -> 26/2=13 -> 13*3+1=40 -> 40/2=20 -> 20/2=10 -> 10/2=5 -> 5*3+1=16 -> 16/2=8 -> 8/2=4 -> 4/2=2 -> 2/2=1
STOP, altrimenti ripeterebbe la sequenza
4 -> 2 -> 1 -> 4 -> 2 -> 1 -> ...
all'infinito.

Tutti i numeri interi inferiori a 1.000.000.000 sono stati sottoposti a verifica e per tutti alla fine la sequenza termina con 4-2-1.
Non è noto se tutti i numeri, alla fine, terminano con 1.

Pseudocodice
Se N è pari diventa N/2, se N è dispari diventa 3*N+1 e questo ripetuto mentre N <> 1.

MENTRE(n <> 1)
   INIZIO
      SE(DISPARI(n)) ALLORA
         n = 3*n+1
      ALTRIMENTI
         n = n/2
      SCRIVI(n)
   FINE


Applicazione JavaScript




<JavaScript>

Approfondimento

Alcuni numeri percorrono una distanza molto grande prima di giungere a 1, altri raggiungono valori molto alti prima di precipitare verso 1.

image
Esempio 1
La sequenza
17 -> 52 -> 26 -> 13 -> 40 -> 20 -> 10 -> 5 -> 16 -> 8 -> 4 -> 2 -> 1
ha
 
image
Esempio 2
La sequenza
167 -> ... -> 1
ha
There are no comments on this page.
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki