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

Lekcja 21 zadanie 1 Problem z wylosowaniem

Ostatnio zmodyfikowano 2012-05-11 15:21
Autor Wiadomość
Robson
Temat założony przez niniejszego użytkownika
Lekcja 21 zadanie 1 Problem z wylosowaniem
» 2012-05-11 14:15:42
Witam. Czy mógłby mi ktoś jakoś wytłumaczyć, jak z tablicy, w której mam wpisane 3 liczby, wylosować 2 spośród TYCH liczb, a nie jakichś z kosmosu? Nie ogarniam tego niestety. W niektórych tych kodach, które ludzie wrzucali na forum są błędy, a ja z nich nie mogę tego ogarnąć. 3 dzień analizuję te ich kody i jakoś mam taki niedosyt.

Nie proszę o kod, tylko o wytłumaczenie.
Dziękuję z góry,
Robson.
P-56465
czosnek17
» 2012-05-11 14:20:21
Masz 3 liczby. Przypisujesz je do tablicy i losujesz dwa razy liczbę z przedziału od 1 do 3. Losowaną liczbę zapisuj od razu do zmiennej, którą wstawisz w licznik tablicy.
P-56467
pekfos
» 2012-05-11 14:21:02
Masz tablice z wynikami
C/C++
int tab[ 3 ] = { x, y, z };
Dostępne pod indeksami 0, 1, 2.
Losuj indeks:
C/C++
int i = rand() % 3;
i drugi:
C/C++
int j = i;
while( j == i ) j = rand() % 3; //losuj dopoki i == j. Po wyjsciu z petli i != j

i wyniki masz pod indeksami i oraz j.
P-56468
Robson
Temat założony przez niniejszego użytkownika
» 2012-05-11 14:52:55
Dobra czaję już, ale tego co Pekfos napisałeś na końcu to jakoś nie bardzo.

i drugi:
C/C++
int j = i;
while( j == i ) j = rand() % 3; //losuj dopoki i == j. Po wyjsciu z petli i != j

i wyniki masz pod indeksami i oraz j.
P-56472
SeaMonster131
» 2012-05-11 14:57:34
No skoro musisz wylosować 2 indeksy, to nie miałoby to sensu, gdyby były takie same.
P-56474
RazzorFlame
» 2012-05-11 15:00:28
C/C++
int index1 = 0;
int index2 = 0;

index1 =( rand() % 2 ) + 0;
while( index2 == index1 ) index2 =( rand() % 2 ) + 0;

cout << tablica[ index1 ] << "\n" << tablica[ index2 ] << endl;
P-56476
SeaMonster131
» 2012-05-11 15:21:18
( rand() % 2 )
to Ci wylosuje albo 0 albo 1.
rand()%n -> losuje liczbę do n-1.
P-56483
« 1 »
  Strona 1 z 1