[Python] algoritmo di Collatz

Francesco Bonanno info a francescobonanno.com
Sab 30 Apr 2011 23:03:17 CEST


Salve, qualcuno ha voglia di commentare questo tread?
Voglio risolvere l'algoritmo in oggetto con questo script...

N=input("Inserisci in intero positivo ")
A=N
alt=N
h=0
npari=0
ndisp=0
rap=0
sequenza = [A]
while A > 1:
       if A % 2 == 0:
             npari+=1
             A/=2
       else:
             ndisp+=1
             A*=3
             A+=1
       if A>alt:
             alt=A
       h+=1
       sequenza.append (A)
rap=npari/ndisp
print "Sequenza dei numeri",
for i in sequenza:
       print i,"-",
print
print "Massimo", alt
print "numero passi", h
print "numeri pari", npari
print "Numeri dispari",ndisp
print "rapporto" ,float(rap)

...ma non funziona sempre, ad esempio per valori di 8 o 16 ndisp diventa 
zero con le conseguenze del caso.

dove sbaglio?

Franky



Maggiori informazioni sulla lista Python