关于生成不重复随机数报错的有关问题
关于生成不重复随机数报错的问题
我想生成20个随机数,随机数生成的值范围在1~34之间,问题是经常性的在执行过程中就报错:
未处理 System.*Exception
“System.*Exception”类型的未经处理的异常出现在 System.Windows.Forms.dll 中。
疑难解答提示:确保您没有无限循环或无限递归
根据我的理解应该是在生成的随机数需判断该数字是否已经存在,如果已经存在就递归调用重新生成这里出现问题的,不知道有没有理解错误,请问这个是我的递归哪里没有写好吗,有没有更好的解决方法?
具体代码如下:
------解决方案--------------------
我想生成20个随机数,随机数生成的值范围在1~34之间,问题是经常性的在执行过程中就报错:
未处理 System.*Exception
“System.*Exception”类型的未经处理的异常出现在 System.Windows.Forms.dll 中。
疑难解答提示:确保您没有无限循环或无限递归
根据我的理解应该是在生成的随机数需判断该数字是否已经存在,如果已经存在就递归调用重新生成这里出现问题的,不知道有没有理解错误,请问这个是我的递归哪里没有写好吗,有没有更好的解决方法?
具体代码如下:
private void btnCreateNumber_Click(object sender, EventArgs e)
{
int[] sorttemp = new int[20];
for (int i = 0; i < 20; i++)
{
sorttemp[i] = CheckNumberRepeat(sorttemp);
}
}
private int CheckNumberRepeat(int[] iImport)
{
Random NumRandom = new Random();
int iTempRedNum = NumRandom.Next(1, 34);
for (int i = 0; i < iImport.Length; i++)
{
if (iImport[i] == iTempRedNum)
{
CheckNumberRepeat(iImport);
}
}
return iTempRedNum;
}
------解决方案--------------------