La verdad es que esa línea debería haber estado comentada. Si una línea de código suscita tantas dudas y comentarios, quiere decir que su función no está para nada clara. Inclusive su nombre no está claro: es mínimo común denominador? Quién escribió eso?

saludos
Gerardo

Elio Rincón wrote:
http://www.pythontutor.com/visualize.html#code=def+Mcd(a,b)%3A+return+b+and+Mcd(b,+a+%25+b)+or+a%0A%0AMcd(36,+48)&mode=display&cumulative=false&py=2&curInstr=6 <http://www.pythontutor.com/visualize.html#code=def+Mcd%28a,b%29%3A+return+b+and+Mcd%28b,+a+%25+b%29+or+a%0A%0AMcd%2836,+48%29&mode=display&cumulative=false&py=2&curInstr=6>
Gracias por el dato, Muy bueno.


El 18 de diciembre de 2012 07:15, Marcos Sánchez Provencio <[email protected] <mailto:[email protected]>> escribió:

    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

    A B Condición MCD(B, A%B)
    36 48 se cumple MCD(48, 36%48)
    48 (36%48)=36 se cumple MCD(36, 48%36)
    36 (48%36)=12 se cumple MCD(12, 36%12)
    12 (36%12)=0 no se cumple retorna 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] <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