十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
C语言生成随机数的函数为rand(), 可以获得一个非负整数的随机数。要调用rand需要包含头文件stdlib.h。
创新互联公司专业为企业提供西青网站建设、西青做网站、西青网站设计、西青网站制作等企业网站建设、网页设计与制作、西青企业网站模板建站服务,十多年西青做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
要让随机数限定在一个范围,可以采用如下方法。
假设要产生随机数r, 其范围为 m=r=n,可以使用如下公式:
rand()%(n-m+1)+m
其原理为,对于任意数,
0=rand()%(n-m+1)=n-m
于是
0+m=rand()%(n-m+1)+m=n-m+m
即
m=rand()%(n-m+1)+m=n
在实际编程中,我们经常需要生成随机数。在c语言中我们通常使用rand方法生成随机数,在调用rand前需要调用srand初始化随机数种子。
电脑:华为MateBook14
系统:Windows10
软件:notepad++等编辑器、gcc编译器1.0
1、使用rand函数生成随机数,rand随机生成一个位于0 ~ RAND_MAX之间的整数。如下图中,我们直接使用rand方法生成10个随机数。
2、程序运行后生成了随机数,但直接使用rand的问题在于,在下次程序调用时,生成的随机数与上次一致。所以,rand函数虽然生成随机数,但可以说是一个伪随机。因为每次调用时,生成数字顺序都是固定的。
3、为了在每次调用时生成不同的随机数,使用srand函数初始化随机数种子。只要随机数种子变化了,那么生成的随机数就会改变。通常,srand使用当前时间作为种子。
4、但使用时间作为随机数种子是否安全呢?我们目前程序执行的速度都太快了,一秒钟对于计算机来说太漫长了。我们将生成随机数的操作定义为函数,然后调用函数两次,看生成的随机数仍然时一样。
5、优化函数也比较简单,在使用时间的基础上,我们还加上一个定增序号。这样能保证就算同一秒钟内多次调用,随机数的种子都是不一样的。
6、通常,我们需要获取一定范围内的随机数。所以,在生成随机数之后我们使用模运算获取对应范围内的数据。如生成0到100内的随机数。
假设要生成的随机数是大于等于20且小于等于100的整数
#includestdio.h
#includetime.h
#includestdlib.h
void main() { int a,b,x;
a=20; b=100;
srand((unsigned int)time(NULL)); //用当前时间生成一个随机数种子
x=rand()%(b-a+1)+a;
printf("得到一个随机数:%d\n",x);
}
你好,我是大鱼儿不吐泡泡,用百度网盘分享给你,点开就可以保存,链接永久有效^_^链接:
提取码: jbuj 复制这段内容后打开百度网盘手机App,操作更方便哦
--来自百度网盘超级会员v3的分享
如果有另外想要的资源或者链接失效,可以使用百度网盘推出的【收集文件】功能进行提问收集资源哦,无需转存简单快捷,功能链接: 微信小程序、百度网盘app、web端都已上线