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,各自产生随机数