Random r = new Random(Guid.NewGuid().GetHashCode()); r.Next(1000000, 10000000);
private void button1_Click(object sender, EventArgs e) { Random random = new Random(); int [] lData = new int[9000001]; for (int i = 0; i < lData.Length; i++) { lData[i] = 1000000 + i;
效率等方面不作要求就用这吧: HashSet<int> hs = new HashSet<int>(); Random r = new Random(100); while (hs.Count < 100) { hs.Add(r.Next(0, 100)); } int[] intarr = hs.ToArray(); Array.Sort(intarr); for (int i = 0; i < intarr.Length; i++) { Console.WriteLine(intarr[i]); }
Random r = new Random(Guid.NewGuid().GetHashCode()); int i= convert.ToInt32( r.Next(1000,9999 ).ToString()+ DateTiem.Now.ToString("ssff")) ;
r.Next(1000000, 10000000);
{
Random random = new Random();
int [] lData = new int[9000001];
for (int i = 0; i < lData.Length; i++)
{
lData[i] = 1000000 + i;
}
this.label1.Text=Convert.ToString(random.Next(lData[0],lData[9000000]));
}
}
一个BUTTON一个标签按钮!
HashSet<int> hs = new HashSet<int>();
Random r = new Random(100);
while (hs.Count < 100)
{
hs.Add(r.Next(0, 100));
}
int[] intarr = hs.ToArray();
Array.Sort(intarr);
for (int i = 0; i < intarr.Length; i++)
{
Console.WriteLine(intarr[i]);
}
int i= convert.ToInt32( r.Next(1000,9999 ).ToString()+ DateTiem.Now.ToString("ssff")) ;
关于不重复随机数生成的问题我在七八年前就遇到过,四五年前的时候曾经做过总结,最近看到有人在讨论这个问题,于是就又重新捡起这个话题了。现在捡起这个话题的目的不是想再简单介绍可能的几种算法,而是从思路上去说明,并且将情况慢慢复杂化,想要说明的是程序员们(不限于.NET程序员)不要用固定的思路去解决问题,可能同样的要求在不同的场合下会有不同的做法。明白了思路才能真正做到以不变应万变,学会一两个控件的用法或者多指导一两个API并不算什么本领,能够在遇到以前没有碰到过的问题时迅速简化解决思路才是本领,另一种本领就是遇到错误时如何快速根据经验定位错误产生原因的本领。