Mitenkäs tuota rand()-funktiota käytetään noin niinkuin syvällisemmin? Tiedän, että se saadaan käyttöön #incluudaamalla standardi stdlib.h-kirjasto ja syntaksi on kutakuinkin seuraava:
unsigned int j;
j = rand();
Jonka jälkeen muuttuja j sisältää satunnaisen arvon, mutta mitenkäs määritetään millaisia lukuja haluan j:n arvoksi saada? Eli voinko rajata rand()-funktion palauttaman arvon jollekin lukualueelle? Ilman minkäänlaista rajausta luku varmaankin sijaitsee -32768 ja 32768 välillä, koska se on muuttujan j lukualue tietotyypillä int.
unsigned int j;
j = rand();
Jonka jälkeen muuttuja j sisältää satunnaisen arvon, mutta mitenkäs määritetään millaisia lukuja haluan j:n arvoksi saada? Eli voinko rajata rand()-funktion palauttaman arvon jollekin lukualueelle? Ilman minkäänlaista rajausta luku varmaankin sijaitsee -32768 ja 32768 välillä, koska se on muuttujan j lukualue tietotyypillä int.
Vastaukset 3
Vanhimmat
Okei, korjaan tuon lukualue-ennusteeni. Unsigned int tietysti tuottaa lukualueeksi 0 - 65536.
Onko rand-funktiossa edellisessä viestissä tiedustelemiani parametrejä ollenkaan?
Tai onko olemassa sellaista funktiota, jolle voi kyseiset parametrit antaa?
jakojäännöksellä rajaat haluamallesi luvulle.
srand((unsigned)time(0));
int random_integer;
for(int index=0; index
Se arvoalue tuskin on monessakaan nykyajan kääntäjässä 0-65535, koska yleensä int on ainakin 32-bittinen, jolloin lukualue on 0-4294967295. Maksimiarvo löytyy vakiosta RAND_MAX. Jakojäännöstaktiikkakin kyllä toimii, mutta myös näin saat satunnaislukuja väliltä 0-1:
double satlu = (double)rand() / RAND_MAX;