首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

双核CPU下获取随机数有关问题

2012-03-13 
双核CPU下获取随机数问题.在双核CPU下, 使用默认的时间种子获取随机数时发现会重复, 大家有没有什么好办法

双核CPU下获取随机数问题.
在双核CPU下, 使用默认的时间种子获取随机数时发现会重复, 大家有没有什么好办法?

[解决办法]
参考如下代码

C# code
Guid vGuid = new Guid();byte[] vBuffer = vGuid.ToByteArray();int vSeed = BitConverter.ToInt32(vBuffer, 0) ^ BitConverter.ToInt32(vBuffer, 4) ^    BitConverter.ToInt32(vBuffer, 8) ^ BitConverter.ToInt32(vBuffer, 12) ^    (Environment.TickCount & 0xFFFFFF);Random vRandom = new Random(vSeed);
[解决办法]
无论是双核还是单核...获取随机数时都会重复
解决问题有两种方法..
1将发生的随机数过滤,过滤掉重复的项,这种情况对应随机数大小不确定的情况.
2对于随机数大小,或范围确定的情况,可以使用顺序初始化,随机打乱的方案.

热点排行