欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

c语言rand函数_C语言随机函数学不明白?一知识一案例,全面解析C语言随机函数

发布时间:2023/12/20 编程问答 42 豆豆
生活随笔 收集整理的这篇文章主要介绍了 c语言rand函数_C语言随机函数学不明白?一知识一案例,全面解析C语言随机函数 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

前言

本文主要讲解C语言的随机函数,学习随机函数将由此拉开序幕,亲爱的准备好了没?

随机数

随机数主要是通过rand()函数产生的,rand() 函数可以随机产生一个正整数,它会产生一个无符号整数,范围在1~32767,即两字节16位的整数最大值。而GNU C++产生的随机数范围为2147483647。 范围中的每一个数在每次随机调用rand时都有相同的概率被选中。使用随机函数的时候需要加上#inlcude 头文件。如以下案例:

注意:每次程序运行的结果答案都是相同的,这显然不是我们想要的。这是因为,rand函数不是真正的随机数生成器,而srand()会设置供rand()使用的随机数种子。如果你在第一次调用rand()之前没有调用srand(),那么系统会为你自动调用srand()。而使用同种子相同的数调用 rand()会导致相同的随机数序列被生成。如果要确保每次产生的都不一样,我们需要引用一个专门为rand设置随机化种子的函数srand().

随机函数种子

随机函数种子srand函数在库中说明如下:

//接口说明:time()  returns  the  time  as  the  number  of  seconds  since  the Epoch, 1970-01-01 00:00:00 +0000 (UTC).   If tloc is non-NULL, the return value is also stored in the memory  pointed to by tloc.

意思就是:要想每次随机结果不一样,就要每次运行更改种子,time函数返回当前时间距离197-01-01的描述,每次运行都不一样,正好可以当做种子,既就是大家学习的rand()函数的时候,老师让大家写srand((unsigned int)time(NULL))的原因,让随机数与时间绑定关系,时间在改变,随机数自然能够改变。

其实srand函数的参数编程中可以自己随意设置,伪随机就是每次得到的数据有规律可循,默认情况下数字在1~0x7fff,也就是(1~32767)。当设置参数为srand(1000),则生成的随机数是1000~0x7fff。

如下实例:

随机函数固定范围

主要思路其实非常简单,就是通过取余来做即可

尾言

文章都是手打原创,每天最浅显的介绍C语言、C++,windows知识,喜欢我的文章就关注一波吧,可以看到最新更新和之前的文章哦。如果足下基础比较差,不妨关注下人人都可以学习的视频教程

《C语言51课视频教程合集》

《C++45课视频教程》

通俗易懂,深入浅出,一个视频只讲一个知识点。视频不深奥,不需要钻研,在公交、在地铁、在厕所都可以观看,随时随地涨姿势

总结

以上是生活随笔为你收集整理的c语言rand函数_C语言随机函数学不明白?一知识一案例,全面解析C语言随机函数的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。