codingupmyfuture / bootcamplinuxpython

MIT License
131 stars 19 forks source link

Taller 4 (Bucles) - Pregunta 11 #96

Closed edcalderin closed 1 year ago

edcalderin commented 1 year ago

Calcular el mínimo múltiplo junto con los factores.

La salida del algoritmo que imaginé para este ejercicio coincide con los valores retornados para el minimo multiplo de 1 hasta N de la respuesta de control, pero no con los factores.

Ejemplos:

9x8x7x5 = 2520. Con la respuesta de control: 9x8x7x6x5 = 15120.

Para otros valores de n, sucede lo mismo.

Estoy yo errado en el procedimiento?

ChristYela commented 1 year ago

También tengo esa inquietud. con respecto a los factores para que den el valor esperado.

keljozap commented 1 year ago

Hola chicos! les comento que el ejercicio tiene varias formas de resolverse y una de ellas (que tiene que ver con una pregunta matemática) es la correcta para llegar a la totalidad de los factores. Aunque esta condición no afecta el primer valor de la respuesta (el múltiplo más pequeño) si afecta la segunda parte (los factores). Esta bien que no todos somos matemáticos puros pero busquen en internet y les aseguro que van a encontrar la razón del error.

JonathanProf commented 1 year ago

También tengo esa misma inquietud, porque al multiplicar los factores debería obtenerse el mismo resultado del mínimo común múltiplo de los números.

edcalderin commented 1 year ago

Ya pude dar con la solución. No encontré en la web algo relacionado a los factores en la forma en que lo muestran las respuestas de control, solo detecté ciertos patrones al hacer otros cálculos en lápiz y papel, luego lo plasmé a código y con eso superé todas las pruebas del bot. No obstante, no se debería atribuir a ¨factores¨ una interpretación distinta a la que realmente tiene, dentro de este contexto.

keljozap commented 1 year ago

La clave del ejercicio es que dice FACTORES, no dice FACTORES PRIMOS. Es una cáscara. Por eso les dije que era algo matemático. Pero que chévere @edcalderin que encontraste la solución!

edcalderin commented 1 year ago

Asi es @keljozap Muchas gracias!

Elioric commented 1 year ago

Buenas tardes, @keljozap

Como resalta @edcalderin los números entregados en la devolución no dan como resultado el MCM. Sí se toma la definición de factor como un número entero que divide a un número x sin dejar residuo, o como un número a que multiplicado por un número b da como resultado el valor deseado, entonces todos los número de 1 a n son factores. Justamente por esto es el MCM de ese rango de números, porque es divisible por todos los valores evaluados.

Si lo que se desea es dividir el número de manera consecutiva, de forma descendente por el rango de números determinado, la devolución tampoco da como resultado el MCM.

Considero que el ejercicio requiere un poco más de información

lrestrepoteck commented 1 year ago

Hola NO entiendo por que el minimo producto es entre dos numeros y no se cual seria el segundo numero en nuestro caso.

saludos.

Annubis1709 commented 1 year ago

Necesito ayuda. Si los factores no son los del mínimo común multiplo (LCM en inglés) entonces debo calcular los factores de qué?. Quedo atento

keljozap commented 1 year ago

Hola chicos buenos días. @Elioric para responder tu pregunta, te remito al enunciado. image

Nos están pidiendo encontrar el múltiplo más pequeño de los primeros n números. Para responder la pregunta de @lrestrepoteck y de @Annubis1709 el enunciado dice de los primeros N Números, no se indica que sea entre dos números chicos. Esto se hace con un ciclo y es un procedimiento matemático que aunque es similar al que nos enseñaron en la escuela con dos números aquí se nos indica es que si n dado como parámetro es = 9, entonces ustedes deben buscar el múltiplo más pequeño de esos primeros 9 números.

Ahora, para responder a la anotación hecha por @Elioric estás tomando la definición de factor como número que divide..... pero es que un factor puede ser sólo un número, en ninguna parte el ejercicio condiciona que los factores deben ser sólo los números que permiten. El ejercicio tiene dos partes, una hallar los factores, dos, hallar el múltiplo más pequeño. deben abordar el ejercicio desde estos dos ángulos para llegar a ambas respuestas correctas. Nuevamente, les repito busquen en internet, tienen toda la web para buscar como resolver este problema y así como un compañero encontró la respuesta ustedes también pueden.

NOTA 1: ESTE EJERCICIO NO FUE INVENTADO POR NINGUNO DE LOS QUE HACEMOS PARTE DEL CURSO, ES TOMADO DE UN APARTADO MATEMÁTICO, LA RESPUESTA ES CORRECTA Y PARA LLEGAR A ELLA DEBEN ENTENDER EL CONCEPTO MATEMÁTICO.

NOTA2: EL EJERCICIO ESTÁ INDICANDO QUE DEBE ENCONTRARSE EL MÚLTIPLO MÁS PEQUEÑO DE N NÚMEROS, SIENDO N UN PARÁMETRO VARIABLE QUE PUEDE SER 2 (CASO COMÚN DE CUANDO SE ENSEÑÓ EL MCM EN LA ESCUELA) ASÍ COMO PUEDEN SER 5, 9 U 11 NÚMEROS.

NOTA 3: UTILICEN EL INTERNET COMO RECURSO DE INVESTIGACIÓN.

Annubis1709 commented 1 year ago

Lo de calcular el mínimo común múltiplo MCM (LCM en inglés) de los primeros n números está mas que claro para mí, pues como menciona keljozap es un problema matemático común. De hecho en la teoría analítica de los números se suele utilizar el algoritmo euclideano o algoritmo de euclides para calcular de manera eficiente el máximo común divisor (MCD) y a partir de este (MCD) el mínimo común múltiplo, ya que MCD y el Mínimo Común Múltiplo MCM (LCM) de dos números están relacionados entre sí.

a⋅b = MCD(a,b)⋅MCM(a,b) Donde: a y b son los dos números.

De hecho así resolví este punto del taller, sin embargo yo he tenido la duda en el cálculo de la lista de los factores ya que inicialmente creí que eran los factores que constituían al mismo mínimo común multiplo calculado.
De todas maneras yo ya lo tengo resuelto, cumpliendo con todas las condiciones (punto calificado como correcto por el bot), pero para ser sincero la lista de factores lo determiné analizando patrones que descubrí a partir de la respuesta del bot.

keljozap commented 1 year ago

Hola @Annubis1709 eso está muy bien! A veces para llegar a la respuesta debemos valernos de todas las herramientas a nuestra disposición y una de estas en este caso son los resultados del calificador o control. Que bueno que hayas llegado a la respuesta usando una herramienta que puede ser usada y que pocos han utilizado. Efectivamente como indicas este problema hace uso del algoritmo euclidiano. Esta es una de las cosas que podían averiguar realizando un poco de investigación y me parece genial que nos hayas compartido tu método de análisis.

aquirozg commented 1 year ago

Compañero @Annubis1709 espero que estés muy bien. Una compañera y yo hemos estado luchando mucho con este punto desde la semana pasada, y no hemos podido entender cómo llegar a la lista correcta de factores. Te agradeceríamos mucho la explicación que nos puedas brindar. Gracias :) image

Annubis1709 commented 1 year ago

Hola aquirozg Si revisas detalladamente n y el número de factores que tiene la lista, observarás que por ejemplo:

Si n = 13 el número de factores de la lista es 7. Es decir, 7 * 2 - 1 = 13.
si n = 11 el número de factores de la lista es 6. Es decir, 6 * 2 - 1 = 11. 
si n = 9 el número de factores de la lista es 5. Es decir,  5 * 2 - 1 = 9. 
si n = 3 el número de factores de la lista es 2. Es decir,  2 * 2 - 1 = 3. 

Generalizando, Si k es el número de factores entonces tenemos que 2k - 1 = n con lo cual si despejamos k para saber el números de factores que debería tener la lista para un n dado tendríamos que k = (n + 1) / 2 <!DOCTYPE html>

n: | k: -- | -- 13 | 7 11 | 6 9 | 5 3 | 2

En conclución, simplemente calcula k usando (n + 1) / 2, y tendrás la cantidad perfecta de factores para tu lista. ¡Espero que esto te haya ayudado a entenderlo!

aquirozg commented 1 year ago

Muchas gracias @Annubis1709

Mongar28 commented 1 year ago

Excelente aporte @Annubis1709