关于产生随机数列的重点-自己遇到的问题
2013-11-05 16:14
204 查看
srand()((unsigned int)time(0));
srand()的形参是unsigned int类型的;
这句话只要写一次,一般情况下只能写一次;
随机数是随机的数,但计算机不可能产生随机数,计算机根据你的输入,再跟一个算法就产生一个特定的序列.只要
你给计算机一个相同的数,计算机返回的就是一个特定的数,所以这样的数叫做伪随机数.
而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()的话,因为时间还没来得及变,它还不是完全随机的,在下一秒就会换取另一条序列,可以
说是相对的随机。这牵扯掉内部的东西,只要知道层面上的东西就够了。现在我来告诉你为什么你得到了2组一样的结
果,因为计算机运算的速度是相当快的,你的2次srand()取值操作肯定是在一秒内之间发生的,第一次产生随机数
后,你又写了一遍srand((unsigned)time(NULL)); 相当于根据时间又埋下了种子,而这次埋下的种子和上一次的种子
是完全相同的,所以产生的序列也相同,于是计算机又按顺序从头开始把这条序列中的值取出来,产生了上述结果;
总结,在程序中只要写一次srand((unsigned)time(NULL)); 这个很重要,重复调用 会出现随机出来的点数容易相同
srand()的形参是unsigned int类型的;
这句话只要写一次,一般情况下只能写一次;
随机数是随机的数,但计算机不可能产生随机数,计算机根据你的输入,再跟一个算法就产生一个特定的序列.只要
你给计算机一个相同的数,计算机返回的就是一个特定的数,所以这样的数叫做伪随机数.
而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()的话,因为时间还没来得及变,它还不是完全随机的,在下一秒就会换取另一条序列,可以
说是相对的随机。这牵扯掉内部的东西,只要知道层面上的东西就够了。现在我来告诉你为什么你得到了2组一样的结
果,因为计算机运算的速度是相当快的,你的2次srand()取值操作肯定是在一秒内之间发生的,第一次产生随机数
后,你又写了一遍srand((unsigned)time(NULL)); 相当于根据时间又埋下了种子,而这次埋下的种子和上一次的种子
是完全相同的,所以产生的序列也相同,于是计算机又按顺序从头开始把这条序列中的值取出来,产生了上述结果;
总结,在程序中只要写一次srand((unsigned)time(NULL)); 这个很重要,重复调用 会出现随机出来的点数容易相同
相关文章推荐
- 关于tomcat端口的修改,以及同时部署多个应用,自己遇到的问题以及解决办法
- 关于如何产生随机红包金额问题
- 关于 自己遇到的内存溢出问题
- 关于自己遇到的"Exception starting filter struts2"的问题的解决方案
- Web开发中遇到关于spring注入的问题(尚未整理 仅供自己参考)
- 关于wget通过squid代理配置https时自己遇到的问题
- 关于自己遇到的"Exception starting filter struts2"的问题的解决方案(转)
- 关于web项目中的程序调试(为了记住自己遇到的问题,慢慢增加)
- 关于《自己动手写CPU》使用GNU工具过程遇到的问题
- [置顶] 关于部署hexo到自己的Github博客上遇到的几个问题
- 关于自己遇到的nfs 挂载问题:
- 【总结】关于自己装Ubuntu以来遇到的所有问题及其解决方法
- 学习c语言遇到的一些问题(3)(Linux)(getchar()和gets()重点:scanf产生的回车符问题)
- 总结java关于jacob操作word这几天遇到的问题!
- 在实验静态块等时遇到到关于main函数的问题
- 自己安装部署wampsever遇到的问题
- 关于在部署jsp网站时遇到问题:MySql连接不上、Tomcat的闪退
- 关于android ListView倒计时遇到的一些问题
- 关于typeAliases标签理解 自己挖的坑啊,解决了好久的问题。
- 如何解决关于TableView里面cell随机显示的问题