rand不是真正的随机函数,是伪随机函数
srand设置随机函数种子
srand设置一个参数后,每调用一次rand产生一个随机数
srand(1000001)
rand – 21589
rand – 29335
rand – 14469
srand参数相同,多次调用rand依次返回的值相同,
srand (1000001)
rand - 21589
srand (1000001)
rand - 21589
srand (1000001)
rand - 21589
srand入参每增加1,rand返回值增加3 (从我的电脑上看到的,其它可能会有不同,不知道)
srand (1000001)
rand - 21589
srand (1000002)
rand - 21592
srand (1000003)
rand - 21595
所以通常来说,一个模块srand一般只调用一次,千万不要在ontimer之类的函数中调用srand和rand
如果只在主线程调用
srand (1000001)
则1:子线程不调用srand, 子线程1,子线程2同时使用主线程的种子,依次产生随机数
则2:子线程1,子线程2,都调用srand (1000001),则子线程1,子线程2,各自产生随机数
转载于:https://blog.51cto.com/boyka3721/1962870
本文详细解析了rand与srand函数的工作原理及应用技巧,包括如何正确设置随机数种子来确保随机数生成的独立性和不可预测性。强调了在多线程环境下正确使用这两个函数的重要性。
819

被折叠的 条评论
为什么被折叠?



