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.
#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.
#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
#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)
#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.