losowanie liczb - problem
Ostatnio zmodyfikowano 2010-12-09 20:49
Dawidsoni Temat założony przez niniejszego użytkownika |
losowanie liczb - problem » 2010-12-08 17:54:41 Witam. Mam problem z losowaniem liczb, gdyż chcę wylosować liczbę od 5 do 15, ale mi się to nie udaję. Kiedy chcę wylosować liczbę od 1 do 15 to robię tak: liczba = rand()%15+1; (losuje poprawnie) Natomiast, kiedy chcę wylosować liczbę od 5 do 15 robię tak: liczba = rand()%15+5; Program, zamiast losować liczbę od 5 do 15 losuje od 5 do 19. Oczywiście pamiętałem o funkcji srand przed tym. Nie wiem może używam złego operatora albo coś podobnego. Proszę o pomoc. Z góry dzięki. |
|
inny1997 |
» 2010-12-08 18:12:47 powinieneć losować róznice pomiędzy liczbami 15-5=10
więc
liczba = rand()%10+(5+1);
|
|
ison |
» 2010-12-08 18:15:31 operator % oznacza dzielenie modulo czyli resztę z dzielenia rand() zwraca pseudo-losową liczbę z zakresu 0-RAND_MAX (stała z cstdliba wynosząca przynajmniej 32767), a żeby ograniczyć wyniki moduluje się otrzymaną wartość w przypadku modulo 5 wynikiem może być: 0,1,2,3,4 w zapisie liczba = rand() % 15 + 5;
wylosowaną liczbę modulujesz przez 15, zatem możesz otrzymać: 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14 a następnie dodajesz 5: 5,6,7,8,9,10,11,12,13,14,15,16,17,18,19 int zakres_od = 5; int zakres_do = 10; int wartosc = zakres_od + rand() %( zakres_do - zakres_od + 1 );
|
|
Dawidsoni Temat założony przez niniejszego użytkownika |
» 2010-12-09 20:49:58 Dobra dzięki. Już se poradziłem. |
|
« 1 » |