Recomiendo http://www.pythontutor.com/visualize.html# para este tipo de enjuagues

El 18/12/12 12:31, Elio Rincón escribió:
Tienes que llevar la ejecución del programa paso a paso en cada iteración, crear un modelo o algo que te permita ver la logica y ejecución de una forma en la que puedas entenderlo mejor.

Aquí te dejo un ejemplo:

MCD(36, 48) > def Mcd(a,b): return b and Mcd(b, a % b) or a

ABCondiciónMCD(B, A%B)
3648se cumpleMCD(48, 36%48)
48(36%48)=36se cumpleMCD(36, 48%36)
36(48%36)=12se cumpleMCD(12, 36%12)
12(36%12)=0no se cumpleretorna A=12




El 18 de diciembre de 2012 05:51, Carlos Agulló Calvo <[email protected] <mailto:[email protected]>> escribió:

    Acabo de ver que es % no / así que sería 12, perdonad.
    pero si intento hacer MCD(36,48) sí que no lo veo



    El 18 de diciembre de 2012 11:19, Carlos Agulló Calvo
    <[email protected] <mailto:[email protected]>> escribió:

        Disculpad, pero sigo sin entenderlo.
        Si pongo MCD(48,36) sería:
        36 and MCD(36,1) or 48 que como MCD(36,1) es distinto de cero
        la respuesta sería MCD(36,1)
        Entonces pasaríamos a evaluar MCD(36,1) que sería:
        1 and MCD(1,36) or 36 si MCD fuera cero, la respuesta sería
        36, si no sería MCD(1,36)
        Ahora, MCD (1,36) sería:
        36 and MCD(36,0) or 1

        Según mi razonamiento nunca llegaría a 12, que es la solución
        que debería dar, por lo que mi razonamiento falla, pero no veo
        dónde.

        Gracias




        El 18 de diciembre de 2012 03:09, xiao xiong mao panda rojo
        <[email protected]
        <mailto:[email protected]>> escribió:


            wau no sabia que se podía usar AND y OR de ese modo
            dicen k iterar es humano y la recursividad divina
            nunca entendí bien como usarla
            creo k debo comenzar XD
            
------------------------------------------------------------------------
            From: [email protected] <mailto:[email protected]>
            Date: Mon, 17 Dec 2012 18:13:00 +0100
            To: [email protected] <mailto:[email protected]>
            Subject: [Python-es] Duda con función M.c.d.


            Buenas tardes,

            practicando un poco python en la página de projecteuler he
            visto la siguiente función:

            def Mcd(a,b): return b and Mcd(b, a % b) or a

            pero no entiendo cómo funciona, ¿alguien podría explicármelo?
            Muchas gracias por adelantado

            _______________________________________________ Python-es
            mailing list [email protected]
            <mailto:[email protected]>
            http://mail.python.org/mailman/listinfo/python-es FAQ:
            http://python-es-faq.wikidot.com/

            _______________________________________________
            Python-es mailing list
            [email protected] <mailto:[email protected]>
            http://mail.python.org/mailman/listinfo/python-es
            FAQ: http://python-es-faq.wikidot.com/




    _______________________________________________
    Python-es mailing list
    [email protected] <mailto:[email protected]>
    http://mail.python.org/mailman/listinfo/python-es
    FAQ: http://python-es-faq.wikidot.com/




_______________________________________________
Python-es mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/

_______________________________________________
Python-es mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/

Responder a