Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Generiert eine pseudozufällige Zahl. Eine programmgesteuertere Version dieser Funktion ist verfügbar; siehe rand_s
. Von ihnen generierte rand
Zahlen sind nicht kryptografisch sicher. Verwenden Sie die funktionen, die in der C++-Standardbibliothek <random>
deklariert sind, um eine kryptografisch sichere Zufallszahl zu generierenrand_s
.
Syntax
int rand(void);
Rückgabewert
rand
gibt eine Pseudozufallszahl zurück, wie oben beschrieben. Es gibt keine Fehlerrückgabe.
Hinweise
Die rand
-Funktion gibt eine pseudozufällige Ganzzahl im Bereich von 0 bis RAND_MAX
(32767) zurück. Verwenden Sie die srand
Funktion, um den Pseudorandomnummerngenerator vor dem Aufrufen zu seedieren rand
.
Die rand
Funktion generiert eine bekannte Sequenz und eignet sich nicht für die Verwendung als kryptografische Funktion. Verwenden Sie die funktionen, die in der C++-Standardbibliothek <random>
deklariert sind, um eine kryptografisch sichere Zufallszahl zu generierenrand_s
.
Standardmäßig gilt der globale Zustand dieser Funktion für die Anwendung. Wie Sie dieses Verhalten ändern, erfahren Sie unter Globaler Status in der CRT.
Anforderungen
Routine | Erforderlicher Header |
---|---|
rand |
<stdlib.h> |
Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.
Beispiel
// crt_rand.c
// This program seeds the random-number generator
// with a fixed seed, then exercises the rand function
// to demonstrate generating random numbers, and
// random numbers in a specified range.
#include <stdlib.h> // rand(), srand()
#include <stdio.h> // printf()
void SimpleRandDemo(int n)
{
// Print n random numbers.
for (int i = 0; i < n; i++)
{
printf(" %6d\n", rand());
}
}
void RangedRandDemo(int range_min, int range_max, int n)
{
// Generate random numbers in the interval [range_min, range_max], inclusive.
for (int i = 0; i < n; i++)
{
// Note: This method of generating random numbers in a range isn't suitable for
// applications that require high quality random numbers.
// rand() has a small output range [0,32767], making it unsuitable for
// generating random numbers across a large range using the method below.
// The approach below also may result in a non-uniform distribution.
// More robust random number functionality is available in the C++ <random> header.
// See https://learn.microsoft.com/cpp/standard-library/random
int r = ((double)rand() / RAND_MAX) * (range_max - range_min) + range_min;
printf(" %6d\n", r);
}
}
int main(void)
{
// Seed the random-number generator with a fixed seed so that
// the numbers will be the same every time we run.
srand(1792);
printf("Simple random number demo ====\n\n");
SimpleRandDemo(10);
printf("\nRandom number in a range demo ====\n\n");
RangedRandDemo(-100, 100, 100000);
}```
```Output
Simple random number demo ====
5890
1279
19497
1207
11420
3377
15317
29489
9716
23323
Random number in a range demo ====
-82
-46
50
77
-47
32
76
-13
-58
90
Siehe auch
Mathematische Unterstützung und Gleitkommaunterstützung
srand
rand_s
C++- <random>
Bibliothek