读书人

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

发布时间: 2012-03-13 11:21:11 作者: rapoo

双核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对于随机数大小,或范围确定的情况,可以使用顺序初始化,随机打乱的方案.

读书人网 >C#

热点推荐