Riješeno: kako napraviti nasumične cijele brojeve iz određenog raspona u c jeziku

Kreiranje nasumičnih cijelih brojeva unutar određenog raspona u C programskom jeziku nije tako jednostavno kao što se čini. C sam po sebi nema posebnu funkciju za ovo, ali pruža niz alata koji se mogu kombinovati da bi se to postiglo. Koncept iza generiranja ovih brojeva vrti se oko korištenja slučajnih brojeva i određenog raspona.

Bukvalno govoreći, slučajni brojevi generirani unutar određenih raspona mogu biti vrlo korisni u mnogim aplikacijama u svijetu programiranja, kao što je kreiranje jedinstvenih ID-ova, kompjuterska grafika, igre, simulacije, testiranje i još mnogo toga.

Biblioteke i funkcije u generiranju slučajnih brojeva

Za generiranje slučajnih brojeva u C-u koristimo stdlib.h i vrijeme.h biblioteke. The rand() funkcija je dio biblioteke stdlib.h, i pošto ne uzima nikakve argumente, generiše isti niz slučajnih brojeva svaki put kada pokrenemo program. Da bismo ovo obuzdali, koristimo srand() funkcija koja mijenja sjeme pseudo-slučajnog generatora.

#include
#include
#include

int main () {
srand(vrijeme(0));
for(int i = 0; i<5; i++){ printf(" %d ", rand()); } return 0; } [/code]

Rješenje: generiranje slučajnih brojeva unutar određenog raspona

Gornji kod će generirati bilo koji slučajni broj. Za generiranje slučajnog broja unutar određenog raspona, možete koristiti ovu formulu: (rand() % (gornji – donji + 1)) + donji gdje je niža donja granica, a gornja gornja granica raspona unutar kojeg želite slučajne brojeve.

Evo detaljne analize cijelog procesa:

  • Prvo, koristimo vrijeme() funkcija za dobivanje trenutnog vremena sistema.
  • Zatim koristimo srand() funkcija za započinjanje slučajnog generatora.
  • Nakon toga koristimo rand() funkcija za generiranje slučajnog broja.
  • Konačno, generirani broj dovodimo u željeni raspon koristeći gore spomenutu formulu.

Evo primjera isječka koda:

#include
#include
#include

int main () {
int donji = 50, gornji = 100;
srand(vrijeme(0));
for(int i = 0; i<5; i++){ printf(" %d ", (rand() % (gornji - donji + 1)) + donji); } return 0; } [/code] U isječku koda iznad, generirani slučajni brojevi bit će u rasponu od 50 i 100.

Demistifikacija koda

Primijetite da smo `time(0)` prenijeli na srand() funkcija. Ovo je da bi se osiguralo da su naši slučajni brojevi što je moguće nasumičniji. vrijeme() vraća trenutno kalendarsko vrijeme koje se mijenja svake sekunde, stoga je dobra ideja koristiti ga za početak našeg generatora slučajnih brojeva.

Formula `(rand() % (gornji – donji + 1)) + donji` može izgledati zbunjujuće na prvi pogled, ali je prilično jednostavna. rand() generiše slučajni broj. Kada uzmemo modul ovog broja sa `(gornji – donji + 1)`, u osnovi dobijamo ostatak dijeljenja broja sa `(gornji – donji + 1)`. Rezultat operacije modula je uvijek manji od djelitelja. Dodavanjem donje granice osiguravamo da je naš slučajni broj barem donja granica.

Sada možete generirati nasumične brojeve unutar bilo kojeg raspona u C! Sretno programiranje!

Slični postovi:

Ostavite komentar