- /// <summary>
- /// 产生一个随机数或随机数数组(元素无重复)
- /// </summary>
- public class GetRandomInt
- {
- /// <summary>
- /// 产生无重复随机数数组
- /// </summary>
- /// <param name="num">个数,不能小于(最大数-最小数)</param>
- /// <param name="minValue">最小数</param>
- /// <param name="maxValue">最大数</param>
- /// <returns>数组</returns>
- public static int[] GetIntArray(int num, int minValue, int maxValue)
- {
- if (maxValue - minValue >= num)
- {
- int[] arrNum = new int[num];//注意,数组中各元素的初始值是0,当0在取值范围内时要另处理
- for (int i = 0; i < num; i++)
- {
- arrNum[i] = minValue-1;//数组元素的初始值为最小数-1,保证在非取值范围内
- }
- for (int i = 0; i < num; i++)
- {
- int tmp = GetInt(minValue, maxValue);//取出值赋到数组中
- if (Array.IndexOf(arrNum, tmp) < 0)//判断是否存在于数组中,不存在的话元素tmp的索引应为-1
- {
- arrNum[i] = tmp;//如果不存在,添加到数组中
- }
- else
- {
- i = i - 1;//如果存在,跳过,并执行次数减去1,即这次执行不算
- }
- }
- return arrNum;
- }
- else
- {
- return null;
- }
- }
- /// <summary>
- /// 产生随机数
- /// </summary>
- /// <param name="minValue">最小数</param>
- /// <param name="maxValue">最大数</param>
- /// <returns>随机产生的一个数</returns>
- public static int GetInt(int minValue, int maxValue)
- {
- Random ra = new Random(unchecked((int)DateTime.Now.Ticks));
- return ra.Next(minValue, maxValue);
- }
- }
无重复随机数
最新推荐文章于 2023-06-09 11:34:47 发布