[Python] Digest di Python, Volume 63, Numero 2

Daniele Varrazzo piro a develer.com
Lun 2 Maggio 2011 19:12:11 CEST


On Mon, 02 May 2011 13:22:53 +0200, Francesco Bonanno
<info a francescobonanno.com> wrote:

> Ripongo la questione: nello script postato precedentemente c'è la mia 
> personale interpretazione di quello che credo sia l'algoritmo di 
> Collatz. Secondo Voi è corretta oppure aggiungereste/cambiereste
qualcosa?
> Faccio notare che per valori interi  = a 8 o 18, viene sollevata una 
> eccezione (divisione per zero).

L'algoritmo sembra sia giusto. C'è una divisione per zero perché tu chiedi
di dividere per zero. Non fa parte dell'algoritmo, è solo il report finale.
Semplicemente non farlo! :D

Essere corretto e/o cambiare qualcosa dipende da cosa tu voglia farci. I
numeri sono giusti, quello è ok. Per me per esempio ê superfluo calcolare
h, npari, ndispari nell'algoritmo: puoi contare questi valori sulla lista
finale. Enrico ha suggerito che i generatori sarebbero utili, e ti ha fatto
notare che il tuo modo di leggere l'input è poco sicuro (a dir poco). Io
tendo a fare i calcoli in una funzione e gestire I/O altrove. Se lo scopo
di tutto era risolvere un problema del progetto Eulero, e se l'hai risolto,
penso sia finita così. Il tuo programma non è modulare e ha un sacco di
cose che un sacco di persone avrebbero fatto in un sacco di modi diversi...
ma se non si conoscono i requisiti non si sa esattamente cosa "migliorare".

-- 
Daniele Varrazzo - Develer S.r.l. 
http://www.develer.com


Maggiori informazioni sulla lista Python