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