c# Random快速连续产生相同随机数的解决方案
2012-10-22 16:47
218 查看
Random类是一个产生伪随机数字的类,它的构造函数有两种,一个是直接New Random(),另外一个是New Random(Int32),前者是根据触发那刻的系统时间做为种子,来产生一个随机数字,后者可以自己设定触发的种子,一般都是用UnCheck((Int)DateTime.Now.Ticks)做为参数种子,因此如果计算机运行速度很快,如果触发Randm函数间隔时间很短,就有可能造成产生一样的随机数,因为伪随机的数字,在Random的内部产生机制中还是有一定规律的,并非是真正意义上的完全随机。
Random快速连续产生相同随机数的解决方案:
1、延时的办法。
可以采用for循环的办法,也可以采用Thread.Sleep(100);
2、提高随机数不重复概率的种子生成方法:
static int GetRandomSeed( )
{
byte[] bytes = new byte[4];
System.Security.Cryptography.RNGCryptoServiceProvider rng = new System.Security.Cryptography.RNGCryptoServiceProvider( );
rng.GetBytes( bytes );
return BitConverter.ToInt32( bytes , 0 );
}
Random random = new Random( GetRandomSeed( ) );
Random快速连续产生相同随机数的解决方案:
1、延时的办法。
可以采用for循环的办法,也可以采用Thread.Sleep(100);
2、提高随机数不重复概率的种子生成方法:
static int GetRandomSeed( )
{
byte[] bytes = new byte[4];
System.Security.Cryptography.RNGCryptoServiceProvider rng = new System.Security.Cryptography.RNGCryptoServiceProvider( );
rng.GetBytes( bytes );
return BitConverter.ToInt32( bytes , 0 );
}
Random random = new Random( GetRandomSeed( ) );
相关文章推荐
- c# Random快速连续产生相同随机数的解决方案
- Random 快速连续产生不相同随机数的解决方案
- 【摘录】Random快速产生相同随机数的原因及解决方案
- Random快速连续产生不相同随机数
- Random快速连续产生相同随机数
- c# Random快速连续产生相同随机数的解决方案
- c# Random快速连续产生相同随机数的解决方案
- c# Random快速连续产生相同随机数的解决方案
- c# Random快速连续产生相同随机数的解决方案
- Random快速产生相同随机数的原因及解决方案
- c# Random快速连续产生相同随机数的解决方案
- C# Random生成相同随机数的解决方案
- Random类,在循环内产生相同的随机数,原理分析即解决方案
- 【转】让random在极短时间内产生的随机数不相同
- 提高c#随机数random产生随机函数的…
- 【转】让random在极短时间内产生的随机数不相同
- JAVA基础MATH类的应用(Random产生自己想要的范围类的随机数解决方案)
- C#--利用Random类产生10个[10,99]之间的随机数,并将这10个随机数在列表框中显示出来,每个数占一项。用户选择某项后,在右边标签中显示所选内容
- .Net中关于Random类产生的随机数相同问题解决