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:

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;
}



USCITA: di Seguito l’output del Programma di cui sopra

USCITA PER L’indovinello

Tag Articolo :