【发布时间】:2017-08-16 17:06:02
【问题描述】:
我设法制作了一个应用程序,它随机生成选定数量的数字并将所有数字放入富文本框中(我会从 1-100 得到 10 个数字的结果是 '67, 55, 28, 35、7、69、47、59、69、82'。但是,我想添加一个选项,您可以在其中选择是否希望数字是唯一的(复选框),因为数字框接近最大数字框,数字往往会重复。
虽然我不太确定如何做到这一点,我已经尝试在网上查找,但大多数答案对我来说有点太复杂了。
到目前为止我的代码(C# Windows Form App FYI):
int minComplexNumber = Convert.ToInt32(minComplexTextBox.Text);
int maxComplexNumber = Convert.ToInt32(maxComplexTextBox.Text);
int intergersNumber = Convert.ToInt32(intergersTextBox.Text);
int numbersLeft = intergersNumber;
resultComplexTextBox.Text = "";
if (UniqueCheckBox.Checked)
{
//Need something here
}
else
{
Random comrnd = new Random();
while (numbersLeft > 1)
{
int complexResult = comrnd.Next(minComplexNumber, maxComplexNumber);
resultComplexTextBox.Text += complexResult + ", ";
numbersLeft = numbersLeft - 1;
}
if (numbersLeft == 1)
{
int complexResult = comrnd.Next(minComplexNumber, maxComplexNumber);
resultComplexTextBox.Text += complexResult;
numbersLeft = numbersLeft - 1;
}
}
关于如何获得唯一号码的任何建议?
【问题讨论】:
-
您可以随机打乱所有可能数字的列表,然后取出前 10 个。或者存储“已选择”的随机数并比较列表中的新随机数。
-
那与随机生成器无关,而是在一个列表中查找生成的数字,如果找到,丢弃它并生成另一个。
标签: c# random numbers unique generator