The Wayback Machine - https://web.archive.org/web/20160329151321/http://zh.cppreference.com:80/w/c/numeric/random/rand

rand

来自cppreference.com
< c‎ | numeric‎ | random
在头文件 <stdlib.h> 中定义
int rand();

返回一个伪随机整数值,取值范围从0RAND_MAX(包括0和RAND_MAX)。

srand()初始化rand()使用的为随机数生成器。 如果rand()srand()被初次调用之前使用,rand()的行为将与通过srand(1)初始化时一致。 每次rand()srand()初始化,它必须产生同样的值序列。

rand()并不保证线程安全。


目录

[编辑] 参数

(无)

[编辑] 返回值

0RAND_MAX之间的伪随机整数值。

[编辑] 备注

对生成的随机序列的质量没有保证。过去,一些rand()的实现曾在随机性、分布和生成序列的周期上有严重的缺陷(在一个广为人知的例子中,低位的bit仅仅在调用间于10间变动)。 并不推荐将rand()用于重要的随机数生成需求,例如密码学。

POSIX标准要求rand使用的伪随机数生成器的周期至少为232

POSIX标准提供了一个rand的线程安全版本,名为rand_r,现已过时并被drand48函数家族取代。

[编辑] 示例

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
int main(void)
{
    srand(time(0)); //将当前时间作为随机数生成器的种子
    int random_variable = rand();
    printf("Random value on [0,%d]: %d\n", RAND_MAX, random_variable);
}

Possible output:

Random value on [0 2147483647]: 1373858591

[编辑] 另请参阅

初始化伪随机数发生器
(函数) [edit]
rand()所产生的最大可能值
原文:
maximum possible value generated by rand()
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(常量宏) [edit]
Morty Proxy This is a proxified and sanitized view of the page, visit original site.