随机数
public string GetChar(int count)
{
string ch = "0123456789abcdefghijklmnopqrstuvwxyz" ;
char [] sch = ch.ToCharArray();
string s = "";
Random ra = new Random();
for (int i = 0; i < count; i++)
{
// Random ra = new Random();
int rad = ra.Next(0, ch.Length - 1);
s += sch[rad ];;
}
return s;
}
问题; 如果把new放在for循环里面 则产生的随机数一样,外面则不一样
原因;随机数的生成是从种子值开始。 如果反复使用同一个种子,就会生成相同的数字系列。 产生不同序列的一种方法是使种子值与时间相关,从而对于 Random 的每个新实例,都会产生不同的系列。 默认情况下,Random 类的无参数构造函数使用系统时钟生成其种子值,而参数化构造函数可根据当前时间的计时周期数采用 Int32 值。 但是,因为时钟的分辨率有限,所以,如果使用无参数构造函数连续创建不同的 Random 对象,就会创建生成相同随机数序列的随机数生成器。