|
Tratto da: David Wells - NUMERI MEMORABILI - Zanichelli - pag. 138 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:
STOP, altrimenti ripeterebbe la sequenza
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. SoluzioneSe N è pari diventa N Div 2, se N è dispari diventa 3*N+1 e questo ripetuto mentre N <> 1. while (N <> 1) do begin if(Odd(N)) then N:=3*N+1 else N:=N Div 2; write(N:10) end; ApprofondimentoAlcuni numeri percorrono una "distanza" molto grande prima di giungere a 1, altri raggiungono valori molto "alti" prima di precipitare verso 1. La sequenza
ha distanza = 12 e altezza = 52 La sequenza
ha distanza = 67 e altezza =9232! |
|