Generiranje slučajnog plutanja između dva broja u C#
Generisanje nasumičnih float brojeva je uobičajena operacija u mnogim programskim aplikacijama, posebno u razvoju igara, statističkim simulacijama i naučnim istraživanjima. Koristeći programski jezik C#, pronaći ćete robustan okvir za kreiranje i manipulaciju brojevima s pomičnim brojem po potrebi. Ovaj članak je posvećen objašnjavanju jednostavnog pristupa kreiranju slučajnog plutajućeg broja između dva određena broja.
Rješenje: nasumično generiranje plutajućih brojeva između dva broja u C#
.NET Framework pruža ugrađenu klasu pod nazivom “Random” koja se može koristiti za generiranje slučajnih brojeva. Međutim, ova klasa obično bolje radi s generiranjem cijelih brojeva. Da bismo generirali nasumični float, napravit ćemo malu modifikaciju.
javni statički float RandomFloatBetween (float min, float max)
{
Random random = novi Random();
dvostruki opseg = max – min;
dvostruki uzorak = random.NextDouble();
dvostruko skalirano = (uzorak * opseg) + min;
return (float)scaled;
}
U ovom isječku koda prvo inicijaliziramo novu instancu klase Random. Zatim utvrđujemo raspon slučajnog broja kao razliku između maksimalne i minimalne vrijednosti. Nakon toga, dobijamo nasumični dupli broj između 0 i 1 (što NextDouble() pruža), skaliramo ga na naš opseg, dodamo minimalnu vrijednost i konvertujemo u float.
Objašnjenje koda korak po korak
Hajde da razložimo kod kako bismo dalje razumjeli svaki korak u generiranju slučajnog float-a.
- Metoda počinje deklarisanjem i inicijalizacijom nove instance klase Random. Inicijalizirana klasa Random može generirati gotovo bilo koji nasumični cijeli broj i dvojnike.
- Izračunavanje raspona brojeva unutar naših željenih granica se zatim izvodi korištenjem minimalnih i maksimalnih vrijednosti proslijeđenih metodi.
- Zatim izvršavamo metodu NextDouble() na našoj Random varijabli. Funkcija NextDouble() je ono što ovdje zapravo generiše “slučajnost”; proizvodi nasumični dvostruki broj veći ili jednak 0.0 i manji od 1.0.
- Zatim skaliramo nasumični duplikat između 0 i 1 na naš raspon množenjem na raspon.
- Dodajte minimalnu vrijednost da biste naš raspon pozicionirali na originalno mjesto.
- Kao posljednji korak, pretvaramo double u float koristeći eksplicitnu konverziju.
Ključni koncept iza generiranja slučajnog float-a proizašao je iz mogućnosti generiranja nasumične dvostruke vrijednosti pomoću ugrađene metode.
.NET Random Class i NextDouble() funkcija
Klasa Random je osnovni dio .NET Framework-a i predstavljena je u širokom rasponu aplikacija i situacija u kojima su potrebne nasumične vrijednosti. Dolazi sa mnoštvom metoda, ali za generiranje našeg slučajnog plutanja koristili smo metodu NextDouble. Ova metoda je dizajnirana da vrati nasumični broj između 0 i 1.
Vrijedi napomenuti da klasa Random proizvodi pseudoslučajne brojeve – brojeve koji, iako nisu istinski slučajni, služe većini svrha sasvim adekvatno. Međutim, za aplikacije koje zahtijevaju veću slučajnost, možda će biti potreban drugačiji pristup.
Aritmetika s plutajućim zarezom u C#
Brojevi s pomičnim zarezom ključni su dio gotovo svakog programskog jezika, a C# se ne razlikuje. Koriste se kad god treba da predstavimo brojeve koji nisu cijeli brojevi, a dolaze u dvije varijante – plutajući i dvostruki.
Pretvaranje naše nasumične dvostruke vrijednosti u float je jednostavan, ali važan proces, jer osigurava da je naša konačna vrijednost u formatu koji nam je potreban. To je zbog različitih nivoa preciznosti i dometa koje nude tipovi float i double.
Sada imate ideju kako da generišete nasumično float u C#, vreme je da iskoristite ovo znanje da unesete neko spontano ponašanje u svoje programe. Bilo da se radi o simulacijama igara, numeričkim metodama ili stohastičkom programiranju, razumijevanje slučajnog generiranja bit će moćan alat za svakog programera.