GeeksforGeeks
a legtöbb geeks egy CS (Computer Science) háttér, gondolom, hogy a legelső projekt után csinál egy programozási nyelv. Itt lesz a legelső projekt, és az alapvető Egy, ebben a cikkben.
feladat: az alábbiakban a lépések:
- építsen egy szám kitaláló játékot, amelyben a felhasználó kiválaszt egy tartományt.
- tegyük fel, hogy a felhasználó kiválasztott egy tartományt, azaz A-tól B-ig, ahol A és B az egész számhoz tartozik.
- néhány véletlen egész lesz kiválasztva a rendszer, és a felhasználó kitalálni, hogy egész a minimális számú találgatások
elemzés:
magyarázat 1: Ha a felhasználó bemenetek tartomány, mondjuk 1-100. És fordító véletlenszerűen kiválasztott 42, mint az egész szám. Most pedig elindult a találgatás, így a felhasználó 50-et adott meg első tippként. A fordító azt mutatja: “próbáld újra! Túl magasra tippeltél”. Ez azt jelenti, hogy a véletlen szám (azaz 42) nem esik az 50-től 100-ig terjedő tartományba. Ezért fontos kitalálni a tartomány felét. Ismét a felhasználó kitalálja az 50 felét (meg tudná mondani, MIÉRT?). Tehát az 50 fele 25. A felhasználó a 25-öt adja meg második tippként. Ezúttal fordító megmutatja, ” próbálja újra! Túl kicsire tippeltél”. Ez azt jelenti, hogy a 25-nél kisebb egész számok (1-től 25-ig) haszontalanok. Most a felhasználói találgatás tartománya rövidebb, azaz 25-50. Intelligensen! A felhasználó kitalálta ennek a tartománynak a felét, így a felhasználó 37-et sejtett harmadik találgatásként. Ezúttal a fordító megmutatja a kimenetet: “próbáld újra! Túl kicsire tippeltél”. A felhasználó számára a találgatási tartomány minden egyes találgatással egyre kisebb. Most, a találgatás tartomány felhasználó 37-50, amelyre a felhasználó kitalálta 43, mint a / A negyedik találgatás. Ezúttal a fordító megjeleníti a kimenetet: “próbáld újra! Túl magasra tippeltél”. Tehát az új találgatási tartomány a felhasználók számára 37-től 43-ig terjed, amelyre ismét a felhasználó kitalálta ennek a tartománynak a felét, azaz 40-et ötödik találgatásaként. Ezúttal a fordító megmutatja a kimenetet: “próbáld újra! Túl kicsire tippeltél”. Így a találgatás még kisebb, hogy 41-43. Most pedig a felhasználó 41-et sejtett hatodik tippjeként. Ami rossz, és azt mutatja, kimenet “próbálja újra! Túl kicsire tippeltél”. Végül a felhasználó kitalálta a megfelelő számot, amely 42, mint a hetedik tippje.
összes találgatások száma = 7
magyarázat 2: Ha a felhasználói bemenetek tartománya, mondjuk 1-től 50-ig. És fordító véletlenszerűen kiválasztott 42, mint az egész szám. És most elkezdődött a találgatás. Tehát az 50 fele 25. A felhasználó 25-öt ír be első tippként. Ezúttal fordító megmutatja, ” próbálja újra! Túl kicsire tippeltél”. Ez azt jelenti, hogy a 25-nél kisebb egész számok (1-től 25-ig) haszontalanok. Most a felhasználói találgatás tartománya rövidebb, azaz 25-50. Intelligensen! A felhasználó kitalálta ennek a tartománynak a felét, így a felhasználó 37-et sejtett második találgatásként. Ezúttal a fordító megmutatja a kimenetet: “próbáld újra! Túl kicsire tippeltél”. A felhasználó számára a találgatási tartomány minden egyes találgatással egyre kisebb. Most, a találgatás tartomány felhasználó 37-50, amelyre a felhasználó kitalálta 43, mint a / A harmadik találgatás. Ezúttal a fordító megjeleníti a kimenetet: “próbáld újra! Túl magasra tippeltél”. Tehát az új találgatási tartomány a felhasználók számára 37-től 43-ig terjed, amelyre ismét a felhasználó kitalálta ennek a tartománynak a felét, azaz 40-et negyedik találgatásaként. Ezúttal a fordító megmutatja a kimenetet: “próbáld újra! Túl kicsire tippeltél”. Így a találgatás még kisebb, hogy 41-43. És most a felhasználó kitalálta a 41-et, mint ötödik tippjét. Ami rossz, és azt mutatja, kimenet “próbálja újra! Túl kicsire tippeltél”. Végül a felhasználó kitalálta a megfelelő számot, amely 42, mint hatodik tippje.
összes találgatások száma = 6
tehát a találgatások minimális száma a tartománytól függ. És a fordító kell számítani a minimális számú találgatás függ a tartomány, a saját. Ehhez van egy képlet:-
a találgatás minimális száma = log2 (felső határ-alsó határ + 1)
algoritmus: az alábbiakban bemutatjuk a lépéseket:
- a Felhasználó megadja a tartomány alsó és felső határát.
- a fordító véletlenszerű egész számot generál a tartomány között, és egy változóban tárolja a jövőbeni hivatkozásokhoz.
- az ismétlődő találgatáshoz egy while hurok inicializálódik.
- ha a felhasználó kitalálta a számot, amely nagyobb, mint egy véletlenszerűen kiválasztott szám, a felhasználó kap egy kimenetet ” próbálja újra! Kitalálta túl magas “
- Else ha a felhasználó kitalálta egy számot, amely kisebb, mint egy véletlenszerűen kiválasztott szám, a felhasználó kap egy kimenetet ” próbálja újra! Kitalálta túl kicsi ”
- és ha a felhasználó kitalálta a minimális számú találgatások, a felhasználó kap egy “gratulálok! “Kimenet.
- különben, ha a felhasználó nem találta ki az egész számot a találgatások minimális számában, akkor “jobb szerencsét fog kapni legközelebb!”kimenet.
az alábbiakban az algoritmus végrehajtása látható:
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; }
kimenet: az alábbiakban a fenti Program kimenete látható
kimenet a találgatásokra