C语言生成随机数、C++11按分布生成随机数学习

本文介绍了C语言中使用rand()生成随机数的方法,包括如何获取特定范围内的整数和小数。同时,讨论了srand()函数在设置随机数种子中的作用。接着转向C++11,讲解了新标准中的随机数库,包括随机数引擎和分布类,以及如何生成不同分布类型的随机数,如均匀分布、正态分布等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C语言生成随机数

如果只要产生随机数而不需要设定范围的话,只要用rand()就可以;rand()会返回一随机数值, 范围在0至RAND_MAX 间;RAND_MAX定义在stdlib.h, 其值为2147483647;

如果想要获取在一定范围内的数的话,直接做相应的除法取余即可;

如何获取小数呢?例如,我们可以先获得10001以内的整数(0~10000),然后再用这个整数除以10000得到小数点后两位的小数;

通过多次运行发现,如果只使用rand(),生成了10个随机数,这10个随机数是固定的;

这与srand()函数有关;srand()用来设置rand()产生随机数时的随机数种子;在调用rand()函数产生随机数前,可以先利用srand()设好随机数种子(seed), 如果未设随机数种子, rand()在调用时会自动设随机数种子为1;

srand()函数定义 : void srand (unsigned int seed);

通常可以利用geypid()或time(0)的返回值来当做seed;

如果你用time(0)的话,要加入头文件#include<ctime>;

time(0)或者time(NULL)返回的是系统的时间

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值