分享:读取指定范围随机数(可设置不重复以及重复次数
2014-04-24 18:59
447 查看
/// <summary> /// 生成随机数 /// </summary> /// <param name="minNum">下限</param> /// <param name="maxNum">上限</param> /// <param name="count">生成的数量</param> /// <param name="maxRepeat">最大重复数(0为不重复)</param> /// <returns></returns> public List<int> GenerateNumber(int minNum, int maxNum, int count, int maxRepeat) { List<RangeItem> container = new List<RangeItem>(); List<int> result = new List<int>(); for (int i = minNum; i <= maxNum; i++) { container.Add(new RangeItem() { value = i, count = 0 }); } for (int i = 0; i < count; i++) { GetNum(maxRepeat, container, result); } result.Sort(); return result; } private void GetNum(int maxRepeat, List<RangeItem> container, List<int> result) { int index = Random.Range(0, container.Count); int value = container[index].value; if (result.Contains(value)) { if (container[index].count == maxRepeat) { container.RemoveAt(index); GetNum(maxRepeat, container, result); } else { result.Add(value); container[index].count++; if (container[index].count == maxRepeat) { container.RemoveAt(index); } } } else { result.Add(value); if (maxRepeat == 0) { container.RemoveAt(index); } } } public class RangeItem { public int value; public int count; }
相关文章推荐
- 一返回指定范围的不重复随机数类
- c语言产生指定范围和个数的不重复的随机数
- Python生成一定范围内指定数目的无重复随机数
- Math生成指定范围内不重复的随机数方法
- python从指定范围生成多个不重复的随机数
- 算法--生成m个指定范围的不重复随机数的三种方法分析(Java实现)
- sql 获取一批指定范围且不重复的随机数
- java生成指定个数及区间范围的不重复随机数存入数组中
- Java获取随机数获取制定范围指定个数不重复的随机数
- 生成指定数量、指定范围、不重复的随机数
- 生成指定范围不重复的随机数
- mysql rand,round,floor,ceiling函数以及获得指定范围随机数
- 获取指定范围的不重复的随机数
- [js][技巧]生成指定范围指定个数的不重复随机数
- Delphi 中生成指定范围不重复的随机数
- C#生成指定范围内的不重复随机数
- VBS在指定范围内生成不重复的随机数
- 取10个随机数, 每个数的取值范围是20-25, 找出其中重复的数, 重复次数
- 从指定范围获取指定个数的正序排列的不重复随机数
- 产生指定范围的不重复的随机数