展开全部
随机数是随机的数,但计算机不可能产生随机数,计算机根据你的输入,再跟一个算法就产生一个特定的序列.
只要你给计算机一个相同的数,计算机返回的就是一个特定的数,所以这样的数叫做伪随机数仔携弊.
而srand(unsigned
int
par);这就是原型,这就是你给计算机的数.计算机通过rand()返回一个序列,假设是{2,6,8,51....},只要给相同的参数,
这个序列是特定的.int
a=rand();这时候a=2;所以可以得出只要每次给计算机不同的数也就是srand(unsigned
int
pra)也就是给pra是不同的值,我们就可以认为这个序列是随机的.要想给不同的值,最简单的方法是把系统时间转化成unsigned给计算机就可以了,因为每时每刻时间都是不同的.这里要注意,时间是秒为单位,也就是说你如果srand((unsigned)time(NULL));
只是在每一秒内取随rand()的话念族,因为时间还没来得及变,它还不是随机的.
那要取到1-9内的随机数应该是这样的:rand()%9+1
+1的目的是给9求余只能产生0-8,加1正好就1-9.
随机数知道隐碧这么多就够了.
只要你给计算机一个相同的数,计算机返回的就是一个特定的数,所以这样的数叫做伪随机数仔携弊.
而srand(unsigned
int
par);这就是原型,这就是你给计算机的数.计算机通过rand()返回一个序列,假设是{2,6,8,51....},只要给相同的参数,
这个序列是特定的.int
a=rand();这时候a=2;所以可以得出只要每次给计算机不同的数也就是srand(unsigned
int
pra)也就是给pra是不同的值,我们就可以认为这个序列是随机的.要想给不同的值,最简单的方法是把系统时间转化成unsigned给计算机就可以了,因为每时每刻时间都是不同的.这里要注意,时间是秒为单位,也就是说你如果srand((unsigned)time(NULL));
只是在每一秒内取随rand()的话念族,因为时间还没来得及变,它还不是随机的.
那要取到1-9内的随机数应该是这样的:rand()%9+1
+1的目的是给9求余只能产生0-8,加1正好就1-9.
随机数知道隐碧这么多就够了.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询