Solving the Einstein's Riddle in Python
moma
moma at example.net
Mon May 24 09:13:00 EDT 2004
Juha Haataja wrote:
> I have been learning Python since April, and would like a
> few comments from the experts on list processing.
>
> I managed to implement a Python code for solving the
> so-called Einstein's Riddle, see e.g.:
>
> http://www.manbottle.com/trivia/Einstein_s_Riddle.htm
>
> I solved the problem in two ways, first the straightforward
> way by using lists and list comprehensions. Then I
> refactored to code using the Python object model by
> deriving new datatypes from the Python list object. The
> two versions are available here:
>
> http://www.csc.fi/oppaat/f95/python/talot.py
> http://www.csc.fi/oppaat/f95/python/talot_oo.py
>
> I apologize for not commenting the code.
>
> (I localized the data, so the nationalities are now mainly
> Nordic. The input data of the first version is in Finnish.
> Also, I don't like smoking, so I changed that part of the
> data to different types of music.)
>
> Here is the final output of the OO version:
>
> Choices: 1
> 1 2 3 4 5
> yellow blue red green white
> norway denmark finland germany sweden
> water tea milk coffee beer
> blues opera rock pop metal
> cat horse bird fish dog
>
> Thus the German owns the fish in house 4.
>
> The OO version is somewhat slower (1.6 seconds vs. 1.2), but
> easier to understand.
>
> I'm wondering why the code is 50% slower. In principle, the
> only difference should be that in the OO versio I'm using an
> __init__ method, and in the original version I was creating
> lists using [].
>
> Please feel free to comment on the programming style.
> I'm just starting to get to know the language, and my
> background in Fortran 90/95 may be a handicap in learning
> Python.
>
> Thanks,
>
> - JuHa
Not bad,
Aika hyvä !
norja = kala.
More information about the Python-list
mailing list