C language 随机函数种子不知道是何_试试这篇文章,完整解析随机函数

感谢平台分享-http://bjbsair.com/2020-04-10/tech-info/53235.html

前言

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

随机数

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

C语言随机函数种子不知道是什么?试试这篇文章,全面解析随机函数

**注意:每次程序运行的结果答案都是相同的,这显然不是我们想要的。**这是因为,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.

C语言随机函数种子不知道是什么?试试这篇文章,全面解析随机函数

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

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

如下实例:

C语言随机函数种子不知道是什么?试试这篇文章,全面解析随机函数

随机函数固定范围

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

C语言随机函数种子不知道是什么?试试这篇文章,全面解析随机函数

发布了0 篇原创文章 · 获赞 0 · 访问量 2424

猜你喜欢

转载自blog.csdn.net/zxjoke/article/details/105435455