Desafío 136

LA GRAN BATALLA (Rubenmam)

El presente desafío es un tanto sangriento, no en vano está basado en un juego que yo he conocido como “muertos y heridos” aunque hay otras denominaciones.

Dos jugadores esconden cada uno de ellos un número de 4 cifras, todas ellas diferentes. A turnos irán cantando recíprocamente números de esas mismas características intentando descifrar el número que oculta su rival.

Oído el número que propone el otro jugador se contesta con la expresión “x” muertos (números que coinciden en ambas combinaciones y además ocupan el lugar correcto) e “y” heridos (coinciden pero no ocupan el lugar adecuado). Vamos a verlo con un ejemplo.

Número escondido : 8015

Intento : 1095

Respuesta: 2 muertos y 1 herido

Vamos a enfrentarnos a un ordenador que supuestamente es capaz de prever nuestra estrategia completa, de ahí que nos va a esconder el número o uno de los números que nos obligue a un mayor número de turnos.

A cambio, el primer número o unidades de millar lo vamos a conocer, por ejemplo vamos a tomar el 9. Sólo tendremos que adivinar los tres restantes (9XYZ).

¿En cuántos turnos eres capaz de descubrir el número oculto?. Cuando te aburras puedes intentarlo con el número completo.

Es muy probable que haya un empate múltiple, en ese caso consideraremos mejor estrategia aquella que emplee un menor número de valores posibles a desarrollar, cotejar o comparar.

2Soluciones hasta el lunes 21 a solucionesclubpitagoricos@gmail.com

 

Anuncios

25 pensamientos en “Desafío 136

  1. Evidentemente el desafío busca soluciones de tipo práctico, es decir de lápiz y papel, como si estuviéramos jugando con un amigo; ello no obsta para que podamos acudir a la cita con un poco de preparación porque la máquina nos lo pondrá lo más difícil posible.
    Yo también lo tengo que pensar, he lanzado un caso un poco diferente para poder participar. En teoría iba a proponer el supuesto “normal” pero ante la posibilidad de que pudiera estar tratado, he optado por lo otro. De todas maneras, se puede plantear de ese modo también si lo prefiere la audiencia.
    Insisto, en cualquier caso se pretende dar con estrategias útiles para un juego convencional; de esta manera cuando Diego juegue con sus amigos, tenga un poco de ventaja.
    El juego en sí mezcla suerte, concentración y estrategia. Nuestro desafío pretende eliminar las dos primeras cualidades (se nos supone una concentración absoluta).
    Si alguien aporta voluntariamente soluciones informáticas, las aceptaremos como complemento. A buen seguro serán más eficaces pero tal vez no sean tan prácticas como pretendemos.
    Si hay dudas las aclaramos.

  2. Antes de nada, debo confesar que conocía el juego, y que nunca he sabido jugar bien. Supongo que cualquier momento es bueno para aprender.
    Dicho esto, el enunciado me parece una descripción del juego que yo conocía. A mí me parece la versión “normal”.
    Por ello no acabo de entender la diferencia entre el Desafío y lo que tú llamas el supuesto “normal”.
    La manera de contar los turnos necesarios es enfrentar el algoritmo al peor caso posible y contar los pasos. El algoritmo que alcance la cuenta mínima gana. ¿No?

    ¿Hay otra forma de contar los pasos de cada algoritmo? Si no se hace la cuenta sobre el peor caso posible, la cuenta estará mal hecha. Digo yo.

    • Aclaro lo de normal, con este témino me refería al juego habitual, sin conocer número alguno. Era sólo por eso.
      En el desafío conocemos el primer número ya, algo que no suele ser tan normal o habitual.
      Ya no sé si los lectores prefieren que abordemos un caso u otro, o los dos.
      En efecto, el algoritmo que garantice el menor número de intentos gana.
      Yo también jugaba pero nunca utilcé una estrategia en sí, no estaría mal que podamos aprender (yo también me incluyo) una interesante desde el punto de vista “práctico”.

      • Ah, vale. Había entendido que la “diferencia” consistía en que el número oculto era uno de los peores posibles en vez de uno cualquiera.
        Estoy seguro de que esto está estudiado a fondo. Voy a intentar resistirme a buscar por ahí.

  3. Hago una aclaración, en teoría lo que estoy insinuando es que la máquina nos va a hacer trampas porque irá modificando el número, eso sí cumpliendo siempre con las informaciones facilitadas.
    Por ejemplo, si dudamos entre el 4015, 4016 y 4017, y decimos el 4015, nos dirá que tenemos 3 víctimas, diremos el 4016 y nos volverá a decir lo mismo; pero si hubiéramos empezado por el 4017 hubiera hecho lo mismo. Es decir nos alargará la partida todo lo que pueda, hasta que sólo haya un valor posible.
    Reitero que pretendemos buscar una estrategia “práctica”, que va a quedar peor (salvo sorpresa infinita) que la “teórica”; pero de eso ya hablaremos.
    Debemos pensar que estamos jugando contra un amigo, con un lápiz y papel y un tiempo razonable.
    A pesar de que el tema ya esté tratado, he querido plantearlo por algo que me chocó.

  4. Voy a hacer un comentario porque me temo lo peor. El desafío no es más que un concurso de ideas para el juego de muertos y heridos, desde un punto de vista eminentemente práctico.
    La inteligencia artificial ya ha resuelto este problema, pero eso se sale de lo que es un juego convencional. La máquina es claramente superior a la mente humana pero eso no nos debe preocupar a la hora de abordar nuestro desafío. Se trata simplemente de jugar y aportar las ideas que nos surjan.
    He rebuscado y no he visto en ningún sitio (pero eso no quiere decir que no lo haya) ninguna estrategia que vaya en busca de garantizar “manualmente” lo que pretendemos, de ahí que se me ocurriese plasmarlo en un desafío.
    Hay infinidad de estrategias o métodos, unos más engorrosos, otros más largos, etc. Hay libertad absoluta para tratar este juego.
    En realidad a mi me ha interesado el caso completo, lo del número 9 lo considero una chorrada por si ya estuviera estudiado lo que busco.
    Ya os anticipo que se han hecho experimentos utilizando un algoritmo informatizado, comparando resultados con humanos con formación en ingeniería.
    En estos momentos barajo un par de estrategias que considero aceptables y sigo dándole vueltas para ver si consigo mejorarlas algo. Las he confrontado con un juego totalmente aleatorio para ver resultados experimentales
    http://dinamaticas.com/juegos/4d/
    En nuestro caso la máquina será capaz de detectar los puntos flojos de nuestras estrategias.
    Recordamos, es un concurso de ideas.

    • Dudo que esos resultados experimentales te lleven muy lejos.
      Ese programa no hace trampas (aparte de contar mal los heridos). Habría que escribir uno que las hiciera y luego ir enfrentándole los algoritmos.
      No estoy seguro de ser capaz de hacerlo, pero no me extrañaría que Pardillano lo tuviera ya a medio hacer.

      • Por ahora a mi no me ha fallado en los recuentos, pero puede ser.
        En efecto no hace trampas pero simula lo que puede ser un juego convencional. En el ensayo comentado, así fue el caso.
        Yo he querido ir más lejos, buscar el caso más recóndito.
        Para eso casi no es necesario confrontarlo con un programa, aunque nos daría la seguridad absoluta.
        Si se conoce bien el algoritmo, enseguida se da uno cuenta de los puntos “débiles”, por llamarlos así. Conociéndolos, sabemos ya nuestros límites.
        Con esa página vengo haciendo desde hace días tandas de diez partidas, es cierto que a veces tengo que desechar alguna por algun error mayúsculo que va en contra de lo que sería una “concentración absoluta”, por ejemplo teclear mal un número o contabilizar como muerto lo que es un herido.
        Los resultados que obtengo por ahora son todos inferiores en una o más unidades al límite que yo considero de mi algoritmo. LLevo unas 150 partidas y sólo en una sé que tuve suerte porque en esa ronda (anterior a mi tope) tenía que elegir entre dos números y tuve la suerte de acertar; pero soy consciente de que ahí la máquina del desafío, me hubiese forzado una ronda más.
        A título de orientación, el tiempo empleado de media, no pasaría de los dos o tres minutos.
        De todos modos sí me gustaría que Pardillano nos sorprendiese. En teoría sería tan fácil como confrontar los cinco mil números posibles con el algoritmo. Lo único que el algoritmo puede llevar una decisión en función de… y eso ya sea muy complicado de prever por parte de la máquina.
        No obstante tengo ya analizados los pocos supuestos que me obligarían al máximo y mi pelea es intentar limar una ronda para esos poquitos.

        • Soy incapaz de ver los “puntos débiles” esos que dices. No se me ocurre nada. Me parece todo muy complicado, aunque espero equivocarme. De momento sólo tengo una estrategia, y es horrible.
          Respecto los recuentos de heridos, no digo que la página falle a veces. Digo que cuenta mal. Ejemplo:
          Pedimos 1123, y el secreto es 1987. Todos estamos de acuerdo en que hay 1 muerto.
          Pero una vez muerta, esa víctima ya no puede ser un herido (en mi opinión, claro).
          Yo jugaría respondiendo 1 muerto y 0 heridos.
          La página responde 1 muerto y 1 herido.

          • En el ejemplo que pones está mal, porque no se puede decir un número repetido, sería inválido.
            El 1123 no vale. El programa debiera advertirlo.
            Recordad el enunciado, “cantaremos números de las mismas características”, es decir de 4 dígitos todos ellos diferentes.

            Si tienes una estrategia, eso ya es muy bueno, creo que es el principio. Seguro que pronto ves como mejorarla.
            Lo de puntos débiles llamo yo a los casos en los que la máquina nos exigirá el máximo.
            Lo de horrible puede ser subjetivo, no te preocupes.
            Hay alguna página más con simulación de juego, no es difícil encontrarlas.
            Podéis contarme vuestras ideas, no me como a nadie.
            ¿Os parece muy complicado?
            No es tanto creedme.

  5. Super me comenta que va a intentar colgar un comprobador. Os puedo decir que funciona a la perfección.
    Sabe buscar muy bien las cosquillas. En mis dos variantes ha ido precisamente donde debía ir el condenado. Me obliga necesariamente a ir al tope; cosa que no han conseguido 180 partidas jugadas con la otra página.
    Un programa muy tramposo.

  6. Bueno, el comprobador en sí (que no es otra cosa que un jugador tramposo) está aquí:
    http://pastebin.com/LcZL8Zn5
    Debéis copiar todo el texto. Hay un botoncito arriba que lo selecciona todo, y luego pulsáis CONTROL-C.
    Se trata del código fuente de un feísimo programa de consola escrito en Python 3.
    Como no puedo pedir a todo el mundo que se instale un intérprete de Python para poder ejecutar esto (aunque Rubenman ha accedido a usar uno portable), os pongo un link a una página que permite ejecutar código Python 3:
    https://www.pythonanywhere.com/try-ipython/
    Una vez allí, debéis hacer click en la ventana negra y teclear exactamente esto:
    %cpaste
    Y pulsar ENTER
    Si habéis copiado el programa al portapapeles, ahora podréis pulsar CONTROL-V. El texto se pegará. Pulsar otro ENTER para quedar en una línea vacía y pulsar CONTROL-D.
    Si todo ha ido bien, el programa arrancará.
    Si tenéis alguna duda, preguntad.

  7. Tengo el presentimiento de que sólo me divierto yo y todo se lo debo a Super, con su programa me está ofreciendo la posibilidad de mejorar mi visión.
    Cuando diseñaba el desafío me acordaba de Diego y compañía, no sé si el juego lo conocerían y si les gusta. Yo lo tenía abandonado desde mi época escolar, era un sustituto más intelectual que los barcos y pocos querían jugar. Nunca utilicé una estrategia, todo improvisación.
    Si hacéis una prueba, sin método, con el programa de Super veréis cuántas tandas necesitáis con ese tramposo, no tengáis reparos en comentarlo.
    Mientras lo diseñaba me di cuenta de que quien juega con estrategia parte con una notable ventaja y todo lo que he podido ver por ahí son estudios informáticos y algoritmos que no entiendo.
    No me importa que busquéis (también lo encontraréis como picas y fijas, toros y vacas, etc.)
    porque me gustaría que de este caso saliese una buena estrategia. No sé si los buenos jugadores se lo callan o no, y aquí somos unos metepatas.
    Yo dispongo de dos estrategias, una más sencillita que la otra, pero esta última parece que bien gestionada me puede suponer un avance que yo no esperaba.
    Mi idea era explicaros la más sencilla y todavía no sé qué va a pasar.
    Entre tanto sólo conozco una posible estrategia vuestra y es francamente buena y sencilla.
    Sospecho que sois buenos jugadores y no quréis dar a conocer las vuestras. Os entiendo.

  8. Me siento muy sólo en este desafío si exceptúo a un lector que, dicho sea de paso, está trabajando muchísimo.
    El supuesto en sí es mucho fácil de lo que pensamos. Vamos a jugar una partida con otro pitagorico. ¿Cómo la plantearías? Sólo tenemos que decir eso.
    Luego ya podemos jugar contra ese programa tramposo que nos ha preparado Super, que no tiene ningún número oculto concreto, y me contáis lo que os ocurre. Eso es anecdótico porque sería topar con una mala suerte absoluta.
    En un experimento se cotejaron los datos de dos algoritmos informáticos y un grupo de personas conocedoras del juego y con formación en ingeniería. Todo parece indicar que fueron partidas aleatorias. ¿Quieres conocer el resultado del juego picas y fijas (no el Mastermind)?
    En el apartado 5.2 de este artículo puedes ver los resultados.

    http://www.palermo.edu/ingenieria/Pdf2010/CyT9/14.pdf

  9. Rubenman exagera.
    Respecto al programa tramposo, debo comentar que al día siguiente de “colgarlo” (si es que se puede llamar así) lo mejoré. Es el que ha usado Rubenman.
    Pero como nadie ha comentado nada, he supuesto que no merecía la pena colgar la versión nueva en el blog. Si alguien lo quiere, que lo diga. La diferencia no es grande, pero la versión nueva conlleva un poco más de mala suerte.

  10. Enhorabuena, estimado Rubenman.
    Muy interesante.
    Lo intentaré, pero creo que no voy a tener una buena estrategia.
    De todos modos, me quedo entretenido.
    Los sigo con interés, curiosidad y gratitud
    A todos ustedes, cordiales saludos.

    • Gracias a tí Tarzan.
      Lo de estrategia buena o menos buena es muy subjetivo. Yo hablaría mejor de plan inicial de juego porque en una partida pueden pasar muchas cosas.
      En ocasiones no será necesario terminarlo pero hay que prever la situación más compleja, sin obsesionarnos por esta cuestión.
      Hay muchísimas estrategias, únicamente se trata de que cada uno nos cuente la suya.

  11. Hola. Siento no haber participado en los debates de este desafío, ni tampoco voy a poder participar en la solución. Se me ha complicado imprevisiblemente la semana en el trabajo (sigo a estas horas).

    Solo me dio tiempo a probar sin éxito el simulador de SPZ. Tras 29 intentos sin acertar no se que metí que lo hice cascar. Pensaba hacer un programa que simulara los dos jugadores, a ver que salía, pero me he quedado en eso, en pensar en hacerlo.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s