C#如何产生在一定范围内的一组不同的随机整数?急……
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/22 04:41:39
C#如何产生在一定范围内的一组不同的随机整数?急……
C#如何产生在一定范围内的一组不同的随机整数?急……
C#如何产生在一定范围内的一组不同的随机整数?急……
/// <summary>
/// 判断数组b中是否已经包含a,以此来去重复
/// </summary>
/// <param name="a"></param>
/// <param name="b"></param>
/// <returns>true:表示数组中含有a,false:表示数组中不含a</returns>
private bool IfHasOne(int a, int[] b)
{
foreach (int c in b)
{
if (a == c) { return true; }
}
return false;
}
/// <summary>
/// 从min~max之间取nums个随机数
/// </summary>
/// <param name="min">取数下线</param>
/// <param name="max">取数上线</param>
/// <param name="nums">取数个数</param>
/// <returns>所有随机数</returns>
private int[] GetRandomNums(int min, int max, int nums)
{
if (min > max)
{
//如果参数max小雨min,交换两个的值
int a = min;
min = max;
max = a;
}
int deference = max - min;
if (deference <= nums - 1)
{
nums = deference + 1;
}
Random random = new Random();
int[] result = new int[nums];
int k = 0;
while (k < nums)
{
int x = random.Next(min, max + 1);
if (!IfHasOne(x, result))
{
result[k] = x;
k++;
}
}
return result;
}