/// <summary> /// Random ra=new Random(); 系统自动选取当前时前作随机种子: /// Random ra=new Random(6) 指定一个int型的参数作为随机种子; /// ra.Next(); 返回一个大于或等于零而小于2,147,483,647的随机数 /// ra.Next(20);返回一个大于或等于零而小于20的随机数 /// ra.Next(1,20); 返回一个大于或等于1而小于20之间的随机数 /// 以下函数返回几个大于或等于某正整数(含0)而小于等于某正整数无重复的正整数.
/// 示例 int[] a= getRandomNum(12,1,100); //在1-100间随机取12个不同的数并存于数组a /// 来自 俱会一处 /// </summary>
public int[] getRandomNum(int num, int minValue, int maxValue) { if ((maxValue + 1 - minValue - num<0)) maxValue += num - (maxValue + 1 - minValue); Random ra = new Random(unchecked((int)DateTime.Now.Ticks)); int[] arrNum = new int[num]; int tmp = 0; StringBuilder sb=new StringBuilder (num *maxValue .ToString ().Trim ().Length ); for (int i = 0; i <= num - 1; i++) { tmp = ra.Next(minValue, maxValue); while (sb.ToString().Contains("#" + tmp.ToString().Trim() + "#")) tmp = ra.Next(minValue, maxValue+1); arrNum[i] = tmp; sb.Append( "#" + tmp.ToString().Trim() + "#"); } return arrNum; }
|
请发表评论