标题: 随机取数循环次数问题 [打印本页] 作者: 郝滨 时间: 2013-2-18 11:15 标题: 随机取数循环次数问题 ArrayList arrradom = new ArrayList();
Random random = new Random();
int index = 0;
while (arrradom.Count < 10)
{
index++;
int rd = random.Next(1, 101);
if (rd % 2 == 0)
{
if (!arrradom.Contains(rd))
{
arrradom.Add(rd);
}
}
}
for (int i = 0; i < 10; i++)
{
Console.WriteLine(arrradom[i]);
}
ArrayList arrradom = new ArrayList();
//Random random = new Random();
int index = 0;
while (arrradom.Count < 10)
{
Random random = new Random();
index++;
int rd = random.Next(1, 101);
Console.WriteLine(rd);
// if (rd % 2 == 0)
// {
//if (!arrradom.Contains(rd))
//{
arrradom.Add(rd);
// }
// }
}
for (int i = 0; i < 10; i++)
{
Console.WriteLine(arrradom[i]);
}
这个会不会是垃圾回收器的回收间隔造成的?作者: 3Y25 时间: 2013-2-18 15:23
谢谢楼主分享作者: 王立 时间: 2013-2-18 15:31
Random random=new Random();
如果不写种子,就取当前时间为种子
只要种子一样,每次产生的随机数都是一样的
因为循环很快,时间相同,种子一样
不要把Random写到循环里面
1不写到循环里面
Random r = new Random();
string s = "";
for (int i = 0; i < 1000; i++)
{
s += r.Next(1, 100)+",";
}
MessageBox.Show(s);
2写到循环里面
string s = "";
for (int i = 0; i < 1000; i++)
{
Random r = new Random();
s += r.Next(1, 100)+",";
}
MessageBox.Show(s);