I denne artikkelen vil vi diskutere hvordan vi kan bruke SRAND () -funksjonen i C ++ mens vi skriver programmer i Ubuntu 20.04. SRAND () -funksjonen er frøet som RAND () -funksjonen bruker for å generere tilfeldige tall. Begge disse funksjonene er definert i stdlib -overskriften. Når vi bruker SRAND () -funksjonen for å angi frøet i RAND () -funksjonen, er den koblet til RAND () -funksjonen. SRAND () -funksjonen tar verdien av frøet i en usignert heltallstype. Frøverdien er startstedet for RAND () -funksjonens generering av tilfeldige tall, for eksempel SRAND (5). Ingen verdi returneres av SRAND () -funksjonen. Standard frøverdien til SRAND -funksjonen er satt som “1”. Så hvis vi ikke kaller SRAND () -funksjonen før RAND () -funksjonen, vil det være det samme som å skrive “SRAND (1)”.
Forstå forholdet mellom RAND () og SRAND () -funksjonen:
Når vi bruker RAND () -funksjonen i koden vår, får vi alltid det samme tilfeldige tallet når vi sammenstiller den. La oss se på et eksempel der vi bedre vil forstå hvordan RAND -funksjonen fungerer uten SRAND ().
Bruke Rand () -funksjon uten SRAND () -funksjonen i Ubuntu 20.04:
Åpne terminalen og lag en .CPP -fil ved å skrive og utføre kommandoen "berøring" med filnavnet og utvidelsen av .CPP. Deretter, finn og åpne din .CPP -fil. Skriv nå en enkel kode for å generere tilfeldige tall uten å bruke SRAND () -funksjonen.
Filen skal lagres og deretter lukkes. Åpne terminalen igjen og kompiler filen med denne kommandoen “G ++” sammen med filnavnet og utvidelsen. Dette vil generere en utdata for filen din etter å ha sammenstilt, vanligvis med utvidelsen av “.ute.”Utfør nå utdatafilen ved å skrive denne kommandoen”./”Sammen med utgangsfilnavnet
Som du kan se i eksemplet ovenfor, er de første og andre utgangene de samme fordi vi ikke brukte SRAND () -funksjonen. Så selv om vi gjentar prosessen flere ganger, vil utgangen være den samme fordi frøverdien er som standard satt til 1.
Vi vil se på hvordan RAND () -funksjonen vil fungere med SRAND () -funksjonen.
Rand () Funksjon med bruk av SRAND () -funksjonen i Ubuntu 20.04:
Åpne terminalen og lag en .CPP -fil ved å skrive og utføre kommandoen "berøring" med filnavnet og utvidelsen av .CPP. Deretter, finn og åpne din .CPP -fil. Vi vil nå skrive en kode for å generere tilfeldige tall og bruke SRAND () -funksjonen med forskjellige frøverdier.
Filen skal lagres og deretter lukkes. Åpne terminalen igjen og kompiler filen med denne kommandoen “G ++” sammen med filnavnet og utvidelsen. Dette vil generere en utdata for filen din etter å ha sammenstilt, vanligvis med utvidelsen av “.ute.”Utfør nå utdatafilen ved å skrive denne kommandoen”./”Sammen med utgangsfilnavnet.
Nå kan vi se at bruk av SRAND () -funksjonen med forskjellige frøverdier gir et annet tilfeldig tall. Så hvis vi fortsetter å endre frøverdien som er parameteren til SRAND () -funksjonen, vil de tilfeldige tallene alltid være forskjellig fra hverandre. Verdien av frø settes som "1" i den første utgangslinjen, så det tilfeldige tallet som genereres av denne frøverdien er 1804289383, og når vi endrer frøverdien til 5, blir det tilfeldige tallet som genereres nå endret til 590011675, så dette Endring skjedde på grunn av forskjellen i frøverdien.
Etter å ha sett på dette eksemplet, kan vi konkludere med at RAND () -funksjonen uten SRAND () -funksjonen ikke utfører standarden til PRNG (Pseudo Random Number Generator) -programmet, som genererer tilfeldige tall i henhold til frøverdi -akkreditering, på C ++ -språket. Dette programmet inkluderer RAND () og SRAND () -funksjonene for å generere tilfeldige tall i C ++ programmering. Så vi bør alltid bruke SRAND () -funksjonen mens du bruker RAND () -funksjonen for å generere forskjellige tilfeldige tall.
SRAND () -tallet med forskjellige frøverdier fortsetter å endre de genererte tilfeldige tallene, og gjør dermed RAND () -funksjonen mer effektiv. Men vi må fortsette å endre frøverdien hver gang da frøverdien må gis før vi kaller RAND () -funksjonen. Så den beste måten å fortsette å gjøre det på er å bruke tiden (0) -funksjonen, som gir den nøyaktige tiden på sekunder i det usignerte heltallet fra det samme som parameteren til SRAND () -funksjonen. Så utgangen fra tid (0) vil alltid fortsette å endre seg, og dermed vil resultatet fra RAND () -funksjonen også fortsette å endre hvert sekund.
Bruke SRAND () -funksjon med tid (0) som parameter:
Som vi diskuterte tidligere at frøverdien til funksjonen er satt som "1", så vi må endre frøverdien konstant og før RAND () -funksjonen kalles. Disse punktene er viktige for effektiviteten av å generere tilfeldige funksjoner, så vi må tenke på en slik måte som reduserer tankeprosessen til koderen og prosessens kraft på enheten også. Dette problemet løses av tiden () -funksjonen på C ++ -språket, noe som gir den nøyaktige tiden i det gitte øyeblikket du utfører oppgaven i enheten din, også kjent som tidsstempel. Så hvis vi legger til tiden (0) -funksjonen som parameter for SRAND () -funksjonen, er det frøverdien, den vil gi den totale tiden i sekunder som et heltall til SRAND () -funksjonen og vil fortsette å endre på hver tid vi bruker den. Tid () -funksjonen er definert i CTIME -overskriften, så vi må legge til dette i koden vår. Nå vil vi implementere dette på koden vår og prøve å forstå bedre hvordan SRAND () -funksjonen fungerer med Time () -funksjonen som parameter.
Bruke SRAND () -funksjon med tidsfunksjon som parameter i Ubuntu 20.04:
Åpne terminalen og lag en .CPP -fil ved å skrive og utføre kommandoen "berøring" med filnavnet og utvidelsen av .CPP. Deretter, finn og åpne din .CPP -fil. Vi vil nå skrive en kode for å generere tilfeldige tall og bruke Time () -funksjonen for å gi forskjellige frøverdier for forskjellige tilfeldig genererte tall.
Filen skal lagres og deretter lukkes. Åpne terminalen igjen og kompiler filen med denne kommandoen “G ++” sammen med filnavnet og utvidelsen. Dette vil generere en utdata for filen din etter å ha sammenstilt, vanligvis med utvidelsen av “.ute.”Utfør nå utdatafilen ved å skrive denne kommandoen”./”Sammen med utgangsfilnavnet
Som vi kan se at etter å ha utført filene flere ganger, endres det tilfeldige tallet ved hver utførelse, så vi har oppnådd effektivitet med denne metoden, og vi vil fortsette å få forskjellige verdier hver gang vi utfører SRAND () -funksjonen med tiden ( 0) som parameter.
Konklusjon:
I denne artikkelen har vi lært forholdet mellom RAND () og SRAND () -funksjonen og hvordan SRAND () -funksjonen hjelper RAND () til å fungere til å generere tilfeldige tall effektivt ved bruk av tiden () -funksjonen. Vi implementerte alle disse konseptene 'eksempler i Ubuntu og ga en detaljert trinnvis utdyping om hvordan de skal utføre dem på Ubuntu 20.04.