请用C#写一个生成绝对不重复随机数的方法
时间: 2024-01-27 07:02:59 浏览: 82
好的,以下是一个使用C#编写的生成绝对不重复随机数的方法:
```
public static List<int> GenerateUniqueRandomNumbers(int count, int minValue, int maxValue)
{
if (count > (maxValue - minValue + 1))
{
throw new Exception("无法生成唯一的随机数,因为要求的数量大于可用的数字数量。");
}
List<int> numbers = new List<int>();
for (int i = minValue; i <= maxValue; i++)
{
numbers.Add(i);
}
List<int> result = new List<int>();
Random random = new Random();
for (int i = 0; i < count; i++)
{
int index = random.Next(numbers.Count);
result.Add(numbers[index]);
numbers.RemoveAt(index);
}
return result;
}
```
这个方法接受三个参数:生成的随机数的数量、随机数的最小值和最大值。它会首先检查要求的数量是否大于可用的数字数量,如果是,则抛出异常。然后,它会创建一个包含所有可用数字的列表,使用随机数生成器从中选择随机数,并从列表中删除已选择的数字,以确保生成的数字不会重复。最后,该方法返回一个包含生成的唯一随机数的列表。
阅读全文