std::rand(3) C++ Standard Libary std::rand(3) NAME std::rand - std::rand Synopsis Defined in header <cstdlib> int rand(); Returns a pseudo-random integral value from the range [0, RAND_MAX]. std::srand() seeds the pseudo-random number generator used by rand(). If rand() is used before any calls to std::srand(), rand() behaves as if it was seeded with std::srand(1). Each time rand() is seeded with std::srand(), it must produce the same sequence of values on successive calls. Other functions in the standard library may call rand. It is implementa- tion-defined which functions do so. It is implementation-defined whether rand() is thread-safe. Parameters (none) Return value Pseudo-random integral value between 0 and RAND_MAX. Notes There are no guarantees as to the quality of the random sequence pro- duced. In the past, some implementations of rand() have had serious shortcomings in the randomness, distribution and period of the sequence produced (in one well-known example, the low-order bit simply alternated between 1 and 0 between calls). rand() is not recommended for serious random-number generation needs. It is recommended to use C++11's random number generation facilities to replace rand(). (since C++11) Example // Run this code #include <cstdlib> #include <ctime> #include <iostream> int main() { std::srand(std::time(nullptr)); // use current time as seed for random generator int random_value = std::rand(); std::cout << "Random value on [0, " << RAND_MAX << "]: " << ran- dom_value << '\n'; for (const int times = 8; const int sides : {2, 4, 6, 8}) { std::cout << "Roll " << sides << "-sided dice " << times << " times: "; for (int n = 0; n != times; ++n) { int x = sides + 1; while (x > sides) x = 1 + std::rand() / ((RAND_MAX + 1u) / sides); // Note: 1 + rand() % sides is biased std::cout << x << ' '; } std::cout << '\n'; } } Possible output: Random value on [0, 2147483647]: 948298199 Roll 2-sided dice 8 times: 2 2 1 2 1 1 2 2 Roll 4-sided dice 8 times: 1 3 4 2 1 3 3 1 Roll 6-sided dice 8 times: 3 2 1 6 6 4 4 2 Roll 8-sided dice 8 times: 4 5 6 6 3 6 1 2 See also uniform_int_distribution produces integer values evenly distributed across a range (C++11) (class template) srand seeds pseudo-random number generator (function) RAND_MAX maximum possible value generated by std::rand (macro constant) randint generates a random integer in the specified range (function template) C documentation for rand http://cppreference.com 2024.06.10 std::rand(3)
NAME | Synopsis | Parameters | Return value | Notes | Example | Possible output: | See also
Want to link to this manual page? Use this URL:
<https://man.FreeBSD.org/cgi/man.cgi?query=std::rand&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>