C和C++中的rand和srand函数

C语言中的rand函数(stdlib.h)

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main()
{
    int i;
    srand(time(NULL));
    for(i = 5; i > 0; i--)
    {   
        printf("%d\n", rand());
    }   
    return 0;
}

rand()函数用来产生0到RAND_MAX(stdlib.h中的宏定义)之间的随机数,系统在调用rand()之前都会自动调用srand(),如果用户在rand()之前曾调用过srand()给参数seed指定了一个值,那么 rand()就会将seed的值作为产生伪随机数的初始值;而如果用户在rand()前没有调用过srand(),那么系统默认将1作为伪随机数的初始 值。如果给了一个定值,那么每次rand()产生的随机数序列都是一样的,所以我们首先使用time(0)初始化seed参数,使用当前时间初始化seed参数,所以每次调用此程序都能产生不同的随机序列。

time()函数(time.h),原型    time_t time(time_t *t);

返回值和参数t指针所指的长整型变量都会被赋为1970-01-01至今的秒数。

rand()用法举例:

//返回[-1.0, 1.0]之间的随机浮点数
float randnu =(rand()-RAND_MAX/2) / (float)(RAND_MAX/2);
//返回[0, 1.0]之间随机浮点数
float randnu =rand() / (float)RAND_MAX;

C++中的rand()函数用法基本一致,只是将函数包含在std名称空间中,头文件变为#include <cstdlib>。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值