Header-Datei:
stdlib.ha
Syntax:
int rand (ungültig)
Rückgabewerte:
Diese Funktion gibt die nächste Pseudozufallszahl in der Reihe zurück. Der Bereichswert der Zahlenreihe liegt zwischen 0 und RAND_MAX. RAND_MAX ist ein Makro, das in . definiert ist stdlib.ha Header-Datei, deren Wert der maximale Wert ist, der von der rand()-Funktion zurückgegeben werden kann. Der Wert von RAND_MAX ist je nach C-Bibliotheken größer, aber nicht kleiner als 32767.
//Beispiel 1.c#einschließen
#einschließen
int main()
int ich;
printf("10 Zufallszahlen =>\n");
für(i=0;i<10;i++)
printf("%d",rand());
printf("\n");
0 zurückgeben;
In Beispiel1.c rufen wir die Funktion rand() in jeder Iteration der for-Schleife auf und geben den Rückgabewert der Funktion aus. Die Wertefolge der Funktion rand() ist jedes Mal dieselbe, wenn wir das Programm ausführen. Standardmäßig ist der Seed der Rand-Funktion auf 1 . eingestellt.
Wir können den Seed für die rand-Funktion mit der set srand() Funktion. Der Seed kann nur einmal und vor dem ersten Mal gesetzt werden Rand() Funktionsaufruf.
srand()-Funktion:
Header-Datei:
stdlib.ha
Syntax:
int srand (unsignierter int Seed)
Argumente:
Diese Funktion benötigt 1 Argument
Samen: Ein ganzzahliger Wert, der als Startwert für eine neue Reihe von Pseudo-Zufallszahlen verwendet wird.
Rückgabewerte:
Keiner
//Beispiel2.c#einschließen
#einschließen
#einschließen
int main()
int ich;
srand(Zeit(0));
printf("10 Zufallszahlen =>\n");
für(i=0;i<10;i++)
printf("%d",rand());
printf("\n");
0 zurückgeben;
In Beispiel2.c, wir haben die srand()-Funktion verwendet, um den Anfangssaat der Zufallszahlenfolge zu setzen, die von der rand()-Funktion erzeugt wurde. Jedes Mal, wenn das Programm ausgeführt wird, wird eine andere Sequenz generiert. In srand(), time(0)-Funktion (deklariert in Zeit.ha Header-Datei) wird als Seed verwendet. Diese Funktion time(0) gibt die Anzahl der Sekunden zurück, die seit der Epoche (00:00:00, 1. Januar 1970) vergangen sind. Dies kann immer noch die gleichen Sequenzen erzeugen, wenn Sie das Programm in derselben Sekunde ausführen run.
#einschließen
#einschließen
#einschließen
int main()
int ich;
srand(Zeit(0));
printf("10 Zufallszahlen zwischen 1 und 10=>\n");
für(i=0;i<10;i++)
printf("%d",(rand() %10) + 1);
printf("\n");
0 zurückgeben;
In Beispiel3.c wir haben gesehen, wie Zufallszahlen zwischen 1 und 10 . erzeugt werden können.
#einschließen
#einschließen
#einschließen
int main()
int i,max,min;
printf("Minwert eingeben => ");
scanf("%d",&min);
printf("Max. Wert eingeben => ");
scanf("%d",&max);
wenn(min>max)
printf("Min-Wert ist größer als Max-Wert\n");
0 zurückgeben;
srand(Zeit(0));
printf("10 Zufallszahlen zwischen %d und %d=>\n",min,max);
für(i=0;i<10;i++)
printf("%d",(rand() % (max - min +1)) + min);
printf("\n");
0 zurückgeben;
In Beispiel4.c wir haben den Bereich vom Benutzer genommen und eine Zufallszahl innerhalb dieses Bereichs generiert. Die Formel lautet: Rand() % (max - min +1)) + min
#einschließen
#einschließen
#einschließen
int main()
int ich;
srand(Zeit(0));
printf("10 Zufallszahlen zwischen 0.0 und 1.0=>\n");
für(i=0;i<10;i++)
printf("%f",((float)rand() /RAND_MAX));
printf("\n");
0 zurückgeben;
In Beispiel5.c, wir haben gesehen, wie wir Zufallszahlen zwischen float 0 . erzeugen können.0 und 1.0 Die Formel lautet: (float)rand() /RAND_MAX)
#einschließen
#einschließen
#einschließen
int main()
int ich;
Schwimmer max,min;
printf("Minwert eingeben => ");
scanf("%f",&min);
printf("Max. Wert eingeben => ");
scanf("%f",&max);
wenn(min>max)
printf("Minwert ist größer als Maxwert\n");
0 zurückgeben;
srand(Zeit(0));
printf("10 Zufallszahlen zwischen %f und %f =>\n",min,max);
für(i=0;i<10;i++)
printf("%f ",min + ((float)rand() /(RAND_MAX/(max - min))));
printf("\n");
0 zurückgeben;
Im Beispiel6.c, wir haben den Bereich vom Benutzer genommen und eine Zufallszahl innerhalb dieses Bereichs generiert (beide inklusive). Die Formel lautet: min + ((float)rand() /(RAND_MAX/(max - min)))
Fazit:
In diesem Artikel haben wir gelernt, wie man Zufallszahlen mit Hilfe der Rand() und srand() Funktion. Es gibt keine Garantien für die Qualität der von der Rand-Funktion erzeugten Zufallszahlen, aber sie ist gut genug für den gelegentlichen Gebrauch.