概述
rand()这个函数对于一个新手来说第一次出现就是在猜字数游戏当中,可是第一次看根本不懂,只是照着套用,直到上周选修课又编程猜字数游戏用到时,觉得是应该好好弄懂了!(废话好多(^__^)
猜字数想让程序生成,就用stdilb.h头文件中的rand()函数,每次调用都会返回一个随机整数,叫伪随机数,范围是0~RAND-MAX
int chosen=0;
chosen=rand();
但rand()函数生成序列需要一个初始种子数字,对于特定的种子,生成的序列相同。(即每次猜数游戏调用它猜的都是同一个数字,那还有什么意思?)这个时候就需要srand(),也属于stdlib.h中,调用它可以传递给它的参数作为种子初始化序列,就是这样我们每次猜的数字都会不同,着才是一个正常的游戏,you know?
但这样还不够,time.h头文件中声明的time()函数,返回的是1970年1月1日到现在经过的秒数,所以每次返回值double不同,time()函数的参数值是NULL
srand(time(NULL));
int chosen=0;
chosen=rand();
这样我们就可以每次得到一个不同的整数了,但是还有一个问题:那就是你猜数字总该有个范围是吧,要不然太大了,猜一辈子吗?也不能这样虐单身dog是吧。上限RAND-MAX相当大,通常为int最大值,但可以缩小范围:
比如猜的数字 x~y
就是 x+rand()%(y-x+1) 【公式】
或者:
float a;
a=rand()%y+x;
这样就是产生[x,x+y)之间的数字,也就是[x,x+y-1]
两种表达方式都是一样的
srand(time(NULL));
int chosen=0;
chosen=1+rand()%100; //范围是1~100
OK啦,我特别去找了些资料,尽量白话文,这样大家都懂了吧,恩,不错,继续加油吧
最后
以上就是矮小世界为你收集整理的生成伪随机整数rand()的全部内容,希望文章能够帮你解决生成伪随机整数rand()所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复