C-Programmierung

rand()-Funktion in C-Sprache

rand()-Funktion in C-Sprache
In der C-Sprache ist die Rand() Funktion wird verwendet für Pseudonummerngenerator (PRNG). Die von der Funktion rand() generierten Zufallszahlen sind nicht wirklich zufällig. Es ist eine Sequenz, die sich periodisch wiederholt, aber die Periode ist so groß, dass wir sie ignorieren können. Das Rand() Funktion funktioniert, indem sie sich an einen Startwert erinnert, der verwendet wird, um die nächste Zufallszahl und den nächsten neuen Startwert zu berechnen. In diesem Artikel werden wir im Detail diskutieren, wie Zufallszahlen mit Hilfe der generiert werden können Rand() Funktion. Also lasst uns anfangen!

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.

//Beispiel3.c
#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.

//Beispiel4.c
#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

//Beispiel5.c
#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)

//Beispiel6.c
#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.

Installieren Sie den neuesten Dolphin Emulator für Gamecube & Wii unter Linux
Mit dem Dolphin Emulator können Sie Ihre ausgewählten Gamecube- und Wii-Spiele auf Linux-Personalcomputern (PC) spielen. Als frei verfügbarer Open-So...
So verwenden Sie die GameConqueror-Cheat-Engine unter Linux
Der Artikel enthält eine Anleitung zur Verwendung der GameConqueror-Cheat-Engine unter Linux. Viele Benutzer, die Spiele unter Windows spielen, verwen...
Beste Spielkonsolen-Emulatoren für Linux
Dieser Artikel listet beliebte Spielekonsolen-Emulationssoftware auf, die für Linux verfügbar ist. Emulation ist eine Softwarekompatibilitätsschicht, ...