c++中srand()的使用
use of srand() in c++
我是c++的新手,所以这个疑问可能看起来很基本,但我不明白rand()和rand()之间的区别,以及srand()中的"seed"是什么意思?当我写srand(time(NULL))时,它是如何生成随机数的,time(NULL)在这里做什么?它是什么?提前感谢
随机数生成器需要一个数字(称为seed)来生成随机数。如果随机数生成器被赋予相同的种子,那么每次它都会生成相同的随机数序列。例如:-
如果你运行程序,它正在生成随机序列2,78,45,60。如果第二次运行该程序,您将再次得到相同的序列2,78,45,60。
srand函数用于更改随机数生成器的种子。通过设置srand(time(NULL)),您将随机数生成器的种子设置为当前时间。每次运行程序时都这样做,您将得到不同的随机序列:-
例如,对于第一次运行,如果您得到2,78,45,60。下一次您可能会得到5,3,6,80(取决于当前时间,因为自从上次运行以来时间发生了变化,seed已经发生了变化)
查看更多信息:-
http://www.cplusplus.com/reference/clibrary/cstdlib/rand/http://www.cplusplus.com/reference/clibrary/cstdlib/srand/http://www.cplusplus.com/reference/clibrary/ctime/time/rand()
不产生随机数-它使用一些非常简单的公式来计算下一个"随机值",基于其存储的内部状态,每次生成随机值时都会发生变化。srand()
设置内部状态
这样你就可以得到一组可重复的数字——你用一个给定的值调用srand()
,然后rand()
产生一组值。当您下次启动程序并使用完全相同的值调用srand()
时,rand()
将产生完全相同的一组值。这对模拟很有用。
调用srand( time( NULL ) )
使您的程序生成一组值,这些值将依赖于当前时间,因此是不可复制的-每次重新启动程序时都会生成一组新的数字。
相关文章:
- C++ 'srand()' 函数产生模式?
- 如何调用 ntoskrnl.exe srand 函数?
- srand() 输出了错误的值
- SRAND 不会每次都初始化新输出
- 使用 rand() 和 srand() 有问题
- C++ SRAND(time(0)) 在猜谜游戏中不起作用
- 为什么我们可以在 c++ 中使用 srand(clock())?
- C++ 更深入地了解 rand() 和 srand() 内部
- rand() 和 srand() 给出了奇怪的相似结果.来自 rand() 的返回非常相似
- 关于呼叫srand的说明
- 为什么即使我反复重置它,srand(time(NULL))也能顺利工作
- 每当我的程序运行时,使用SRAND(TIME(NULL))都会给出相同的输出(不在循环中,播种有足够大的值)
- 在与时间一起使用 srand 时,如果我没有time_t参数明确地将参数转换为无符号的 int 参数,这有关系吗?
- 即使使用 srand(time(NULL))也不会获得随机值
- SRAND 在类中的函数
- 如何在使用随机生成器(srand,rand)时检查数字是否不同
- Srand无法正常工作
- 在具有相同种子的同一程序中对srand()的第二次调用不会为连续的rand()生成相同的值
- 在同一程序中调用srand()两次
- 结合rand()和srand()以提高性能