GeeksforGeeks

de meeste geeks uit een CS (Computer Science) achtergrond, denken aan hun allereerste project na het doen van een programmeertaal. Hier krijgt u uw allereerste project en de basis, in dit artikel.

taak: hieronder staan de stappen:

  • Bouw een nummer raden spel, waarin de gebruiker een bereik selecteert.
  • laten we zeggen dat de gebruiker een bereik heeft geselecteerd, dat wil zeggen van A tot B, waar A en B tot een geheel getal behoren.
  • een willekeurig geheel getal zal door het systeem worden geselecteerd en de gebruiker moet dat geheel getal raden in het minimum aantal gissingen

analyse:

uitleg 1: als de input van de gebruiker varieert, laten we zeggen van 1 tot 100. En compiler willekeurig gekozen 42 als het geheel getal. En nu begon het gokspel, dus de gebruiker ging 50 in als zijn/haar eerste gok. De compiler toont ” probeer het opnieuw! Je raadt te hoog”. Dat betekent dat het willekeurige getal (dat wil zeggen, 42) niet valt in het bereik van 50 tot 100. Dat is het belang om de helft van het bereik te raden. En nogmaals, de gebruiker raadt de helft van 50 (kunt u mij vertellen waarom?). Dus de helft van 50 is 25. De gebruiker voert 25 in als zijn / haar tweede gok. Deze keer compiler zal laten zien, ” probeer opnieuw! Je raadt te klein”. Dat betekent dat de gehele getallen kleiner dan 25 (van 1 tot 25) nutteloos zijn om te raden. Nu is het bereik voor gebruiker gissen korter, dat wil zeggen, van 25 tot 50. Intelligent! De gebruiker raadt de helft van deze range, zodat de gebruiker 37 als zijn/haar derde gok heeft geraden. Deze keer toont de compiler weer de uitvoer, ” probeer het opnieuw! Je raadt te klein”. Voor de gebruiker, het raden bereik wordt steeds kleiner door elke gok. Nu, het gissen bereik voor de gebruiker is van 37 tot 50, waarvoor de gebruiker geraden 43 als zijn / haar vierde gok. Deze keer zal de compiler een uitvoer tonen “probeer het opnieuw! Je raadt te hoog”. Dus, de nieuwe raden range voor gebruikers zal van 37 tot 43, opnieuw waarvoor de gebruiker geraden de helft van dit bereik, dat wil zeggen, 40 als zijn/haar vijfde gok. Deze keer toont de compiler de uitvoer, ” probeer het opnieuw! Je raadt te klein”. Het verlaten van de gok nog kleiner, zodat van 41 naar 43. En nu raadde de gebruiker 41 als zijn / haar zesde gok. Dat is verkeerd en toont output ” probeer het opnieuw! Je raadt te klein”. En tot slot, de gebruiker geraden het juiste nummer dat is 42 als zijn / haar zevende gok.

totaal aantal gissingen = 7

uitleg 2: als de input van de gebruiker varieert, laten we zeggen van 1 tot 50. En compiler willekeurig gekozen 42 als het geheel getal. En nu is het raadspel begonnen. Dus de helft van 50 is 25. De gebruiker voert 25 in als zijn / haar eerste gok. Deze keer compiler zal laten zien, ” probeer opnieuw! Je raadt te klein”. Dat betekent dat de gehele getallen kleiner dan 25 (van 1 tot 25) nutteloos zijn om te raden. Nu is het bereik voor gebruiker gissen korter, dat wil zeggen, van 25 tot 50. Intelligent! Gebruiker raadde de helft van dit bereik, zodat, gebruiker raadde 37 als zijn/haar tweede gok. Deze keer toont de compiler weer de uitvoer, ” probeer het opnieuw! Je raadt te klein”. Voor de gebruiker, het raden bereik wordt steeds kleiner door elke gok. Nu, het gissen bereik voor de gebruiker is van 37 tot 50, waarvoor de gebruiker geraden 43 als zijn / haar derde gok. Deze keer zal de compiler een uitvoer tonen “probeer het opnieuw! Je raadt te hoog”. Dus, de nieuwe raden range voor gebruikers zal van 37 tot 43, opnieuw waarvoor de gebruiker geraden de helft van dit bereik, dat wil zeggen, 40 als zijn/haar vierde gok. Deze keer toont de compiler de uitvoer, ” probeer het opnieuw! Je raadt te klein”. Het verlaten van de gok nog kleiner, zodat van 41 naar 43. En nu raadt de gebruiker 41 als zijn / haar vijfde gok. Dat is verkeerd en toont output ” probeer het opnieuw! Je raadt te klein”. En tot slot, de gebruiker geraden het juiste nummer dat is 42 als zijn / haar zesde gok.

totaal aantal gissingen = 6

dus, het minimumaantal gissingen hangt af van het bereik. En de compiler moet het minimum aantal raden berekenen hangt af van het bereik, op zijn eigen. Hiervoor hebben we een formule:-

minimumaantal gissen = log2 (bovengrens-ondergrens – + 1)

algoritme: hieronder zijn de stappen:

  • gebruiker voert de onder-en bovengrens van het bereik in.
  • de compiler genereert een willekeurig geheel getal tussen het bereik en slaat het op in een variabele voor toekomstige referenties.
  • voor repetitief gissen zal een while lus worden geïnitialiseerd.
  • als de gebruiker een getal raadt dat groter is dan een willekeurig geselecteerd getal, krijgt de gebruiker een uitvoer ” probeer het opnieuw! U raadt te hoog”
  • anders als de gebruiker een getal raadt dat kleiner is dan een willekeurig geselecteerd getal, krijgt de gebruiker een uitvoer ” probeer het opnieuw! U raadt te klein “
  • en als de gebruiker raadt in een minimum aantal raden, krijgt de gebruiker een ” Gefeliciteerd! ” Output.
  • anders als de gebruiker het gehele getal niet raadt in het minimum aantal gissingen, zal hij/zij “meer geluk krijgen de volgende keer!” output.

Hieronder is de implementatie van het algoritme:

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



OUTPUT: Hieronder is de uitvoer van de bovenstaande Programma

UITGANG VOOR HET raadspel

Artikel Tags :