La sequenza 3n + 1

Questa sequenza ha affascinato i matematici per molti anni. La regola per creare la sequenza è la seguente:

La seguente funzione Python implemente questo algoritmo.




(ch07_indef1)

La domanda interessante riguarda la possibilità di dimostrare che questa sequenza termina per tutti i valori di n. Fino adesso, nessuno è stato in grado di dimostrarlo o dimostrare il contrario!

Con il computer siamo stati in grado di dimostrare che la sequenza converge a 1 fino a valori molto alti, provandoli uno per uno. Ma potrebbe esistere un numero gigantesco per cui ancora non abbiamo fatto le prove per cui questo non vale.

E’ possibile notare che se non ci fermiamo quando raggiungiamo 1, possiamo ottenere un ciclo: 1, 4, 2, 1, 4, 2, 1, 4, and so on. Potrebbe esistere un numero per cui avviene un ciclo prima che si raggiunga 1.

Scegliere tra for e while

E’ preferibile usare un ciclo for se conosciamo il massimo numero di volte che abbiamo bisogno di eseguirlo. Per esempio, se stiamo attraversando i valori di una lista ottenuta con range.

Invece, se dobbiamo ripetere il corpo fino a che incontriamo una certa condizione, come abbiamo visto nel caso del problema 3n + 1, avremo bisogno di un ciclo while.

Next Section - Il Metodo di Newton