diumenge, 16 de desembre de 2012

Python i els exercicis de Mates

Python és un llenguatge de programació d'alt nivell. El codi escrit amb Python és de fàcil lectura, això forma part de la filosofia del llenguatge. És per això que recomano aquest llenguatge a qui vulgui iniciar-se al món de la programació d'una manera autodidàcta.

Nou i mig 8 és un llibre de l'editorial Teide. Els problemes d'aquest llibre són molt gràfics i divertits.

Resoldre els problemes del Nou i mig amb Python és encara més divertit.

Aquest problema apareix a la pàgina 11 del llibre. Ens donen una figura en forma d'estrella, cada línia de la figura conté tres caselles, una al mig i una a cada extrem. Cal repartir els dígits de l'1 al 9 dins d'aquestes caselles de manera que els dígits de totes les línies sumin el mateix.

És a dir que A + B + C ha de sumar el mateix que C + D + E i així per totes les línies.

Per solucionar aquest problema amb python utilitzo la llibreria itertools, allà hi ha una funció que ella sola em fabricarà totes les possibles permutacions dels digits de l'1 al 9.

Provarem cada permutació per comprovar si cumpleix els requeriments de l'enunciat.

L'operador per a comparar és == per això apareix aquest operador dins la sentència 'if'.


from itertools import permutations

digits = ( 1, 2, 3, 4, 5, 6, 7, 8, 9)

for (A, B, C, D, E, F, G, H, I ) in permutations( digits ):
    if ( A + B + C == 
         C + D + E ==
         E + F + G ==
         G + B + H ==
         H + D + I ):
        print 'Solucio: ', A, B, C, D, E, F, G, H, I

El resultat:


Solucio:  1 5 9 2 4 8 3 7 6
Solucio:  1 5 9 4 2 6 7 3 8
Solucio:  1 6 8 3 4 9 2 7 5
Solucio:  1 6 8 4 ...



Altres Exercicis





Cap comentari:

Publica un comentari a l'entrada