GeeksforGeeks

a maioria dos geeks de um fundo CS (Ciência da Computação), pense em seu primeiro projeto depois de fazer uma linguagem de programação. Aqui, você terá seu primeiro projeto e o básico, neste artigo.

tarefa: abaixo estão os passos:

  • crie um jogo de adivinhar números, no qual o utilizador selecciona um intervalo.
  • digamos que o usuário selecionou um intervalo, ou seja, de A A B, onde A e B pertencem ao inteiro.
  • Alguns inteiro aleatório serão seleccionados pelo sistema e o usuário tem que adivinhar que número inteiro no número mínimo de tentativas

Análise:

Explicação 1: Se o Usuário insere intervalo, digamos de 1 a 100. E o compilador selecionou aleatoriamente 42 como o inteiro. E agora o jogo de adivinhação começou, então o usuário entrou 50 como seu primeiro palpite. O compilador mostra “tente novamente! Você adivinhou alto demais”. Isso significa que o número aleatório (isto é, 42) não cai no intervalo de 50 a 100. Essa é a importância de adivinhar metade da escala. E novamente, o usuário adivinha metade de 50 (Você poderia me dizer por quê?). Então a metade de 50 é 25. O usuário entra 25 como seu segundo palpite. Desta vez o compilador vai mostrar: “tente novamente! Você adivinhou muito pequeno”. Isso significa que os inteiros menos de 25 (de 1 a 25) são inúteis para serem adivinhados. Agora o intervalo para o usuário adivinhar é mais curto, ou seja, de 25 a 50. Inteligentemente! O usuário adivinhou metade deste intervalo, de modo que, o usuário adivinhou 37 como seu terceiro palpite. Desta vez novamente o compilador mostra a saída, ” tente novamente! Você adivinhou muito pequeno”. Para o usuário, o intervalo de adivinhação está ficando menor por cada palpite. Agora, o intervalo de suposição para o Usuário é de 37 a 50, para o qual o usuário adivinhou 43 como seu quarto palpite. Desta vez o compilador irá mostrar uma saída ” tente novamente! Você adivinhou alto demais”. Então, o novo intervalo de suposição para usuários será de 37 a 43, novamente para o qual o usuário adivinhou a metade deste intervalo, ou seja, 40 como seu quinto palpite. Desta vez o compilador mostra a saída, “tente novamente! Você adivinhou muito pequeno”. Deixando o palpite ainda menor, tal que de 41 a 43. E agora o usuário adivinhou 41 como seu sexto palpite. O que está errado e mostra a saída “tente de novo! Você adivinhou muito pequeno”. E finalmente, o Usuário adivinhou o número certo que é 42 como seu sétimo palpite.

número Total de suposições = 7

explicação 2: Se as entradas do utilizador variam, digamos de 1 a 50. E o compilador selecionou aleatoriamente 42 como o inteiro. E agora começou o jogo das adivinhas. Então a metade de 50 é 25. O usuário entra 25 como seu primeiro palpite. Desta vez o compilador vai mostrar: “tente novamente! Você adivinhou muito pequeno”. Isso significa que os inteiros menos de 25 (de 1 a 25) são inúteis para serem adivinhados. Agora o intervalo para o usuário adivinhar é mais curto, ou seja, de 25 a 50. Inteligentemente! O usuário adivinhou metade deste intervalo, de modo que, o usuário adivinhou 37 como seu segundo palpite. Desta vez novamente o compilador mostra a saída, ” tente novamente! Você adivinhou muito pequeno”. Para o usuário, o intervalo de adivinhação está ficando menor por cada palpite. Agora, o intervalo de suposição para o Usuário é de 37 a 50, para o qual o usuário adivinhou 43 como seu terceiro palpite. Desta vez o compilador irá mostrar uma saída ” tente novamente! Você adivinhou alto demais”. Então, o novo intervalo de suposição para usuários será de 37 a 43, novamente para o qual o usuário adivinhou a metade deste intervalo, ou seja, 40 como seu quarto palpite. Desta vez o compilador mostra a saída, “tente novamente! Você adivinhou muito pequeno”. Deixando o palpite ainda menor, tal que de 41 a 43. E agora o usuário adivinhou 41 como seu quinto palpite. O que está errado e mostra a saída “tente de novo! Você adivinhou muito pequeno”. E finalmente, o Usuário adivinhou o número certo que é 42 como seu sexto palpite.

número Total de suposições = 6

assim, o número mínimo de suposições depende da Gama. E o compilador deve calcular o número mínimo de suposições depende do intervalo, por si só. Para isso, temos uma fórmula:-

número Mínimo de adivinhação = log2(limite Superior – limite inferior + 1)

Algoritmo: Abaixo estão os Passos:

  • as entradas do Usuário o limite inferior e o limite superior do intervalo.
  • o compilador gera um inteiro aleatório entre a gama e armazená-lo em uma variável para futuras referências.
  • para suposições repetitivas, um laço while será inicializado.
  • se o usuário adivinhou um número que é maior do que um número selecionado aleatoriamente, o usuário recebe uma saída “tente novamente! Você adivinhou muito alto ”
  • senão se o usuário adivinhou um número que é menor que um número selecionado aleatoriamente, o usuário recebe uma saída “tente novamente! Você adivinhou muito pequeno ”
  • e se o usuário adivinhou em um número mínimo de suposições, o usuário recebe um “parabéns! ” Saida.
  • senão se o Usuário não adivinhar o número inteiro no número mínimo de suposições, ele / ela vai ter ” melhor sorte da próxima vez!” saida.

abaixo está a implementação do algoritmo:

Python3

import random
import math
lower = int(input("Enter Lower bound:- "))
upper = int(input("Enter Upper bound:- "))
x = random.randint(lower, upper)
print("\n\tYou've only ",
round(math.log(upper - lower + 1, 2)),
" chances to guess the integer!\n")
count = 0
while count < math.log(upper - lower + 1, 2):
count += 1
guess = int(input("Guess a number:- "))
if x == guess:
print("Congratulations you did it in ",
count, " try")
break
elif x > guess:
print("You guessed too small!")
elif x < guess:
print("You Guessed too high!")
if count >= math.log(upper - lower + 1, 2):
print("\nThe number is %d" % x)
print("\tBetter Luck Next time!")



C

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
int number, guess, nguesses=1;
srand(time(0));
number = rand()%100 + 1;
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;
}



SAÍDA: Abaixo está a saída do Programa acima

De SAÍDA PARA O JOGO de ADIVINHAÇÃO

Artigo Tags :