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

[C++] Wygenerowanie odpowiednich liczb losowych

Ostatnio zmodyfikowano 2014-12-29 00:53
Autor Wiadomość
lectre
» 2014-12-28 00:27:09
Tak. Każda liczba.

Ps. Zapomniałem że chcesz mieć liczby różne od wielokrotności 10 a nie samej 10, ale już poprawiłem. Dodatkowo zauważ co się stanie jeśli zostanie wylosowana liczba 0. Czy program uzna że został spełniony warunek na zachowanie jej, czy wylosuje jeszcze raz? Może trzeba dopisać jeszcze jeden warunek...
P-123415
pytalski
Temat założony przez niniejszego użytkownika
» 2014-12-28 14:56:43
Faktycznie trzeba będzie dodać warunek odnośnie zera.

I mam prośbę o pewne wytłumaczenie. Bo jak rozumiem w przypadku wylosowania liczby podzielnej przez 10 pętla do while jest zerwana, ale pętla for ponownie ją uruchamia by zapełnić indeks w tablicy, więc czemu nie można tego zrobić pętlą while (a wiem że nie można)?
P-123444
darko202
» 2014-12-28 17:23:06
Twoje pytanie brzmiało
>>co jakiś czas pojawia się liczba minusowa(-858993460).

podałem Ci miejsce w  programie gdzie nie wypełniasz tablicy dlatego masz przypadkową daną np. (-858993460).
i++ jest nieuchronne nawet jeśli miałeś 0 to po i++ już 1 po i-- znów masz 0
jeśli nie cofniesz iteracji w tablicy masz  przypadkową daną np. (-858993460).


P-123465
TheHardew
» 2014-12-28 17:55:10
rand() % x
 nie jest dobrą praktyką, lepiej używać
rand() * x / RAND_MAX
, x musi być typu całkowitoliczbowego, albo będzie wynik będzie musiał być zaokrąglany
P-123473
Monika90
» 2014-12-28 19:23:21
rand() * x / RAND_MAX
To jest jeszcze gorsze. Najlepiej nie używać rand() w ogóle. W bibliotece standardowej C++ jest dobra alternatywa dla rand() - nagłówek <random>.
P-123486
TheHardew
» 2014-12-28 20:09:00
Wydawało mi się, że moja alternatywa jest lepsza, skoro tak było napisane w mojej książce. Poza tym przyznaję, że nagłówek <random> się przydaje, daje możliwość korzystania z random_device, już stworzonych dystrybucji do ustawiania limitu liczb generowanych czy też tworzenia swoich własnych. Poza tym można używać różnych rodzajów silników, albo stworzyć swoje.
P-123493
GolemXIV
» 2014-12-28 23:45:40
A jeśli w książce miałeś napisane
C/C++
srand( time( 0 ) );
to w ogóle ją wyrzuć do kosza.
P-123518
TheHardew
» 2014-12-29 00:53:50
Było tak napisane, chhociaż jest to książka, która jest też polecana na tym forum, S. Prata "Język C++. Szkoła programowania. Wydanie VI". Poza tym sam wiem, że lepiej jest używać random_device którego nie trzeba seedować czy też kryptograficznych generatorów liczb dostarczonych z systemem.
P-123520
1 « 2 »
Poprzednia strona Strona 2 z 2