社区
C++ Builder
帖子详情
当随机数遇上多线程
tenix
2004-08-10 02:42:56
如果一个线程内部要用到随机数,必须在其开始的地方进行randomize()初始化,其它任何地方都不行。但是当多个线程同时启动时,randomize()的结果是一样的。产生的随机数列也是相同的。
高手如何解决这个问题?我想了个办法在主程序里面为每个线程产生随机的随机数种子,再启动线程。但是如何设置随机数种子我不知道了。
...全文
254
6
打赏
收藏
当随机数遇上多线程
如果一个线程内部要用到随机数,必须在其开始的地方进行randomize()初始化,其它任何地方都不行。但是当多个线程同时启动时,randomize()的结果是一样的。产生的随机数列也是相同的。 高手如何解决这个问题?我想了个办法在主程序里面为每个线程产生随机的随机数种子,再启动线程。但是如何设置随机数种子我不知道了。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yjy1001
2004-08-10
打赏
举报
回复
我帮你写一个随机函数吧,你用我的随机函数应该不会出现你说的现象……
#include <stdlib.h>
int MyRand()
{
int liv_tmp[4];
TDateTime ldv_tmp = Now();
WORD liv_hh, liv_mm, liv_ss, liv_ms;
ldv_tmp.DecodeTime(&liv_hh, &liv_mm, &liv_ss, &liv_ms);
for (int i = 0; i < 4; i++)
{
liv_tmp[i] = rand();
}
return (liv_tmp[0] * liv_hh + liv_tmp[1] * liv_mm + liv_tmp[2] * liv_ss
+ liv_tmp[3] * liv_ms);
}
应该可以满足楼主的要求的了,即使是线程,仍然出现相同的概率非常接近0
过客猫2022
2004-08-10
打赏
举报
回复
randomize()只要运行一次就可以了
static bool bInit = false;
if( !bInit )
{
randomize();
bInit = true;
}
constantine
2004-08-10
打赏
举报
回复
我到觉得一般楼上两位大哥的方法就够了,如果你真的象haidao17那样认为,可以学二楼自己写,不难,弄多几层数学函数就可以了吧
haidao17
2004-08-10
打赏
举报
回复
自己做随机函数,那么就没问题了,如楼上所说……
但还是不够随机 嘿嘿
COKING
2004-08-10
打赏
举报
回复
include<math.h>
sin(GetTickCount());
myy
2004-08-10
打赏
举报
回复
随机数种子:
void srand(unsigned seed);
CRC与ADC与DMA与
随机数
发生器-第5季第5部分
《朱有鹏老师单片机完全学习系列课程》针对有志于物联网技术开发行业的零基础学员设计,共分6季,总200余小时的课程。本课程属于第5季。 本季课程主要讲解STM32的全新开发方式:使用STM32CubeMX工具做图形化配置,...
当自增/减(++/--)
遇上
多线程
本文主要讲述,在刚接触
多线程
编程时,将自增变量作为参数传进线程函数时,发生的“奇异”现象。 事情是这样的:生成1000W
随机数
,创建N个线程,将这些
随机数
随机的写到这N个文件中,每个
随机数
在一个文件中占一行...
解密
随机数
生成器(二)——从java源码看线性同余算法
Random Java中的Random类生成的是伪
随机数
,使用的是48-bit的种子,然后调用一个linear congruential formula线性同余方程(Donald Knuth的编程艺术的3.2.1节) 如果两个Random实例...Random实例是线程安全的,...
内存泄漏、
多线程
Debug技巧总结
不限于
多线程
,单线程也可能
遇上
死锁的情况,例如忘记unlock。 对于单线程的死锁问题,分析起来比较简单,找到使代码卡住的lock,分析该lock的锁与解锁对即可。 对于
多线程
的死锁问题,分析起来较为困难,博主只能...
多线程
编程(2):线程的同步
多线程
编程(2):线程的同步在《
多线程
编程》系列第一篇讲述了如何启动线程,这篇讲述线程之间存在竞争时如何确保同步并且不发生死锁。线程不同步引出的问题下面做一个假设,假设有100张票,由两个线程来实现一个售票...
C++ Builder
13,825
社区成员
102,679
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章