Losowanie liczb
Ostatnio zmodyfikowano 2012-01-18 21:16
kilerfcb Temat założony przez niniejszego użytkownika |
Losowanie liczb » 2012-01-18 20:25:52 Witam, Mam za zadanie zrobienie programu w którym użytkownik będzie podawał jakąś liczbę z przedziału 1-100, a zadaniem komputera będzie odgadnięcie tej liczby(W stylu "za duzo" "za malo"). Do tego momentu zadanie jest dla mnie proste hehe. Haczyk w tym, że program trzeba napisać tak, aby komputerowi udało się wylosować liczbę w jak najmniejszej ilości prób. #include <cstdlib> #include <iostream> #include <ctime>
using namespace std;
int main( int argc, char * argv[] ) { int liczba; int losowana; int proba; proba = 1; srand( time( NULL ) ); while( liczba > 100 || liczba < 1 ) { cout << "Podaj jakas liczbe [1..100]" << endl; cin >> liczba; if( liczba > 100 || liczba < 1 ) cout << "Ale z Ciebie kretyn..Podaj liczbe z przedzialu [1..100]" << endl; } do { proba++; losowana =( rand() % 100 ) + 1; if( losowana > liczba ) cout << "Za duzo..proboje jeszcze raz" << endl; if( losowana < liczba ) cout << "Za malo..proboje jeszcze raz" << endl; if( losowana == liczba ) cout << "\nTrafilem!! Wylosowana liczba to " << losowana << " Udalo mi sie za " << proba << " razem\n" << endl; } while( liczba != losowana ); system( "pause" ); return 0; } |
|
pekfos |
» 2012-01-18 20:37:11 Komputer ma odgadywać? Zaadaptuj przeszukiwanie binarne, gdzie wśród wartości od 1 do 100 ma znaleźć te n. |
|
kilerfcb Temat założony przez niniejszego użytkownika |
» 2012-01-18 20:48:15 hmmm, jestem mocno początkujący.. nie rozumiem :) |
|
pekfos |
» 2012-01-18 20:50:33 ehh..
dzielisz zbiór na pół (te 100 wartości) i sprawdzasz w której połówce jest n. później znowu na pół, i tak dalej. W skrócie: Divide et impera :P |
|
CodeMeister |
» 2012-01-18 21:16:04 Powinienes najpierw pomyslec jak ty bys to rozwiazal, sprobowal to zakodowac i w ostatecznosci wbijac na forum ;) |
|
« 1 » |