srand() 设置随机数的种子,请问这个种子怎么理解
来源:2-3 随机生成算法测试用例
人土土zzzzz
2016-10-28
如题
写回答
1回答
-
在计算机中,随机数的生成都是“伪“随机的,也就是说,不是真正的随机数,而是通过一系列固定的规则生成的随机数。运行这一些列规则需要一个启动值。启动值不同,生成的数据也不同。所以使用不同的启动值,可以模拟真实的随机。这个启动值就是随机数的种子。
在C++中(包括很多别的语言中),通常使用时间函数time(NULL)生成随机种子。这是因为在大多数情况下,用户触发随机函数的时间点(精确到毫秒)通常都不同。这样最大程度保证了随机性。
当然,如果对随机要求更高的程序,这样做是不好的。关于随机数,有很多有意思的话题。大多和数学相关。同时,随机数生成算法也是一个专有领域,这些不在我们这个课程的范围里。有兴趣可以搜搜看:)
简单来讲,可以记住这么一个规则:在生成随机数前,需要设定随机数种子,来保证随机性。时间函数返回的时间戳整型值,是一个常用的种子,在大多数普通情况都很好用。
712016-10-28
相似问题