
C语言生成随机数的函数,为什么循环后随机数都一样?
1个回答
展开全部
怎么改ls的大哥们都说了:就是把scand放到for循环上面,只调用一次就可以了。
至于为什么放在for循环里会产生相同的随机数,我来给你说下吧:
srand()函数是初始化随机数产生器,它产生随机数种子,说白了就是初始化随机数。
srand((unsigned)time(0));取的是系统时间,也就是距离1970.1.1午夜有多少秒。
而for循环每循环一次时间远远小于1秒,这就导致了srand((unsigned)time(0))产生的种子并没有改变。
那么,相同的随机数种子所产生的随机数肯定是一样的了。
您明白了吧?
至于为什么放在for循环里会产生相同的随机数,我来给你说下吧:
srand()函数是初始化随机数产生器,它产生随机数种子,说白了就是初始化随机数。
srand((unsigned)time(0));取的是系统时间,也就是距离1970.1.1午夜有多少秒。
而for循环每循环一次时间远远小于1秒,这就导致了srand((unsigned)time(0))产生的种子并没有改变。
那么,相同的随机数种子所产生的随机数肯定是一样的了。
您明白了吧?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询