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:
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!"
)
#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