RAND -Funktion in der C -Sprache

RAND -Funktion in der C -Sprache
In der C -Sprache die Rand () Funktion wird verwendet für Pseudo -Zahlengenerator (PRNG). Die von der Funktion rand () generierten Zufallszahlen sind nicht wirklich zufällig. Es ist eine Sequenz, die sich regelmäßig wiederholt, aber die Zeit ist so groß, dass wir sie ignorieren können. Der Rand () Funktion funktioniert, indem er sich an einen Seed -Wert erinnert, der verwendet wird, um die nächste Zufallszahl und den nächsten neuen Samen zu berechnen. In diesem Artikel werden wir ausführlich besprechen, wie zufällige Zahlen mit dem generiert werden können Rand () Funktion. Also lasst uns anfangen!

Header-Datei:

stdlib.H

Syntax:

int rand (void)

Rückgabewerte:

Diese Funktion gibt die nächste Pseudo-Random-Nummer in der Serie zurück. Der Bereichswert der Zahlenreihe liegt zwischen 0 und Rand_max. Rand_max ist ein Makro in definiert in stdlib.H Header -Datei, deren Wert der Höchstwert ist, der nach Rand () -Funktion zurückgeben kann. Der Wert von Rand_max ist größer, aber nicht weniger als 32767, je nach C -Bibliotheken.

//Beispiel 1.C
#enthalten
#enthalten
int main ()

int i;
printf ("10 zufällige Zahlen => \ n");
für (i = 0; i<10;i++)

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

printf ("\ n");
Rückkehr 0;


In Beispiel1.c, wir nennen die Rand () -Funktion in jeder Iteration von für Schleife und drucken den Rückgabewert der Funktion. Die Wertsequenz der Rand () -Funktion ist jedes Mal gleich, wenn wir das Programm ausführen. Standardmäßig ist der Samen der Rand -Funktion auf 1 gesetzt.

Wir können den Saatgut für die Rand -Funktion mit dem festlegen srand () Funktion. Der Samen kann nur einmal und vor dem ersten Mal eingestellt werden Rand () Funktionsaufruf.

Srand () Funktion:

Header-Datei:

stdlib.H

Syntax:

int srand (vorzeichenloses Int -Samen)

Argumente:

Diese Funktion erfordert 1 Argument

Samen: Ein ganzzahliger Wert, der als Samen für eine neue Reihe von Pseudo-Random-Zahlen verwendet wird.

Rückgabewerte:

Keiner

// Beispiel2.C
#enthalten
#enthalten
#enthalten
int main ()

int i;
Srand (Zeit (0));
printf ("10 zufällige Zahlen => \ n");
für (i = 0; i<10;i++)

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

printf ("\ n");
Rückkehr 0;


In Beispiel2.c, wir haben die Funktion srand () verwendet, um den Anfangssamen der von der Rand () -Funktion generierten Zufallszahlensequenz einzustellen. Jedes Mal, wenn das Programm ausgeführt wird, wird eine andere Sequenz erzeugt. In Srand (), Zeit (0) Funktion (deklariert in Zeit.H Header -Datei) wird als Samen verwendet. Diese Zeit (0) -Funktion gibt die Anzahl der seit der Epoche verstrichenen Sekunden zurück (00:00:00, 1. Januar 1970). Dies kann immer noch dieselben Sequenzen produzieren, wenn Sie das Programm in derselben Sekunde ausführen.

// Beispiel3.C
#enthalten
#enthalten
#enthalten
int main ()

int i;
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");
Rückkehr 0;


In Beispiel3.c Wir haben gesehen, wie zufällige Zahlen zwischen 1 und 10 generiert werden können.

// Beispiel4.C
#enthalten
#enthalten
#enthalten
int main ()

int i, max, min;
printf ("min value =>");
scanf ("%d", & min);
printf ("max value =>");
scanf ("%d", & max);
if (min> max)

printf ("min -Wert ist größer als der maximale Wert \ n");
Rückkehr 0;

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");
Rückkehr 0;


In Beispiel4.c Wir haben den Bereich vom Benutzer genommen und eine Zufallszahl in diesem Bereich generiert. Die Formel lautet: Rand () % (max - min +1)) + min

// Beispiel5.C
#enthalten
#enthalten
#enthalten
int main ()

int i;
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");
Rückkehr 0;


In Beispiel5.c, wir haben gesehen, wie wir zufällige Zahlen zwischen Float 0 erzeugen können.0 und 1.0 Die Formel lautet: (float) rand () /rand_max)

// Beispiel6.C
#enthalten
#enthalten
#enthalten
int main ()

int i;
Float Max, min;
printf ("min value =>");
scanf ("%f", & min);
printf ("max value =>");
scanf ("%f", & max);
if (min> max)

printf ("min -Wert ist größer als der maximale Wert \ n");
Rückkehr 0;

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");
Rückkehr 0;


In Beispiel6.c, wir haben den Bereich vom Benutzer genommen und eine Zufallszahl in diesem Bereich generiert (beide inklusive). Die Formel lautet: min + ((float) rand () /(rand_max /(max - min)))

Abschluss:

In diesem Artikel haben wir gelernt, wie zufällige Zahlen mit dem generiert werden können Rand () Und srand () Funktion. Es gibt keine Garantien für die Qualität der von der Rand -Funktion erzeugten Zufallszahlen, aber es ist gut genug für den lässigen Gebrauch.