Generování náhodných čísel C, vždy vyhodí stejné
Potřebuji generovat náhodná čísla 0,1. Při každém spuštění mi to však vyhodí stejnou řadu. Čím to?
3aUcHN6S
Potřebuji generovat náhodná čísla 0,1. Při každém spuštění mi to však vyhodí stejnou řadu. Čím to?
3aUcHN6S
Předmět | Autor | Datum |
---|---|---|
Musíš inicializovat seed. Ta funkce rand generuje pořád stejnou posloupnost, takže záleží, jak ji in… Niko Bellic 26.10.2013 22:13 |
Niko Bellic | |
Použil jsem tedy
srand(time(NULL)); return rand()%2+0;
Nicméně teď to vypisuje buď jen jedničky ne… mmfmoc 26.10.2013 22:29 |
mmfmoc | |
Inicializovat myslím stačí jednou. Dej tu funkci srand do mainu hned na začátek. Niko Bellic 26.10.2013 22:33 |
Niko Bellic | |
Už to běží jak má. Děkuji poslední mmfmoc 26.10.2013 22:36 |
mmfmoc |
Zpět do poradny Odpovědět na původní otázku Nahoru
Musíš inicializovat seed. Ta funkce rand generuje pořád stejnou posloupnost, takže záleží, jak ji inicializuješ. Třeba pomocí time(NULL), ale může to být jakékoliv jiné celé číslo. Mrkni sem.
rand
srand
Použil jsem tedy
Nicméně teď to vypisuje buď jen jedničky nebo jen nuly. Což nechápu, fci volám pokaždé znovu v tom cyklu. Je to tím, že se výsledek time(NULL) mění jen jednou za sekundu? Tedy když program běží méně než vteřinu, resp. když se netrefí do překlenutí, bude vždy stejný, že?
Dalo by se to vyřešit při každém volání funkce nějakým násobkem například?
Inicializovat myslím stačí jednou. Dej tu funkci srand do mainu hned na začátek.
Už to běží jak má. Děkuji