Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

losowanie liczb - problem

Ostatnio zmodyfikowano 2010-12-09 20:49
Autor Wiadomość
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.
P-24930
inny1997
» 2010-12-08 18:12:47
powinieneć losować róznice pomiędzy liczbami 15-5=10
więc
liczba = rand()%10+(5+1);
P-24931
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
C/C++
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

C/C++
int zakres_od = 5;
int zakres_do = 10;
int wartosc = zakres_od + rand() %( zakres_do - zakres_od + 1 );
P-24932
Dawidsoni
Temat założony przez niniejszego użytkownika
» 2010-12-09 20:49:58
Dobra dzięki. Już se poradziłem.
P-24953
« 1 »
  Strona 1 z 1