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

Liczby pseudolosowe

Ostatnio zmodyfikowano 2023-04-10 11:57
Autor Wiadomość
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 :-)
P-180100
DejaVu
» 2023-04-09 12:12:12
Srand ma być wywołane raz na początku programu a nie w pętli.
P-180102
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.
P-180104
« 1 »
  Strona 1 z 1