|
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! |
|