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 » |