请高手指点rand()在多线程编程中的出现的怪病???? 我想是种子没选好吧我的办法在父线程中调用srand(time(NULL))使用时间做种子 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 难到不同的线程一定要先选种子吗?如果选同一个seed就不会出来随即数了???但如果我只有一个线程就不需要选种子就会出来随即数的,这是为什么???? 这是自然的,因为rand()对于各线程是独立的,就是说每个线程在线程切换时都保存当前随机的状态。 在父线程中调用srand(time(NULL))使用时间做种子也是没用的,因为rand()对于各线程是独立的 蚊子王,你说rand()对于各线程是独立的,是不是要每个线程都调用srand()??? 如果要真随机,还是每个线程都调用srand(time(NULL))吧 srand()函数中的参数是不是随即数序列的起始点??? 随机函数一般都是采取线性同余法,他的算法可能是这样的:Seed = MULT * Seed + INC;其中MULT和INC都是常数,而Seed是个static的变量,返回值可能是Seed或Seed经过处理的值。srand(_Seed)函数就是把_Seed给Seed赋值,所以“srand()函数中的参数是随即数序列的起始点”大意上是对的。 关于IOCP学习和应用? vc dialog 就是打开一个ASCII文件。请看看 IE连接窗口总是最小化,如何改?? 各位大侠看看我得思路有什么问题? 如何引用上一级对话框 111222过来,你要的跨线程使用HTML接口的程序在这里 GetLastError=6无效句柄,不知如何解决 用VC++做多线程的FTP windows真的过时了吗? 共享违例是?? 我在D版中看到VC++6.0中文版是一张盘还带语言帮助,不知是不是真的,能买吗?多谢!多谢!
但如果我只有一个线程就不需要选种子就会出来随即数的,这是为什么????
Seed = MULT * Seed + INC;
其中MULT和INC都是常数,而Seed是个static的变量,返回值可能是Seed或Seed经过处理的值。
srand(_Seed)函数就是把_Seed给Seed赋值,所以“srand()函数中的参数是随即数序列的起始点”大意上是对的。