Liczby pseudolosowe
Ostatnio zmodyfikowano 2023-04-10 11:57
AndrzejR Temat założony przez niniejszego użytkownika |
Liczby pseudolosowe » 2023-04-07 11:50:20 Mam problem z generowaniem liczb pseudolosowych.
zrozumiałem, że linia: srand( time( NULL ) ); - to czary mary generujący na podstawie lokalnego czasu jakąś tymczasową liczbę int. Od wygenerowanej liczby rand() - będzie startował z generatorem.
Niestety dołożenie tej linii na samym początku kodu sprawia, że generator w konkretnym uruchomieniu zawsze generuje tą samą liczbę. Czyli piszę metodę generującą liczbę losową i wywołuję tą metodę 5 razy. Wynikiem działania jest zawsze ta sama liczba??? Ponowne uruchomienie programu generuje oczywiście inną liczbę, ale też za każdym wywołaniem taką samą.
W zadaniu z zapełnianiem tablic dopiero po wyrzuceniu srand tablica zapełnia się różnymi liczbami
#include <iostream> #include <ctime> #include <cstdlib> using namespace std;
void losowanie() { int tablicaLiczbLosowych[999]; int temp; // srand(time(NULL)); for (int i = 0; i <1000; i++) {
//srand(time(NULL)); żeby losowało rózne liczny - wywalam stałą temp = (rand() % 7) + 4; tablicaLiczbLosowych = (int)temp;
}
for (int i = 0; i < 1000; i++) { cout <<"liczba nr " << i << " to "<< tablicaLiczbLosowych << endl; }
}
int main() {
losowanie(); return 0; }
Po zresetowaniu komputera problem zniknął srand zostawiłem w linii 11 czyli przy pierwszym komentarzu - ciekawe co się zepsuło :-) |
|
DejaVu |
» 2023-04-09 12:12:12 Srand ma być wywołane raz na początku programu a nie w pętli. |
|
AndrzejR Temat założony przez niniejszego użytkownika |
» 2023-04-10 11:57:24 Dziękuję - srand w pętli to wynik szamotania się z liczbą losową, która generowała mi się zawsze taka sama.
Miałem dość i wyłączyłem komputer, ponownie uruchomiony losował różne liczby sranda zostawiłem przed pętlą.
Zamykam temat. |
|
« 1 » |