Introducción a la Computación Tc1001 Algoritmos 2.2 Solución de problemas Como ya se mencionó, las personas realizamos consciente o inconscientemente pasos, metodologías, procedimientos o acciones para resolver un problema o encontrar un resultado. Un método consiste en establecer una secuencia de acciones para llevar a cabo un objetivo, un conjunto de información de entrada que regulará dicha acción y un valor de salida. No existen reglas específicas que permitan resolver un problema. Existen técnicas y herramientas metodológicas que permiten estructurar el razonamiento para la solución de un problema. Se consideran tres etapas para la solución de un problema: Ngj/2011 2.2 Solución de problemas 65 Introducción a la Computación Tc1001 Algoritmos Ejemplo: Establecer el procedimiento y cálculos necesarios para calcular la calificación final de un curso cuya evaluación está compuesta de las siguientes actividades: 3 exámenes parciales de 15% cada uno, 6 actividades colaborativas de 2.5% cada una, un proyecto final 10% y un examen final 30%. Solución 1) Análisis del problema La calificación final de un curso se calcula sumando los puntos obtenidos en cada actividad. 2) Acciones Los puntos obtenidos se calculan multiplicando la calificación de cada actividad por el porcentaje de evaluación de la misma: Puntos de cada examen: P1*0.15 P2*0.15 P3*0.15 Puntos de cada actividad: A1*0.025 A2*0.025 A3*0.025 A4*0.025 A5*0.025 A6*0.025 Puntos del proyecto final=Pf*0.10 Puntos del examen final = EF*0.30 3) Verificación 1 Exámenes puntos Actividades puntos Proyecto final puntos Examen final puntos 85 12.75 100 2.5 88 8.8 70 21 2 3 70 10.5 90 2.25 88 13.2 95 2.375 4 5 Total 6 36.45 85 2.125 100 2.5 95 2.375 14.125 8.8 Calificación final 66 2.2 Solución de problemas Ngj/2011 21 80 Introducción a la Computación Tc1001 Algoritmos Otro ejemplo: Supongamos que estás negociando el salario con tu jefe y éste te da a elegir entre 2 ofertas: A) 2.000.000 por tu primer año de trabajo y un aumento de 400.000 pesos anuales en los 5 años siguientes. B) 1.000.000 por tu primer semestre de trabajo y un aumento de 100.000 pesos cada semestre durante los 5 años siguientes. ¿Qué oferta elegirías y por qué? Solución Ngj/2011 Año 1 A 2´000,000 2 2´400,000 3 2´800,000 4 3´200,000 5 3´600,000 total 14´000,000 B 1´000,000 1´100,000 1´200,000 1´300,000 1´400,000 1´500,000 1´600,000 1´700,000 1´800,000 1´900,000 14´500,000 2.2 Solución de problemas 67 Introducción a la Computación Tc1001 Algoritmos Actividad 2.2 Solución de problemas en equipo Resuelve, en equipo de tres personas, los siguientes problemas: 1. Un pescador que llevaba un gran sombrero de paja estaba remando corriente arriba por un río cuya corriente llevaba una velocidad de 3 Km. /h. En cierto momento el sombrero se le cayó al agua, aunque no se dio cuenta hasta que estuvo a 5 Km. de distancia. En ese momento empezó a remar corriente abajo hasta que los recogió. En aguas quietas la velocidad con la que rema el pescador es de 5Km/h, por tanto su velocidad corriente arriba será de 2 Km. /h, mientras que corriente abajo será de 8 Km. /h. Si el pescador perdió su sombrero a las 2 de la tarde, ¿a qué hora lo recuperó? 2. Cuando el Sr. Martínez fue al banco se dio cuenta de que se había quedado en números rojos (debiéndole al banco). Sin comprender cómo había sucedido, le explicó al Director del Banco lo siguiente: Inicialmente tenía 100.000 pesos en mi cuenta. Retiré sucesivamente 6 cantidades de dinero que sumaban 100.000, pero según mis registros únicamente había 99.000 disponibles. Las cifras exactas fueron las siguientes: Retiros Cantidad que quedaba en depósito 50.000 50.000 25.000 25.000 10.000 15.000 8.000 7.000 5.000 2.000 2.000 0 100.000 99.000 -Como ve, aparentemente debo 1.000 pesos al banco. – Dijo el Sr. Martínez -Apreciamos su honestidad, le dijo el Director del banco, pero no nos debe nada. -Entonces, ¿hay algún error en mis cifras? -No, sus cifras son correctas. ¿Dónde está el error? 68 2.2 Solución de problemas Ngj/2011 Introducción a la Computación Tc1001 Algoritmos 3. Los hermanos Zipi y Zape me encargaron que vendiera en el mercado dos partidas de melones. Zipi me encargó 30 melones que debían ser vendidos al precio de 3 por una moneda de 500 pesetas; Zape me entregó también 30 melones para los que estipuló un precio más caro: 2 melones por una moneda de 500 pesetas. Lógicamente, después de efectuada la venta Zipi tendría que recibir 10 monedas de 500 pesetas y Zape 15. El total de la venta sería pues 25 monedas de 500 pts. Para mayor comodidad, empecé a venderlos en lotes de 5 por 1000 pesetas: Si tenía que vender 3 por 500 pesetas y luego 2 por 500 pesetas, sería más sencillo vender 5 por 1000 pts. Vendidos los 60 melones en 12 lotes de cinco melones cada uno, recibí 24 monedas de 500 pts. ¿Cómo se explica esta diferencia de 500 pesetas entre lo recibido y lo que se supone que habría que recibir? 4. Hace 300 años vivió un príncipe de corazón enfermo y excesivo orgullo. Éste había prometido a su hija en matrimonio a un rico vecino, pero ésta tenía un plan diferente. Enamorada de un lacayo, intentó huir con él a las montañas, pero fueron capturados. El príncipe decidió ejecutarlos al día siguiente. Los encerró en una alta torre junto con una muchacha, una sirviente que los había ayudado en su fallida huida. Mirando por la ventana, observaron que era imposible saltar y sobrevivir. Sin embargo, había una cuerda, colgando de una polea, en cuyos extremos había sendas cestas. Éstas habían sido utilizadas en el pasado para subir ladrillos y bajar escombros. También había en la torre 13 trozos de cadena de unos 5 kilogramos cada uno. Los prisioneros dedujeron que si una de las cestas llevaba una carga superior en cinco kilogramos a la otra, la más pesada descendería suavemente al suelo a la vez que la otra ascendía hacia la ventana. Sabiendo que los pesos de los prisioneros eran, respectivamente, de 90, 50 y 40 kilogramos, ¿cómo podrían escapar de la torre? En ningún momento una cesta en descenso puede pesar 5 kilogramos más que la otra. ¿Cuántas veces han bajado las cestas? 5. Josephus Flavius fue un famoso historiador judío de la primera centuria (37100). Cuentan que durante la guerra de los judíos y los romanos, él se quedó atrapado, con otros cuarenta soldados judíos, en una cueva asediada por los romanos y sin una posible vía de escape. La leyenda dice que, prefiriendo suicidarse a ser capturados, los soldados decidieron matarse entre ellos, pero Josephus y un amigo suyo no estaban de acuerdo. Para sobrevivir Josephus sugirió que se procediera del siguiente modo: Todos ellos debían colocarse en círculo, numerándose del 1 al 41, y empezando a contar por el primero toda tercera persona sería asesinada hasta que sólo quedara una persona que debería suicidarse. Josephus salvó su vida y la de su amigo colocándose en el lugar 31 y 16 respectivamente. Comprueba que las dos últimas personas que quedaron fueron Josephus y su amigo. Ngj/2011 2.2 Solución de problemas 69 Introducción a la Computación Tc1001 Algoritmos Solución Actividad Solución de problemas 1. Un pescador que llevaba un gran sombrero de paja estaba remando corriente arriba por un río cuya corriente llevaba una velocidad de 3 Km/h. En cierto momento el sombrero se le cayó al agua, aunque no se dio cuenta hasta que estuvo a 5 Km. de distancia. En ese momento empezó a remar corriente abajo hasta que los recogió. En aguas quietas la velocidad con la que rema el pescador es de 5 Km/h, por tanto su velocidad corriente arriba será de 2 Km/h, mientras que corriente abajo será de 8 Km/h. Si el pescador perdió su sombrero a las 2 de la tarde, ¿a qué hora lo recuperó? Solución Hora inicial distancia velocidad Tiempo Hora final 2:00 p.m. 5 Km. 2 Km /hr. 2.5 Hrs. 4:30 p.m. 4:30 p.m. 5 Km. 8 Km / hr. 5/8 de hora. 5:07 p.m. = 37.5 min. Otra solución: Si el sombrero se mueve río abajo a 3 km/hr: Hora 2:00 4:30 5:30 6:30 7:00 70 Pescador río arriba a 2 km/hr. Recorrió 5 km 2.5 hrs se tardó Sombrero río abajo a 3 km/hr. 2.5 hrs después está a 5 km + 7.5 km del pescador. Se encuentra a 12.5 km de distancia del pescador Recorrió 8 km río abajo recorrió 3 km río abajo= 15.5 km Recorrió 16 km río abajo Otros 3 km = 18.5 km Recorrió 4 km río abajo= 1.5 km más = 20 km 20 km Lo alcanzó el pescador. 2.2 Solución de problemas Ngj/2011 Introducción a la Computación Tc1001 Algoritmos 2. Cuando el Sr. Martínez fue al banco se dio cuenta de que se había quedado en números rojos (debiéndole al banco). Sin comprender cómo había sucedido, le explicó al Director del Banco lo siguiente: Inicialmente tenía 100.000 pesos en mi cuenta. Retiré sucesivamente 6 cantidades de dinero que sumaban 100.000, pero según mis registros únicamente había 99.000 disponibles. Las cifras exactas fueron las siguientes: Retiros Cantidad que quedaba en depósito 50.000 50.000 25.000 25.000 10.000 15.000 8.000 7.000 5.000 2.000 2.000 0 100.000 99.000 Como ve, aparentemente debo 1.000 pesos al banco. – Dijo el Sr. Martínez Apreciamos su honestidad, le dijo el Director del banco, pero no nos debe nada. Entonces, ¿hay algún error en mis cifras? No, sus cifras son correctas. ¿Dónde está el error? Solución El error está en comparar la suma de retiros con la suma de saldos Ngj/2011 2.2 Solución de problemas 71 Introducción a la Computación Tc1001 Algoritmos 3. Los hermanos Zipi y Zape me encargaron que vendiera en el mercado dos partidas de melones. Zipi me encargó 30 melones que debían ser vendidos al precio de 3 por una moneda de 500 pesetas; Zape me entregó también 30 melones para los que estipuló un precio más caro: 2 melones por una moneda de 500 pesetas. Lógicamente, después de efectuada la venta Zipi tendría que recibir 10 monedas de 500 pts y Zape 15. El total de la venta sería pues 25 monedas de 500 pts. Para mayor comodidad, empecé a venderlos en lotes de 5 por 1000 pts: Si tenía que vender 3 por 500 pts y luego 2 por 500 pts, sería más sencillo vender 5 por 1000 pts. Vendidos los 60 melones en 12 lotes de cinco melones cada uno, recibí 24 monedas de 500 pts. ¿Cómo se explica esta diferencia de 500 pts entre lo recibido y lo que se supone que habría que recibir? Solución Melones vendidos Melones que quedan Melones que quedan de Zipi de Zape 5 3: 30-3= 27 2: 30-2= 28 10 3: 27-3= 24 2: 28-2= 26 15 3: 24-3= 21 2: 26-2= 24 20 3: 21-3= 18 2: 24-2= 22 25 3: 18-3= 15 2: 22-2= 20 30 3: 15-3= 12 2: 20-2= 18 35 3: 12-3= 9 2: 18-2= 16 40 3: 9-3= 6 2: 16-2= 14 45 3: 6-3= 3 2: 14-2= 12 50 3: 3-3= 0 2: 12-2= 10 Los últimos diez melones debió de venderlos a 2 por 500 72 2.2 Solución de problemas Ngj/2011 Introducción a la Computación Tc1001 Algoritmos 4. Hace 300 años vivió un príncipe de corazón enfermo y excesivo orgullo. Éste había prometido a su hija en matrimonio a un rico vecino, pero ésta tenía un plan diferente. Enamorada de un lacayo, intentó huir con él a las montañas, pero fueron capturados. El príncipe decidió ejecutarlos al día siguiente. Los encerró en una alta torre junto con una muchacha, una sirviente que los había ayudado en su fallida huida. Mirando por la ventana, observaron que era imposible saltar y sobrevivir. Sin embargo, había una cuerda, colgando de una polea, en cuyos extremos había sendas cestas. Éstas habían sido utilizadas en el pasado para subir ladrillos y bajar escombros. También había en la torre 13 trozos de cadena de unos 5 kilogramos cada uno. Los prisioneros dedujeron que si una de las cestas llevaba una carga superior en cinco kilogramos a la otra, la más pesada descendería suavemente al suelo a la vez que la otra ascendía hacia la ventana. Sabiendo que los pesos de los prisioneros eran, respectivamente, de 90, 50 y 40 kilogramos, ¿cómo podrían escapar de la torre? En ningún momento una cesta en descenso puede pesar 5 kilogramos más que la otra. ¿Cuántas veces han bajado las cestas? Solución orden 1 2 3 4 5 6 7 8 Cesta baja con 7 cadenas = 35 Kg. Persona de 40 kilos 9 cadenas = 45 Kg. Persona de 50 Kg. 9 cadenas = 45 Kg. Persona 90 Kg. 7 cadenas = 35 Kg. Persona de 50 Kg. Ngj/2011 Cesta sube con Vacía 7 cadenas = 35 Kg. Vacía 9 cadenas = 45 Kg. Vacía Persona de 50 Kg. + 7 cadenas Vacía 9 cadenas = 45 Kg. 2.2 Solución de problemas 73 Introducción a la Computación Tc1001 Algoritmos 5. Josephus Flavius fue un famoso historiador judío de la primera centuria (37100). Cuentan que durante la guerra de los judíos y los romanos, él se quedó atrapado, con otros cuarenta soldados judíos, en una cueva asediada por los romanos y sin una posible vía de escape. La leyenda dice que, prefiriendo suicidarse a ser capturados, los soldados decidieron matarse entre ellos, pero Josephus y un amigo suyo no estaban de acuerdo. Para sobrevivir Josephus sugirió que se procediera del siguiente modo: Todos ellos debían colocarse en círculo, numerándose del 1 al 41, y empezando a contar por el primero toda tercera persona sería asesinada hasta que sólo quedara una persona que debería suicidarse. Josephus salvó su vida y la de su amigo colocándose en el lugar 31 y 16 respectivamente. Comprueba que las dos últimas personas que quedaron fueron Josephus y su amigo. 1º 1 4 7 10 13 16 19 22 25 28 31 34 37 74 2º 2 5 8 11 14 17 20 23 26 29 32 35 38 3º 3 6 9 12 15 18 21 24 27 30 33 36 39 1º 40 2 7 11 16 20 25 29 34 38 2 8 16 2º 41 4 8 13 17 22 26 31 35 40 4 11 17 3º 1 5 10 14 19 23 28 32 37 41 7 13 20 2.2 Solución de problemas 1º 22 29 35 2 11 22 31 2 16 31 4 31 16 2º 25 31 38 4 16 25 35 4 22 35 16 35 31 3º 26 34 40 8 17 29 38 11 25 2 22 4 35 Ngj/2011