Soluciones Desafío 218

Superpanzeta dice:

Empezaré diciendo que no merece la pena que abráis mi solución. En cuanto a lo que se pedía en el enunciado, todas son iguales. La mía no aporta nada, así que la he reducido al máximo. La he mandado solo para que no se diga que no he participado.

La idea de este Desafío surgió al ver en un libro un algoritmo muy simple que calculaba por pasos un logaritmo decimal y lo expresaba en base 2.

Tal y como estaba el algoritmo no me pareció demasiado útil, así que lo adapté para que la respuesta estuviera también en base 10.

Con una calculadora científica comprobé que el algoritmo era muy preciso y no excesivamente lento. Pero claro, con una calculadora científica es aún más rápido y exacto pulsar la tecla log, así que usar el algoritmo no tiene sentido.

Entonces me pregunté: ¿Y con una calculadora básica? ¿Una tan básica que ni siquiera nos ayudara con las potencias?

Obviamente, todo se puede reducir a multiplicaciones y divisiones sucesivas, así que el algoritmo era claramente factible, aunque muy lento debido a que habría que reintroducir una y otra vez los factores. Esto se podría acelerar usando la memoria, pero recordé que algunas de las calculadoras que he tenido (y que ya no tengo) asumían que en ausencia del segundo operando se usaba de nuevo el primero en todas las operaciones al pulsar la tecla igual. Esto permitía por ejemplo calcular el cuadrado de 604 pulsando simplemente 604*=. O el inverso de 17 pulsando 17/==. Podríamos entonces calcular el logaritmo decimal sin disponer de tecla log, ni potencias, ni memoria. Y sobre todo, nos evitaría tener que reintroducir los operandos. Esto haría que el algoritmo fuera práctico para calcular logaritmos decimales.

Desgraciadamente, no sé qué fue de aquellas calculadoras que tuve. Creo que esta característica del segundo operando era bastante común, pero la que tengo ahora no es apropiada, así que busqué una válida.

En el trabajo encontré una antigua muy básica de sobremesa con memoria y raíz cuadrada (teclas que no pensaba utilizar) que me servía perfectamente. Efectivamente, el algoritmo es práctico (no se hace largo), y sorprendentemente preciso.

Lo malo es que no todos tenemos las mismas calculadoras “especiales”, así que tuve que buscar una “online” que me sirviera. Pronto encontré una, que es la del link del enunciado. En otras circunstancias (con más tiempo), habría preparado yo mismo una página con esa misma calculadora sin la publicidad (la calculadora se puede extraer de la propia página), pero no me daba tiempo.

Y eso es básicamente todo. Para que pareciera más complicado, decidí añadir lo de “expresado en base B”, porque sugiere un trabajo de conversión extra entre bases al final. Algo que, curiosamente, en realidad es una reducción del trabajo.

Hay un punto débil en todo esto y es que el enunciado dice también “usando solo la calculadora” y esa era mi intención, que Roberto no tuviese que hacer operaciones mentales.

Esto no es del todo cierto porque la parte entera del logaritmo que obtenemos contando las primeras divisiones por B está en base 10. Esto obliga a Roberto a pasar la parte entera de base 10 a base B “de cabeza”. No obstante, es algo tan sumamente simple que supuse que hasta un tonto podría hacerlo si el número original no era muy grande. Así que añadí al enunciado lo de “no muy grande”, y puse un ejemplo pequeño cualquiera con base 6.

Tan pequeño, que la conversión mental de base 10 a base 6 no es necesaria.

Es muy curioso que tres de los Desafiados (¡la mitad!) hayáis pasado inicialmente por alto lo de “expresado en base B”, y hayáis enviado el algoritmo correcto que expresa el resultado en base 10. Esto me ha permitido algunas risas, pero habéis sido rápidos y todos habéis encontrado y corregido el fallo a tiempo sin que os dijese nada.

Lo de la cuenta de las pulsaciones surgió después de empezado el Desafío. Yo me había quedado con el algoritmo general (no optimizado para ninguna base) y no había considerado contar las teclas, pero pensé que podría servir de pista (o para despistar) y de acicate para encontrar el sistema (siempre que os dieseis cuenta de que la calculadora era un poco especial).

Esto acabó en un intento tardío y mal llevado de promover una competición que nunca llegó a arrancar. Tras recibir un par de correos con optimizaciones ajustadas a la base 6 basadas en la memorización por parte del mago Roberto de potencias de 6 o de otros números u operaciones mentales para reducir el número de pulsaciones, decidí que esas cosas eran demasiado complicadas para Roberto. Yo prefería la elegancia del sistema original (que funciona por si solo sin necesidad de que Roberto recuerde nada más que la base B ni calcule nada mentalmente).

Desgraciadamente, nada de esto formaba parte del enunciado y, como no dejaba clara mi intención, eso había provocado las ideas de optimización “complejas” que habíais enviado. Así que tuve que improvisar dos categorías de optimización: una libre, para que incluyeseis lo que quisieseis y una estricta (con un Roberto “tonto” que solo sabe seguir instrucciones y comparar con 6) que se adaptaba más a mi idea (y a mis propias capacidades como posible mago de feria), y que era la que yo quería seguir.

El único de vosotros que ha corrido de verdad por esta improvisada “pista de atletismo para tontos” ha sido Rubenman. Unos pocos hemos intentado seguirlo (me incluyo), pero Rubenman nos ha sacado varias vueltas de ventaja. Jajaja, qué mal suena esto… ;-D. Atentos a su ingenioso atajo “/6*”. Requiere de Roberto cierta memorización abstracta, pero nada especial.

Es una lástima que el Desafiante (o sea, yo) no haya estado a la altura para al menos ver el potencial que escondía el juego con la calculadora.

relleno

Al final no ha habido competición real en ninguna categoría, pero las sensaciones del Desafío han sido buenas y hemos obtenido un completo. El Desafío entero era una tontería improvisada, pero parece que en general os ha gustado (a Rubenman le ha gustado incluso la optimización) y puedo ceder contento el relevo al próximo Desafiante, que seguro que lo hará mejor.

El próximo jueves nuevo Desafío de Sebas

Soluciones:

D218_Dospew

D218_Mmonchi

D218_Rubenman

D218_Sebas

D218_SPZ

D218_Suschus

D218_Tarzán

Anuncios

Desafío 218

La calculadora (Superpanzeta)

Se cumplen ahora 2 años de la triste desaparición de Roberto Pógrafo, el célebre “abuelo” del pueblo de Dospew que amenizaba las fiestas con sus trucos matemáticos (ver Desafío 215). Todavía se recuerda bien su último truco, el que acabó provocando su desaparición.
Roberto pedía a su audiencia un entero B mayor que 1 y menor que 11, y otro número real R no muy grande con bastantes decimales (que también podían ser cero). Escribían el número en una pizarra a la vista de todos.
Acto seguido, Roberto se daba la vuelta, y, oculto por su capa y su sombrero de ala ancha, empezaba a hacer pequeños movimientos. Luego recitaba un dígito en voz alta (seguido a veces de la palabra “coma”) y seguía con sus extraños movimientos. Decía otra cifra (seguida a veces por “coma”) y seguía haciendo algo bajo la capa, y así hasta que, juntando todas las cifras y la coma que había ido dictando se obtenía un número final que era el logaritmo en base B de R, expresado en base B con bastantes decimales.
Este truco le salió bien un par de veces hasta que uno de los espectadores, sospechando que Roberto hacía algo raro bajo la capa, se la arrancó de un tirón mientras Roberto efectuaba el truco.
La sorpresa de la multitud fue grande cuando vieron que Roberto tenía una calculadora entre las manos.

relleno
Nunca se supo muy bien cómo sucedió, pero unos segundos después, Roberto se alejaba alegremente río abajo recitando algo que no ha trascendido, pero que probablemente eran versos de Espronceda.
Uno de los espectadores, aquel que le había quitado la capa, iba a arrojar también la calculadora al río cuando se dio cuenta de un detalle y todos fueron a mirar. La calculadora no tenía logaritmos.
¿Cómo lo haces? le gritaron a Roberto, ya en la lejanía. Seguramente, Roberto no pudo oirlos, ya que, en vez de explicarles el truco empezó a hacer unos extraños y simpáticos gestos con el dedo corazón que aquella multitud no supo interpretar. Finalmente, Roberto desapareció tras un recodo del río y ya nunca volvieron a verlo.
Se dice que la calculadora de Roberto era exactamente igual que esta: https://www.kalkureka.es/calculadora-basica/
Suponed que la multitud ha decidido, por ejemplo, que B=6, y que R=312.4508712126

¿Cómo haríais vosotros el truco usando solamente esa calculadora básica?

Soluciones hasta el lunes 26 a solucionesclubpitagoricos@gmail.com

Soluciones Desafío 210

Superpanzeta dice:
La ley del péndulo, ¡sin nada de física!

Después del Desafío anterior, tenía que irme al otro lado y poner uno fácil de verdad.

Ha dado más juego del que tenía previsto (tanto es así, que Suschus no ha encontrado ninguna solución óptima), así que estoy contento. Quien más, quien menos, todos habéis necesitado al menos un par de intentos (o algunos más) para encontrar las soluciones, así que ha habido entretenimiento bastante más allá del tiempo que se tarda en comerse un helado.

Me da la sensación de que hubiera sido más indicado para el plazo antiguo que teníamos (de Jueves por la mañana a Lunes por la noche), sobre todo teniendo en cuenta las fechas, pero la duración extendida que tenemos ahora ha estado bien porque ha permitido el trabajo sin prisas y la incorporación de algún rezagado. Así ha sido más veraniego.

relleno

Comparando la participación entre el Desafío anterior y éste, queda claro que el movimiento del péndulo ha sido positivo. Además, por lo que a mí me toca, ha sido muy, muy fácil de llevar.

Respecto a las soluciones, no hay gran cosa que comentar. Las del primer puesto son esencialmente iguales, pero siempre son interesantes los comentarios, razonamientos (cuando los hay) y la presentación de cada uno, incluyendo también las soluciones no óptimas de Suschus.

Gracias por la alta participación, y ¡hasta el siguiente y más allá!

Soluciones

D210_Dospew

D210_Mmonchi

D210_Rubenman

D210_Sebas

D210_SPZ

D210_Suschus

D210_Tarzán

Desafío 210

La seguridad es lo primero (Superpanzeta)

Federico Hete trabaja en una pirotecnia que ha sido contratada para amenizar las fiestas de un pueblo con un espectáculo de fuegos artificiales.

El Ayuntamiento ha cedido un terreno cuadrado de 100m de lado, completamente plano, para la instalación de los cohetes, y esto preocupa a Federico.

El espectáculo está diseñado para que haya 6 puntos de lanzamiento separados entre sí por un mínimo de 50 metros, pero las medidas de seguridad obligatorias imponen requisitos más severos. Para evitar que un accidente en uno de los puntos de lanzamiento afecte a los cohetes preparados en cualquier otro punto, la separación entre éstos debe ser superior a 60 metros. La distancia al público no es problema porque estarán al otro lado del río.

cohetes

Federico no está seguro de que un campo de 100×100 m sea suficiente.

¿Vosotros qué opináis?
Si creéis que se puede, debéis decir cómo.
Si creéis que no se puede, debéis decir qué distancia mínima máxima podéis conseguir, y cómo.

Como segunda parte, ¿qué distancia mínima máxima se podría conseguir si fueran 7 los puntos de lanzamiento?

La primera parte es casi un clásico. De la segunda no tengo solución (así participo yo también), aunque probablemente también estará estudiada. Se ruega no buscar por ahí.

Soluciones Desafío 209

Superpanzeta dice:

Hola a todos. Si cometéis el error de abrir mi fichero (que no solución), os encontraréis con el famoso “problema original” objeto de la votación fallida que tuvimos en el blog.
Allí comento que la solución original puede quizá servir para el caso particular descrito, pero desde luego le falta algo (o me falta a mí) para que se pueda aplicar a la detección de edades válidas en el caso general. Sin embargo, ¿quién puede resistirse a complicar un problema?
Detectar edades me parecía más atractivo que pedir una demostración de un caso elegido para que fuera más o menos fácil, y así nació este Desafío.
Como ya bien sabéis, no ha ido bien del todo. Ya me lo temía, y así ha sido: no he sabido responder a las preguntas que me inventé, y como resultado no he sabido dirigir el Desafío. Combinándolo todo con una respetable dosis de holgazanería debida al calor, el resultado ha sido un pequeño desastre, solo salvado por la paciencia y lucidez de Rubenman. Por otro lado, debo resaltar a otro Pitagórico que posiblemente haya trabajado tanto como Rubenman, aunque haya sido dando vueltas a la bahía sin llegar a buen puerto: nuestro marinero Sebas. Entre los dos me han enviado alrededor de 50 correos.

Win numbers and lottery balls
Habréis visto, o veréis, que Rubenman utiliza una estrategia descendente, laboriosa pero eficaz, y se especializa en encontrar fallos hasta que llega bajando al famoso 49, donde no encuentra ninguno. Todos los casos que ha analizado corresponden a la realidad, lo que da una idea de lo completo de su análisis.
Con el descubrimiento, no solo de la cuenta, sino del contenido de los 2 boletos extra del 51, volvemos a confirmar que a Rubenman no le afecta el calor.
Respecto a la tercera pregunta, ya veis que no hay edad única, y que todas son absurdamente altas. De ahí hacia abajo (edades menores), las probabilidades de que todo el sistema salga más caro van aumentando. Creo que el cálculo exacto está fuera de nuestras posibilidades, pero, como bien dice Rubenman, no es necesario cálculo alguno.
Si os ha parecido rara esta tercera pregunta, como comenta nuestro acertante en su solución, es porque mi primera idea era otra. Cuando vi que había casos que fallaban en un único sorteo, ó en 2, ó en 7, me imaginé a Primitivo comprando boletos nuevos para cubrir esos posibles fallos, a razón de un boleto por cada fallo.
Y eso es exactamente lo que hay que hacer cuando el número de fallos es pequeño y los fallos no tienen muchos números coincidentes (como por ejemplo los 2 fallos del 51), pero si el número de fallos crece (y lo hace cada vez más rápido al aumentar la edad), ya no será necesario comprarlos todos.
Pero yo no me di cuenta. El mínimo que yo creía que os pedía (comprando un boleto extra por cada fallo) no tenía mucho sentido, y además era demasiado difícil de encontrar. Por si tenéis curiosidad, la respuesta original (equivocada) a esta absurda tercera pregunta eran 63 años, con una compra de 235435 boletos.
Afortunadamente, el razonamiento de Rubenman permite dar respuesta a la tercera pregunta sin necesidad de modificar el enunciado (no pedí el número de boletos sino la edad). Lo único que ha cambiado es la respuesta esperada, que ahora es, además de correcta, muchísimo más barata.
Para terminar, pediros perdón por lo poco veraniego del Desafío y lo mal que lo he preparado y llevado. Solo os pido que guardéis las antorchas para cuando haga menos calor.

Soluciones

D209_Rubenman

D209_SPZ

Desafío 209

Primitivo (Superpanzeta)

Enunciado:

El año pasado, mi buen amigo Primitivo heredó una enorme fortuna de su tío de América y el dinero dejó de importarle.
Primitivo es muy aficionado al juego, así que se propuso inmediatamente el objetivo de ganar a la Primitiva (que no es su mujer, sino la Lotería).
Ya sabéis, la Primitiva son 49 bolas en un bombo, de la 1 a la 49, se extraen 6 bolas, no importa el orden, y una apuesta simple consiste en un boleto con 6 números marcados.

Para Primitivo, ganar consiste en tener al menos 5 aciertos. Es decir, los únicos premios que le interesan son los de 5 y 6 aciertos. Para simplificar, consideraremos que no hay número complementario.

Para conseguir su objetivo, Primitivo decidió utilizar un sistema bastante absurdo.
Decidió apostar por cada boleto posible cuya suma de números fuera múltiplo de su propia edad.
Pensó que eso le garantizaría al menos un premio de 5 aciertos, con lo que se daría por satisfecho aunque esta Primitiva le costase dinero (una vez más, nos referimos a la Lotería).

El primer intento fue el día de su cumpleaños del año pasado, pero no consiguió ganar.
Primitivo no se explica qué pudo fallar, y hoy, que es de nuevo su cumpleaños, quiere volver a intentarlo.

Así que consulta conmigo (¡menudo error!) para saber qué falló el año pasado y si le va a ir bien este año.

Y yo le digo:
Tuviste mala suerte el año pasado, pero la verdad es que decidiste empezar en un mal momento.
Si hubieras empezado un año antes, te habría ido bien. Lo malo es que a partir de ahora ya nunca más vas a poder ganar con seguridad.
Pero no te preocupes, lo más probable es que este año te vaya mejor.

El Desafío consiste en averiguar la edad de Primitivo.

No quiero prohibir nada, pero, como es lógico, se prefiere una respuesta razonada. Si la conseguís, quizá podáis también intentar averiguar esto:

¿Cuantos boletos extra necesitaría Primitivo para garantizar el éxito este año?
¿Cuál sería la mejor edad (mejor en el sentido de reducir el gasto total) que garantice el éxito, tanto si hay que hacer apuestas extra como si no?

Nota: un boleto extra es uno cuya suma de números no es múltiplo de la edad de Primitivo.

Soluciones a solucionesclubpitagoricos@gmail.com

Solución Desafío 192

Superpanzeta dice:

Este Desafío ha estado a punto de ser un Desastre sin paliativos por mi falta de preparación.

Menos mal que lo habéis salvado vosotros.

Cuando lo presenté no sabía cómo resolverlo y, sigo sin haber averiguado nada por mis propios medios.

En seguida me di cuenta de que mi única posibilidad iba a ser encontrar algo por fuerza bruta, pero hasta en eso he fallado. Ni siquiera he sido capaz de encontrar la solución a la mesa de 7, y, claro, todos los intentos que he hecho sobre los casos del Desafío (10 y 12) han resultado también infructuosos por abarcar demasiadas posibilidades para mis reducidas habilidades informáticas. Por el mismo motivo han fallado también mis intentos inspirados por Rubenman, que tiene las ideas mucho más claras que yo.

relleno

Por todo ello me considero suspendido con todos los “honores”.

Durante la mayor parte del tiempo hubo una preocupante ausencia de actividad, tanto en blog como en el correo, lo que me hizo pensar que el Desafío era, o bien demasiado difícil, o poco interesante, o las dos cosas. Un fracaso en toda regla que sólo podía ser culpa mía.

Ya el mismo día de la presentación, Sebas me confesó que lo veía negro. Tan negro como yo. Afortunadamente, Rubenman ha sido mi luz durante el Desafío, ya que demostró enseguida que no era algo imposible. Respecto a los demás, ya casi al final, Dospew me comentó que estaba intentándolo de forma manual. Un valiente, este Dospew. Y finalmente, el último día, el inesperado bombazo: Tarzán tenía las dos soluciones. Desafío salvado.

El sistema de Rubenman es válido para todas las mesas de tamaño p+1, siendo p un primo. Como veréis, es un sistema rápido, relativamente simple y completamente mecánico, basado en su solución al Desafío 111. Como prueba de su potencia, resolví el caso de la mesa 200 en un pis-pas.

El sistema de Tarzán es más general, ya que parece ser válido para cualquier mesa par. Tiene su parte mecánica y su parte manual (que probablemente también se pueda mecanizar). Lo malo es que conforme se agranda la mesa, la parte manual del sistema se va complicando. He intentado durante un rato extenderlo a la mesa de 14 y me he perdido haciendo encaje de bolillos manual con las columnas. Con todo, encajar columnas es muchísimo mejor que encajar números, como el mismo Tarzán se encarga de demostrarnos.

Sobre los casos impares no sabemos nada pero, visto lo visto, me alegro de no haber preguntado por ellos. Supongo que todos los tamaños tendrán solución.

Como véis, el resultado final está lejos de ser un completo. Sólo tenemos dos respuestas y sólo una está completa, pero aun así me ha quedado un buen sabor de boca que no me esperaba. Estoy contento.

Finalmente, aunque ha sido bastante inútil, me alegra haber comprobado que mi “maquinita” online se ha portado bien, aunque sólo sea como prueba de concepto. Quizá algún día le dé un uso más interesante o útil.

Y nada más, ya podéis sacar las antorchas.

El próximo jueves nuevo Desafío de Dospew.

Soluciones

D192_Rubenman

D192_Tarzán