La mayoría de los geeks con experiencia en informática ( Ciencias de la computación ), piensan en su primer proyecto después de hacer un lenguaje de programación. Aquí, obtendrá su primer proyecto y el básico, en este artículo.
Tarea: A continuación se muestran los pasos:
- Cree un juego de adivinanzas de números, en el que el usuario seleccione un rango.
- Digamos que el usuario seleccionó un rango, es decir, de A a B , donde A y B pertenecen a Integer.
- El sistema seleccionará algún número entero aleatorio y el usuario tiene que adivinar ese número entero en el número mínimo de conjeturas
Análisis:
Explicación 1 : si el rango de entradas del usuario, digamos de 1 a 100. Y el compilador seleccionó aleatoriamente 42 como el número entero. Y ahora comenzó el juego de adivinanzas, por lo que el usuario ingresó 50 como su primera suposición . El compilador muestra “¡Inténtalo de nuevo! Has adivinado demasiado”. Eso significa que el número aleatorio (es decir, 42) no cae en el rango de 50 a 100. Esa es la importancia de adivinar la mitad del rango. Y nuevamente, el usuario adivina la mitad de 50 (¿Podría decirme por qué?). Entonces, la mitad de 50 es 25. El usuario ingresa 25 como su segunda suposición .. Esta vez, el compilador mostrará: “¡Inténtalo de nuevo! Adivinaste demasiado pequeño”. Eso significa que los números enteros menores de 25 (del 1 al 25) son inútiles para ser adivinados. Ahora el rango de adivinanzas del usuario es más corto, es decir, de 25 a 50. ¡Inteligentemente! El usuario adivinó la mitad de este rango, por lo que el usuario adivinó 37 como su tercer intento . Esta vez de nuevo, el compilador muestra el resultado, “¡Inténtalo de nuevo! Adivinaste demasiado pequeño”. Para el usuario, el rango de adivinanzas se hace más pequeño con cada intento. Ahora, el rango de adivinanzas para el usuario es de 37 a 50, para el cual el usuario adivinó 43 como su cuarta suposición . Esta vez, el compilador mostrará una salida “¡Inténtalo de nuevo! Has adivinado demasiado”. Entonces, el nuevo rango de adivinanzas para los usuarios será de 37 a 43, nuevamente para el cual el usuario adivinó la mitad de este rango, es decir, 40 como suquinta conjetura . Esta vez, el compilador muestra el resultado: “¡Inténtalo de nuevo! Adivinaste demasiado pequeño”. Dejando la suposición aún más pequeña, de 41 a 43. Y ahora el usuario adivinó 41 como su sexta suposición . Lo cual está mal y muestra el resultado “¡Inténtalo de nuevo! Adivinaste demasiado pequeño”. Y finalmente, el usuario adivinó el número correcto que es 42 como su séptima conjetura .
Número total de conjeturas = 7
Explicación 2 : si el rango de entradas del usuario, digamos de 1 a 50. Y el compilador seleccionó aleatoriamente 42 como el número entero. Y ahora comenzó el juego de adivinanzas. Entonces, la mitad de 50 es 25. El usuario ingresa 25 como su primera suposición . Esta vez, el compilador mostrará: “¡Inténtalo de nuevo! Adivinaste demasiado pequeño”. Eso significa que los números enteros menores de 25 (del 1 al 25) son inútiles para ser adivinados. Ahora el rango de adivinanzas del usuario es más corto, es decir, de 25 a 50. ¡Inteligentemente! El usuario adivinó la mitad de este rango, por lo que el usuario adivinó 37 como su segunda suposición . Esta vez de nuevo, el compilador muestra el resultado, “¡Inténtalo de nuevo! Adivinaste demasiado pequeño”. Para el usuario, el rango de adivinanzas se hace más pequeño con cada intento. Ahora, el rango de adivinanzas para el usuario es de 37 a 50, para el cual el usuario adivinó 43 como sutercera conjetura . Esta vez, el compilador mostrará una salida “¡Inténtalo de nuevo! Has adivinado demasiado”. Entonces, el nuevo rango de adivinanzas para los usuarios será de 37 a 43, nuevamente para el cual el usuario adivinó la mitad de este rango, es decir, 40 como su cuarto intento . Esta vez, el compilador muestra el resultado: “¡Inténtalo de nuevo! Adivinaste demasiado pequeño”. Dejando la suposición aún más pequeña, de 41 a 43. Y ahora el usuario adivinó 41 como su quinta suposición. Lo cual está mal y muestra el resultado “¡Inténtalo de nuevo! Adivinaste demasiado pequeño”. Y finalmente, el usuario adivinó el número correcto que es 42 como su sexto intento.
Número total de conjeturas = 6
Por lo tanto, el número mínimo de conjeturas depende del rango. Y el compilador debe calcular el número mínimo de conjeturas que depende del rango, por sí solo. Para esto, tenemos una fórmula: –
Número mínimo de adivinanzas = log 2 (Límite superior – límite inferior + 1)
Algoritmo : A continuación se muestran los pasos:
- El usuario ingresa el límite inferior y el límite superior del rango.
- El compilador genera un número entero aleatorio entre el rango y lo almacena en una variable para futuras referencias.
- Para adivinanzas repetitivas, se inicializará un bucle while.
- Si el usuario adivinó un número que es mayor que un número seleccionado al azar, el usuario obtiene un resultado » ¡Intentar de nuevo! Adivinaste demasiado alto ”
- De lo contrario, si el usuario adivinó un número que es más pequeño que un número seleccionado al azar, el usuario obtiene un resultado » ¡Intentar de nuevo! » Adivinaste demasiado pequeño”
- Y si el usuario acertó en un número mínimo de intentos, el usuario recibe un “ ¡Felicitaciones! » Producción.
- De lo contrario, si el usuario no acertó el número entero en el número mínimo de intentos, obtendrá “¡ Mejor suerte la próxima vez! » producción.
A continuación se muestra la implementación del algoritmo:
Python3
import random import math # Taking Inputs lower = int(input("Enter Lower bound:- ")) # Taking Inputs upper = int(input("Enter Upper bound:- ")) # generating random number between # the lower and upper x = random.randint(lower, upper) print("\n\tYou've only ", round(math.log(upper - lower + 1, 2)), " chances to guess the integer!\n") # Initializing the number of guesses. count = 0 # for calculation of minimum number of # guesses depends upon range while count < math.log(upper - lower + 1, 2): count += 1 # taking guessing number as input guess = int(input("Guess a number:- ")) # Condition testing if x == guess: print("Congratulations you did it in ", count, " try") # Once guessed, loop will break break elif x > guess: print("You guessed too small!") elif x < guess: print("You Guessed too high!") # If Guessing is more than required guesses, # shows this output. if count >= math.log(upper - lower + 1, 2): print("\nThe number is %d" % x) print("\tBetter Luck Next time!") # Better to use This source Code on pycharm!
C
#include<stdio.h> #include<stdlib.h> #include<time.h> int main() { int number, guess, nguesses=1; srand(time(0)); // Generates a random number between 1 and 100 number = rand()%100 + 1; // printf("The number is %d\n", number); // Keep running the loop // until the number is guessed do { printf("Guess the number between 1 to 100\n"); scanf("%d", &guess); if(guess>number) { printf("you guessed to high\n"); } else if(guess<number) { printf("you guessed too low\n"); } else { printf("You guessed the correct number"); printf("attempts : %d\n", nguesses); } nguesses++; } while(guess!=number); return 0; } // this code is provided by harsh sinha username- harshsinha03
SALIDA: a continuación se muestra la salida del programa anterior
Publicación traducida automáticamente
Artículo escrito por kashyapsindhav2795 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA