Dados los números, del 1 al 1000, ¿cuál es el número máximo de conjeturas (siguiendo una estrategia de conjetura óptima) necesaria para encontrar un número específico si se le da la pista “más alto” o “más bajo” para cada suposición que haga?

Esto se llama búsqueda binaria, http://en.wikipedia.org/wiki/Bin…

Dado un intervalo [a, b], su conjetura debe ser el elemento central, es decir, [matemática] \ frac {(a + b)} {2} [/ matemática] en cada paso. Si su suposición es correcta, ¡genial! De lo contrario, debe ajustar sus límites de su intervalo actual. Si ese número específico es “mayor”, su nuevo intervalo será [matemático] [\ frac {(a + b)} {2} + 1, b] [/ matemático]. Del mismo modo, si es “más bajo”, entonces su nuevo intervalo será [matemáticas] [a, \ frac {(a + b)} {2} – 1] [/ matemáticas]. Seguirás adivinando hasta que el límite inferior sea mayor que el límite superior, en otras palabras, hasta que tu intervalo se colapse. Si aún no puede encontrar la solución, ¡la persona que le hizo esta pregunta es una trampa!

Por ejemplo, su intervalo inicial es [1,1000] y su primera suposición será 500. Luego suponga que se le da la pista “más alto”, entonces su nuevo intervalo será [501, 1000] y su próxima suposición debería ser 750. Del mismo modo, si la pista era “más baja” que su intervalo, sería [1,499] y su próxima suposición sería 250.

Esto garantiza que, en el peor de los casos, podrá encontrar la solución en [math] \ log_2 {n} [/ math] pasos donde [math] n [/ math] es la duración de su intervalo inicial. En nuestro ejemplo, necesita un máximo de [matemáticas] log_2 {1000} \ aproximadamente 10 [/ matemáticas] conjeturas para encontrar la respuesta correcta. En el logaritmo, la base 2 proviene de la “división” que hacemos. En cada paso, eliminamos la mitad de las posibilidades.

Este problema se puede resolver utilizando el algoritmo de búsqueda binaria.

Para un intervalo [matemático] [a, b] [/ matemático], el método eficiente para buscar un número en un pequeño número de conjeturas para encontrar un número es la búsqueda binaria.

Sin embargo, dado que solo desea la cantidad de conjeturas, y no el algoritmo completo, la cantidad de conjeturas es [matemática] log_2 (b) = log_2 (1000) = 10 [/ matemática].

No escribiré el código y solo daré la idea de resolver.
Si obtiene los n números del usuario, intente guardarlos en un índice de matriz [max_size_of_input] = {0} con todos los valores asignados a 0. Y para aquellos índices correspondientes a los números incremente su valor en 1. Y para verificar si un número dado está presente o no, simplemente verifique si el valor correspondiente al índice es> 0 o == 0. Este método funciona en tiempo constante con la complejidad temporal de O (1). El más rápido de usar.

More Interesting

En términos simples, ¿cómo es posible la paradoja de Banach-Tarski?

¿Cuál es la mejor fórmula matemática de la historia?

¿Cuál es el "teorema de imposibilidad de la flecha" en términos simples y cuál es su importancia práctica?

Cómo usar el símbolo e en mi calculadora para encontrar el valor final de triplicar exponencialmente mi valor inicial

Cómo hacerlo bien en matemáticas universitarias

Cómo resolver [matemáticas] \ left ({3x + 1} \ right) \ cdot \ left ({{3 ^ {x - 1}}} \ right) = x [/ math]

¿Cuál es la diferencia o relación entre el corte y la relación de aspecto?

¿Existe una función matemática en la que pueda tomar 2 números, como 2 y 3, y hacer que la respuesta sea los números en sucesión? Por ejemplo, si usara los números 2 y 3, sería 23, y 4 y 6 serían 46.

¿Es posible tener una probabilidad compleja o imaginaria? Si es así, ¿qué implicaría eso?

Explicaciones del laico: ¿Cuál es el fundamento de la lógica?

¿Existe una función continua no constante [matemática] f (x) [/ matemática] definida en todos los no matemáticos [matemática] x [/ matemática] tal que [matemática] f (x) = f (x-1) + f (x-2) [/ math] para todos [math] x \ geq 2 [/ math]? Si es así, ¿cómo podría construirlo?

¿Cuáles son algunos ejemplos de problemas matemáticos engañosamente simples?

¿Qué se entiende por función Clausen?

¿Qué sucederá si el jugador sacude la bola negra durante el primer corto / descanso con o sin otra bola que no sea el delantero en el juego de billar o el billar?

¿Cómo podemos resolver la relación de recurrencia: [math] a_n \ in \ mathbb {C}: [/ math] [math] a_ {n + 1} = a_n ^ 2-n [/ math]?