GeeksforGeeks
de fleste af nørderne fra en CS (datalogi) baggrund, tænk på deres allerførste projekt efter at have lavet et programmeringssprog. Her får du dit allerførste projekt og det grundlæggende i denne artikel.
opgave: nedenfor er trinene:
- Byg et nummer gætteleg, hvor brugeren vælger en rækkevidde.
- lad os sige, at brugeren valgte et interval, dvs.fra A til B, hvor A og B hører til heltal.
- nogle tilfældige heltal vil blive valgt af systemet, og brugeren skal gætte det heltal i det mindste antal gæt
analyse:
Forklaring 1: hvis brugerindgange spænder, lad os sige fra 1 til 100. Og compiler tilfældigt valgt 42 som heltal. Og nu gættelegen startede, så brugeren indtastet 50 som hans/hendes første gæt. Compileren viser “prøv igen! Du gættede for højt”. Det betyder, at det tilfældige tal (dvs.42) ikke falder i området fra 50 til 100. Det er vigtigheden af at gætte halvdelen af rækken. Og igen gætter brugeren halvdelen af 50 (kan du fortælle mig hvorfor ?). Så halvdelen af 50 er 25. Brugeren indtaster 25 som hans / hendes andet gæt. Denne gang compiler vil vise, ” prøv igen! Du gættede for lille”. Det betyder, at heltalene mindre end 25 (fra 1 til 25) er ubrugelige at gætte. Nu er rækkevidden for brugerens gætte kortere, dvs.fra 25 Til 50. Intelligent! Brugeren gættede halvdelen af dette interval, så brugeren gættede 37 som hans/hendes tredje gæt. Denne gang igen viser kompilatoren output, ” prøv igen! Du gættede for lille”. For brugeren bliver gætteområdet mindre ved hvert gæt. Nu er gætteområdet for brugeren fra 37 Til 50, for hvilket brugeren gættede 43 som hans/hendes fjerde gæt. Denne gang viser kompilatoren et output ” prøv igen! Du gættede for højt”. Så det nye gætterområde for brugere vil være fra 37 Til 43, igen for hvilket brugeren gættede halvdelen af dette interval, det vil sige 40 som hans/hendes femte gæt. Denne gang viser kompilatoren output, ” prøv igen! Du gættede for lille”. Forlader gæt endnu mindre sådan, at fra 41 Til 43. Og nu gættede brugeren 41 som hans / hendes sjette gæt. Hvilket er forkert og viser output ” prøv igen! Du gættede for lille”. Og endelig gættede brugeren det rigtige nummer, som er 42 som hans/hendes syvende gæt.
Samlet antal gæt = 7
forklaring 2: hvis brugerindgange spænder, lad os sige fra 1 til 50. Og compiler tilfældigt valgt 42 som heltal. Og nu begyndte gættelegen. Så halvdelen af 50 er 25. Brugeren indtaster 25 som hans / hendes første gæt. Denne gang compiler vil vise, ” prøv igen! Du gættede for lille”. Det betyder, at heltalene mindre end 25 (fra 1 til 25) er ubrugelige at gætte. Nu er rækkevidden for brugerens gætte kortere, dvs.fra 25 Til 50. Intelligent! Bruger gættede halvdelen af dette interval, så brugeren gættede 37 som hans/hendes andet gæt. Denne gang igen viser kompilatoren output, ” prøv igen! Du gættede for lille”. For brugeren bliver gætteområdet mindre ved hvert gæt. Nu er gætteområdet for brugeren fra 37 Til 50, for hvilket brugeren gættede 43 som hans/hendes tredje gæt. Denne gang viser kompilatoren et output ” prøv igen! Du gættede for højt”. Så det nye gætteområde for brugere vil være fra 37 Til 43, igen for hvilket brugeren gættede halvdelen af dette interval, det vil sige 40 som hans/hendes fjerde gæt. Denne gang viser kompilatoren output, ” prøv igen! Du gættede for lille”. Forlader gæt endnu mindre sådan, at fra 41 Til 43. Og nu gættede brugeren 41 som hans / hendes femte gæt. Hvilket er forkert og viser output ” prøv igen! Du gættede for lille”. Og endelig gættede brugeren det rigtige nummer, som er 42 som hans/hendes sjette gæt.
Samlet antal gæt = 6
så det mindste antal gæt afhænger af rækkevidde. Og kompilatoren skal beregne det mindste antal gætte afhænger af området, på egen hånd. Til dette har vi en formel:-
mindste antal gætte = log2 (øvre grænse-nedre grænse + 1)
algoritme: nedenfor er trinene:
- brugeren indtaster den nedre grænse og øvre grænse af området.
- kompilatoren genererer et tilfældigt heltal mellem området og gemmer det i en variabel til fremtidige referencer.
- for gentagne gætte, et stykke tid loop vil blive initialiseret.
- hvis brugeren gættede et tal, der er større end et tilfældigt valgt nummer, får brugeren et output “prøv igen! Du gættede for højt “
- ellers hvis brugeren gættede et tal, der er mindre end et tilfældigt valgt nummer, får brugeren et output ” prøv igen! Du gættede for lille ”
- og hvis brugeren gættede i et minimum antal gæt, får brugeren en “tillykke! ” Output.
- ellers hvis brugeren ikke gætte heltal i det mindste antal gæt, vil han/hun få “bedre held næste gang!” output.
nedenfor er implementeringen af algoritmen:
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;
}
OUTPUT: nedenfor er output fra ovenstående Program
udgang til gætteleg