C Programmeren

rand() Functie in C Taal

rand() Functie in C Taal
In de C-taal, de rand() functie wordt gebruikt voor: Pseudo-nummergenerator (PRNG). De willekeurige getallen die door de functie rand() worden gegenereerd, zijn niet echt willekeurig. Het is een reeks die periodiek wordt herhaald, maar de periode is zo groot dat we hem kunnen negeren ignore. De rand() functie werkt door een seed-waarde te onthouden die wordt gebruikt om het volgende willekeurige getal en de volgende nieuwe seed te berekenen. In dit artikel gaan we in detail bespreken hoe willekeurige getallen kunnen worden gegenereerd met behulp van de rand() functie. Dus laten we beginnen!

Header-bestand:

stdlib.h

Syntaxis:

int rand (ongeldig)

Retourwaarden:

Deze functie retourneert het volgende pseudo-willekeurige getal in de reeks. De bereikwaarde van de getallenreeks ligt tussen 0 en RAND_MAX. RAND_MAX is een macro gedefinieerd in stdlib.h header-bestand, waarvan de waarde de maximale waarde is, die kan worden geretourneerd door de functie rand(). De waarde van RAND_MAX is groter maar niet minder dan 32767, afhankelijk van de C-bibliotheken.

//Voorbeeld 1.c
#include
#include
int hoofd()

int ik;
printf("10 willekeurige getallen =>\n");
voor(i=0;i<10;i++)

printf("%d",rand());

printf("\n");
retourneer 0;


In voorbeeld1.c, we noemen de functie rand() in elke iteratie van de for-lus en drukken de geretourneerde waarde van de functie af. De waardenreeks van de functie rand() is hetzelfde elke keer dat we het programma uitvoeren. Standaard is de seed van de randfunctie ingesteld op 1.

We kunnen het begin voor de randfunctie instellen met behulp van de srand() functie. Het zaad kan slechts één keer worden ingesteld, en vóór de eerste keer rand() functieaanroep.

srand() functie:

Header-bestand:

stdlib.h

Syntaxis:

int srand (unsigned int seed)

Argumenten:

Deze functie heeft 1 argument

zaad: Een geheel getal dat wordt gebruikt als startpunt voor een nieuwe reeks pseudo-willekeurige getallen.

Retourwaarden:

Geen

//Voorbeeld2.c
#include
#include
#include
int hoofd()

int ik;
srand(tijd(0));
printf("10 willekeurige getallen =>\n");
voor(i=0;i<10;i++)

printf("%d",rand());

printf("\n");
retourneer 0;


In voorbeeld2.c, we hebben de functie srand() gebruikt om de initiële seed in te stellen van de reeks willekeurige getallen die wordt gegenereerd door de functie rand(). Elke keer dat het programma wordt uitgevoerd, wordt een andere volgorde gegenereerd. In srand(), functie time(0) (aangegeven in tijd.h header-bestand) wordt gebruikt als een seed. Deze functie time(0) retourneert het aantal seconden dat is verstreken sinds het tijdperk (00:00:00, 1 januari 1970). Dit kan nog steeds dezelfde reeksen produceren als u het programma in dezelfde seconde uitvoert.

//Voorbeeld3.c
#include
#include
#include
int hoofd()

int ik;
srand(tijd(0));
printf("10 willekeurige getallen tussen 1 en 10=>\n");
voor(i=0;i<10;i++)

printf("%d",(rand() %10) + 1);

printf("\n");
retourneer 0;


In voorbeeld3.c we hebben gezien hoe willekeurige getallen kunnen worden gegenereerd tussen 1 en 10.

//Voorbeeld4.c
#include
#include
#include
int hoofd()

int i,max,min;
printf("Voer Min waarde in => ");
scanf("%d",&min);
printf("Voer Max waarde in => ");
scanf("%d",&max);
als(min>max)

printf("Min waarde is groter dan max waarde\n");
retourneer 0;

srand(tijd(0));
printf("10 willekeurige getallen tussen %d en %d=>\n",min,max);
voor(i=0;i<10;i++)

printf("%d",(rand() % (max - min +1)) + min);

printf("\n");
retourneer 0;


In voorbeeld4.c we hebben het bereik van de gebruiker overgenomen en een willekeurig getal binnen dit bereik gegenereerd. De formule is: rand() % (max - min +1)) + min

//Voorbeeld5.c
#include
#include
#include
int hoofd()

int ik;
srand(tijd(0));
printf("10 willekeurige getallen tussen 0.0 en 1.0=>\n");
voor(i=0;i<10;i++)

printf("%f",((float)rand() /RAND_MAX));

printf("\n");
retourneer 0;


In voorbeeld5.c, we hebben gezien hoe we willekeurige getallen kunnen genereren tussen float 0.0 en 1.0 De formule is: (float)rand() /RAND_MAX)

//Voorbeeld6.c
#include
#include
#include
int hoofd()

int ik;
vlotter max,min;
printf("Voer Min waarde in => ");
scanf("%f",&min);
printf("Voer Max waarde in => ");
scanf("%f",&max);
als(min>max)

printf("Min waarde is groter dan max waarde\n");
retourneer 0;

srand(tijd(0));
printf("10 willekeurige getallen tussen %f en %f =>\n",min,max);
voor(i=0;i<10;i++)

printf("%f", min + ((float)rand() /(RAND_MAX/(max - min))));

printf("\n");
retourneer 0;


In voorbeeld6.c, we hebben het bereik van de gebruiker genomen en een willekeurig getal gegenereerd binnen dit bereik (beide inclusief). De formule is: min + ((float)rand() /(RAND_MAX/(max - min)))

Conclusie:

In dit artikel hebben we geleerd hoe willekeurige getallen kunnen worden gegenereerd met behulp van de rand() en srand() functie. Er zijn geen garanties over de kwaliteit van de willekeurige getallen die door de randfunctie worden gegenereerd, maar het is goed genoeg voor incidenteel gebruik.

Hoe FPS-teller in Linux-games te tonen
Linux-gaming kreeg een grote duw toen Valve in 2012 Linux-ondersteuning voor Steam-client en hun games aankondigde. Sindsdien hebben veel AAA- en indi...
Sid Meier's Civilization VI downloaden en spelen op Linux and
Inleiding tot het spel Civilization 6 is een moderne versie van het klassieke concept dat werd geïntroduceerd in de serie Age of Empires-games. Het id...
Doom installeren en spelen op Linux
Inleiding tot Doom De Doom-serie is ontstaan ​​in de jaren 90 na de release van de originele Doom. Het was meteen een hit en vanaf die tijd heeft de g...