前段时间上网查资料,发现网上说Random ra=new Random()是不指定随机种子的,系统选取当前时间作为随机种子。(作为小鸟这个以前还真不知道)那么时间每时每刻都在变化是不是就不能产生相同的随机数了。于是就写了个小程序验证了一下,,,
代码:
var array = new int[100000];
int NoReapt = 0;
int Reapt = 0;
int flag = 0;
StringBuilder sb = new StringBuilder();
var rd = new Random();
for (var n = 0; n < 100000; n++)
{
int NoReapt = 0;
int Reapt = 0;
int flag = 0;
StringBuilder sb = new StringBuilder();
var rd = new Random();
for (var n = 0; n < 100000; n++)
{
var r = rd.Next();
array[n] = r;
//Console.Write("{0}\n", r);
}
foreach (int a in array)
{
flag = 0;
foreach (int b in array)
{
if (a == b)
{
flag++;
}
}
if (flag == 1)
{
NoReapt++;
}
if (flag > 1)
{
Reapt++;
if (sb.ToString().Contains(a.ToString()))
{
Reapt--;
}
if (!sb.ToString().Contains(a.ToString()))
{
sb.Append(a + ",");
}
array[n] = r;
//Console.Write("{0}\n", r);
}
foreach (int a in array)
{
flag = 0;
foreach (int b in array)
{
if (a == b)
{
flag++;
}
}
if (flag == 1)
{
NoReapt++;
}
if (flag > 1)
{
Reapt++;
if (sb.ToString().Contains(a.ToString()))
{
Reapt--;
}
if (!sb.ToString().Contains(a.ToString()))
{
sb.Append(a + ",");
}
}
}
}
运行结果