[Python-es] Duda con función M.c.d.

Carlos Agulló Calvo cm.agullo en gmail.com
Mar Dic 18 18:26:39 CET 2012


lo saqué de aquí:
http://www.s-anand.net/euler.html
del problema 5.

yo he cambiado gcd por Mcd únicamente.

El 18 de diciembre de 2012 18:03, gerardo Juarez <
gerardojuarez en buyteknet.info> escribió:

> 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(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<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 <
>> rapto en arrakis.es <mailto:rapto en arrakis.es>> escribió:
>>
>>
>>     Recomiendo http://www.pythontutor.com/**visualize.html#<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
>>>     <cm.agullo en gmail.com <mailto:cm.agullo en gmail.com>> 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
>>>         <cm.agullo en gmail.com <mailto:cm.agullo en gmail.com>> 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 <ailurus.fulgens en hotmail.com
>>>             <mailto:ailurus.fulgens@**hotmail.com<ailurus.fulgens en hotmail.com>>>
>>> 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: cm.agullo en gmail.com <mailto:cm.agullo en gmail.com>
>>>
>>>                 Date: Mon, 17 Dec 2012 18:13:00 +0100
>>>                 To: python-es en python.org <mailto:python-es en python.org>
>>>
>>>                 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 Python-es en python.org
>>>                 <mailto:Python-es en python.org>
>>>
>>>                 http://mail.python.org/**mailman/listinfo/python-es<http://mail.python.org/mailman/listinfo/python-es>
>>>                 FAQ: http://python-es-faq.wikidot.**com/<http://python-es-faq.wikidot.com/>
>>>
>>>                 ______________________________**_________________
>>>                 Python-es mailing list
>>>                 Python-es en python.org <mailto:Python-es en python.org>
>>>
>>>                 http://mail.python.org/**mailman/listinfo/python-es<http://mail.python.org/mailman/listinfo/python-es>
>>>                 FAQ: http://python-es-faq.wikidot.**com/<http://python-es-faq.wikidot.com/>
>>>
>>>
>>>
>>>
>>>         ______________________________**_________________
>>>         Python-es mailing list
>>>         Python-es en python.org <mailto:Python-es en python.org>
>>>
>>>         http://mail.python.org/**mailman/listinfo/python-es<http://mail.python.org/mailman/listinfo/python-es>
>>>         FAQ: http://python-es-faq.wikidot.**com/<http://python-es-faq.wikidot.com/>
>>>
>>>
>>>
>>>
>>>     ______________________________**_________________
>>>     Python-es mailing list
>>>     Python-es en python.org <mailto:Python-es en python.org>
>>>
>>>     http://mail.python.org/**mailman/listinfo/python-es<http://mail.python.org/mailman/listinfo/python-es>
>>>     FAQ: http://python-es-faq.wikidot.**com/<http://python-es-faq.wikidot.com/>
>>>
>>>
>>
>>
>>     ______________________________**_________________
>>     Python-es mailing list
>>     Python-es en python.org <mailto:Python-es en python.org>
>>
>>     http://mail.python.org/**mailman/listinfo/python-es<http://mail.python.org/mailman/listinfo/python-es>
>>     FAQ: http://python-es-faq.wikidot.**com/<http://python-es-faq.wikidot.com/>
>>
>>
>> ------------------------------**------------------------------**
>> ------------
>>
>>
>> ______________________________**_________________
>> Python-es mailing list
>> Python-es en python.org
>> http://mail.python.org/**mailman/listinfo/python-es<http://mail.python.org/mailman/listinfo/python-es>
>> FAQ: http://python-es-faq.wikidot.**com/<http://python-es-faq.wikidot.com/>
>>
>>
>
> ______________________________**_________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/**mailman/listinfo/python-es<http://mail.python.org/mailman/listinfo/python-es>
> FAQ: http://python-es-faq.wikidot.**com/<http://python-es-faq.wikidot.com/>
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20121218/2d91ab8e/attachment.html>


Más información sobre la lista de distribución Python-es