随机数是随机的数,但计算机不可能产生随机数,计算机根据你的输入,再跟一个算法就产生一个特定的序列.
只要你给计算机一个相同的数,计算机返回的就是一个特定的数,所以这样的数叫做伪随机数.
而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.
随机数知道这么多就够了.