¿Cómo adivinas el número de alguien sin preguntar?

Supongo que quiere decir “sin preguntar cuál es realmente el número”, y puede hacer una serie de preguntas hasta llegar a la respuesta correcta.

Si responden con “sí” o “no”, entonces su única opción es enumerarlos a todos. Comience desde 0 y continúe hacia arriba.

Si su número es X, entonces tomará X + 1 conjeturas.

Si responden “sí”, “más alto” y “más bajo”, haga lo siguiente:

  1. Adivina un número N.
  2. Si dicen “sí”, tú ganas.
  3. Si dicen “más alto”, entonces continúe adivinando números más altos hasta que digan “sí”, en cuyo caso ya terminó, o “más bajo”, en cuyo caso llame a ese número M. (Haga lo contrario si dicen “más bajo” inicialmente.)
  4. Ahora sabe que su número está entre N y M. Busque el medio, llámelo Q. Adivine Q. Si dicen “más alto”, entonces deje N = Q. Si dicen “más bajo”, entonces deje M = Q. Si ellos diga “sí”, ya está.
  5. Repita el paso 4 hasta que digan “sí”. M y N coinciden, entonces o están mintiendo, o hiciste mal tus cálculos.

Si su número es X, se necesitarán aproximadamente log (X) / log (2) conjeturas. Esto se llama “bisección” o “búsqueda binaria”, de la misma manera que encuentras algo en una guía telefónica grande.