[C++] Wygenerowanie odpowiednich liczb losowych
Ostatnio zmodyfikowano 2014-12-29 00:53
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... |
|
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)? |
|
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).
|
|
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 |
|
Monika90 |
» 2014-12-28 19:23:21 To jest jeszcze gorsze. Najlepiej nie używać rand() w ogóle. W bibliotece standardowej C++ jest dobra alternatywa dla rand() - nagłówek <random>. |
|
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. |
|
GolemXIV |
» 2014-12-28 23:45:40 A jeśli w książce miałeś napisane to w ogóle ją wyrzuć do kosza. |
|
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. |
|
1 « 2 » |