GeeksforGeeks
La maggior parte dei geek da un CS (Informatica) sfondo, pensare al loro primo progetto dopo aver fatto un linguaggio di programmazione. Qui, otterrai il tuo primo progetto e quello di base, in questo articolo.
Attività: di seguito sono riportati i passaggi:
- Costruire un numero indovinando gioco, in cui l’utente seleziona un intervallo.
- Diciamo che l’utente ha selezionato un intervallo, cioè da A a B, dove A e B appartengono a Integer.
- Alcuni interi casuali saranno selezionati dal sistema e l’utente deve indovinare quel numero intero nel numero minimo di ipotesi
Analisi:
Spiegazione 1: Se l’utente immette intervallo, diciamo da 1 a 100. E il compilatore ha selezionato casualmente 42 come numero intero. E ora è iniziato il gioco di ipotesi, quindi l’utente ha inserito 50 come prima ipotesi. Il compilatore mostra ” Riprova! Hai indovinato troppo alto”. Questo significa che il numero casuale (cioè 42) non rientra nell’intervallo da 50 a 100. Questa è l’importanza di indovinare metà della gamma. E ancora, l’utente indovina la metà di 50 (Potresti dirmi perché?). Quindi la metà di 50 fa 25. L’utente inserisce 25 come sua seconda ipotesi. Questa volta compilatore mostrerà, ” Riprova! Hai indovinato troppo piccolo”. Questo significa che gli interi inferiori a 25 (da 1 a 25) sono inutili da indovinare. Ora l’intervallo per l’ipotesi dell’utente è più breve, cioè da 25 a 50. Intelligente! L’utente ha indovinato la metà di questo intervallo, in modo che l’utente abbia indovinato 37 come terza ipotesi. Anche questa volta il compilatore mostra l’output, ” Riprova! Hai indovinato troppo piccolo”. Per l’utente, l’intervallo di ipotesi si riduce di ogni ipotesi. Ora, l’intervallo di ipotesi per l’utente va da 37 a 50, per il quale l’utente ha indovinato 43 come quarta ipotesi. Questa volta il compilatore mostrerà un output ” Riprova! Hai indovinato troppo alto”. Quindi, la nuova gamma di ipotesi per gli utenti sarà da 37 a 43, di nuovo per la quale l’utente ha indovinato la metà di questo intervallo, cioè 40 come quinta ipotesi. Questa volta il compilatore mostra l’output, ” Riprova! Hai indovinato troppo piccolo”. Lasciando l’ipotesi ancora più piccola tale che da 41 a 43. E ora l’utente ha indovinato 41 come la sua sesta ipotesi. Che è sbagliato e mostra l’output ” Riprova! Hai indovinato troppo piccolo”. E infine, l’utente ha indovinato il numero giusto che è 42 come la sua settima ipotesi.
Numero totale di ipotesi = 7
Spiegazione 2: Se gli input dell’utente variano, diciamo da 1 a 50. E il compilatore ha selezionato casualmente 42 come numero intero. E ora è iniziato il gioco di indovinelli. Quindi la metà di 50 fa 25. L’utente inserisce 25 come sua prima ipotesi. Questa volta compilatore mostrerà, ” Riprova! Hai indovinato troppo piccolo”. Questo significa che gli interi inferiori a 25 (da 1 a 25) sono inutili da indovinare. Ora l’intervallo per l’ipotesi dell’utente è più breve, cioè da 25 a 50. Intelligente! L’utente ha indovinato la metà di questo intervallo, in modo che l’utente abbia indovinato 37 come seconda ipotesi. Anche questa volta il compilatore mostra l’output, ” Riprova! Hai indovinato troppo piccolo”. Per l’utente, l’intervallo di ipotesi si riduce di ogni ipotesi. Ora, l’intervallo di ipotesi per l’utente va da 37 a 50, per il quale l’utente ha indovinato 43 come terza ipotesi. Questa volta il compilatore mostrerà un output ” Riprova! Hai indovinato troppo alto”. Quindi, la nuova gamma di ipotesi per gli utenti sarà da 37 a 43, di nuovo per la quale l’utente ha indovinato la metà di questo intervallo, cioè 40 come quarta ipotesi. Questa volta il compilatore mostra l’output, ” Riprova! Hai indovinato troppo piccolo”. Lasciando l’ipotesi ancora più piccola tale che da 41 a 43. E ora l’utente ha indovinato 41 come la sua quinta ipotesi. Che è sbagliato e mostra l’output ” Riprova! Hai indovinato troppo piccolo”. E infine, l’utente ha indovinato il numero giusto che è 42 come la sua sesta ipotesi.
Numero totale di ipotesi = 6
Quindi, il numero minimo di ipotesi dipende dall’intervallo. E il compilatore deve calcolare il numero minimo di ipotesi dipende dall’intervallo, da solo. Per questo, abbiamo una formula:-
Numero minimo di indovinare = log2 (limite superiore-limite inferiore+ 1)
Algoritmo: Di seguito sono riportati i passaggi:
- L’utente inserisce il limite inferiore e il limite superiore dell’intervallo.
- Il compilatore genera un numero intero casuale tra l’intervallo e lo memorizza in una variabile per riferimenti futuri.
- Per ipotesi ripetitive, verrà inizializzato un ciclo while.
- Se l’utente indovina un numero maggiore di un numero selezionato casualmente, l’utente ottiene un output ” Riprova! Hai indovinato troppo alto “
- Altrimenti Se l’utente indovina un numero che è più piccolo di un numero selezionato casualmente, l’utente ottiene un output ” Riprova! Hai indovinato troppo piccolo “
- E se l’utente indovina un numero minimo di ipotesi, l’utente ottiene un ” Congratulazioni! ” Uscita.
- Altrimenti se l’utente non indovina il numero intero nel numero minimo di ipotesi, otterrà ” Migliore fortuna La prossima volta!” uscita.
Di seguito è riportata l’implementazione dell’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;
}
USCITA: di Seguito l’output del Programma di cui sopra
USCITA PER L’indovinello