GeeksforGeeks

Většina mágů z CS (Computer Science) na pozadí, myslím, že jejich první projekt poté, co Programovací Jazyk. Zde získáte svůj první a základní projekt v tomto článku.

Úkol: Níže jsou kroky:

  • Build Číslo hádat hra, ve které uživatel vybere rozsah.
  • Řekněme, že uživatel vybral rozsah, tj. od A do B, kde A A B patří Celočíselnému číslu.
  • Nějaké náhodné číslo, bude vybrán systému a uživatel má uhodnout, které číslo v minimálním počtu pokusů

Analýza:

Vysvětlení 1: Pokud Uživatel zadá rozsah, řekněme od 1 do 100. A kompilátor náhodně vybrán 42 jako celé číslo. A teď hádání hra začala, takže uživatel zadal 50 jako jeho / její první odhad. Kompilátor zobrazuje “ zkuste to znovu! Uhodli jste příliš vysoko“. To znamená, že náhodné číslo (tj. 42) neklesá v rozmezí od 50 do 100. To je důležité hádat polovinu rozsahu. A opět uživatel hádá polovinu 50 (Mohl byste mi říct proč?). Takže polovina 50 je 25. Uživatel zadá 25 jako svůj druhý odhad. Tentokrát kompilátor ukáže, “ zkuste to znovu! Uhodli jste příliš malé“. To znamená, že celá čísla menší než 25 (od 1 do 25) jsou zbytečná. Nyní je rozsah pro hádání uživatele kratší, tj. Inteligentně! Uživatel uhodl polovinu tohoto rozsahu, takže uživatel uhodl 37 jako svůj třetí odhad. Tentokrát kompilátor opět zobrazí výstup: „zkuste to znovu! Uhodli jste příliš malé“. Pro uživatele, rozsah hádání se každým odhadem zmenšuje. Nyní je rozsah hádání pro uživatele od 37 do 50, pro které uživatel uhodl 43 jako svůj čtvrtý odhad. Tentokrát kompilátor zobrazí výstup “ zkuste to znovu! Uhodli jste příliš vysoko“. Takže nový rozsah hádání pro uživatele bude od 37 do 43, opět pro který uživatel uhodl polovinu tohoto rozsahu, tedy 40 jako svůj pátý odhad. Tentokrát kompilátor zobrazí výstup: „zkuste to znovu! Uhodli jste příliš malé“. Takže odhad ještě menší, takže od 41 do 43. A nyní uživatel uhodl 41 jako svůj šestý odhad. Což je špatné a zobrazuje výstup “ zkuste to znovu! Uhodli jste příliš malé“. A konečně, uživatel uhodl správné číslo, které je 42 jako jeho sedmý odhad.

celkový počet odhadů = 7

vysvětlení 2: pokud se uživatelské vstupy pohybují, řekněme od 1 do 50. A kompilátor náhodně vybrán 42 jako celé číslo. A teď začala hádací hra. Takže polovina 50 je 25. Uživatel zadá 25 jako svůj první odhad. Tentokrát kompilátor ukáže, “ zkuste to znovu! Uhodli jste příliš malé“. To znamená, že celá čísla menší než 25 (od 1 do 25) jsou zbytečná. Nyní je rozsah pro hádání uživatele kratší, tj. Inteligentně! Uživatel uhodl polovinu tohoto rozsahu, takže uživatel uhodl 37 jako svůj druhý odhad. Tentokrát kompilátor opět zobrazí výstup: „zkuste to znovu! Uhodli jste příliš malé“. Pro uživatele, rozsah hádání se každým odhadem zmenšuje. Nyní je rozsah hádání pro uživatele od 37 do 50, pro které uživatel uhodl 43 jako svůj třetí odhad. Tentokrát kompilátor zobrazí výstup “ zkuste to znovu! Uhodli jste příliš vysoko“. Takže nový rozsah hádání pro uživatele bude od 37 do 43, opět pro který uživatel uhodl polovinu tohoto rozsahu, tedy 40 jako svůj čtvrtý odhad. Tentokrát kompilátor zobrazí výstup: „zkuste to znovu! Uhodli jste příliš malé“. Takže odhad ještě menší, takže od 41 do 43. A nyní uživatel uhodl 41 jako svůj pátý odhad. Což je špatné a zobrazuje výstup “ zkuste to znovu! Uhodli jste příliš malé“. A konečně, uživatel uhodl správné číslo, které je 42 jako jeho šestý odhad.

celkový počet odhadů = 6

takže minimální počet odhadů závisí na rozsahu. A kompilátor musí vypočítat minimální počet hádání závisí na rozsahu, na jeho vlastní. K tomu máme vzorec:-

Minimální počet hádání = log2(Horní mez – dolní mez + 1)

Algoritmus: Níže jsou Kroky:

  • Uživatelské vstupy dolní mez a horní mez rozsahu.
  • kompilátor vygeneruje náhodné celé číslo mezi rozsahem a uloží jej do proměnné pro budoucí reference.
  • pro opakované hádání bude inicializována smyčka while.
  • pokud uživatel uhodl číslo, které je větší než náhodně vybrané číslo, získá uživatel výstup “ zkuste to znovu! Uhodli jste příliš vysoko „
  • jinak pokud uživatel uhodl číslo, které je menší než náhodně vybrané číslo, uživatel dostane výstup “ zkuste to znovu! Uhodli jste příliš malé „
  • a pokud uživatel uhodl v minimálním počtu odhadů, uživatel dostane “ Gratulujeme! “ Výstup.
  • jinak pokud uživatel neuhodl celé číslo v minimálním počtu odhadů, dostane příště “ větší štěstí!“ výstup.

níže je implementace algoritmu:

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



VÝSTUP: Níže je výstup výše uvedeného Programu

VÝSTUP PRO HÁDÁNÍ HRU

Článek Tagy :