随机数的值小于所需值



我正在创建一个随机数生成器,当我运行程序时,显示的数字可以小于所需的值。

这是我正在使用的代码:

Random _rand = new Random();
        private void RandomNumberGenerator()
        {
            int random = _rand.Next(1, 10000);
            string text;
            text = "TP0" + random.ToString();
            label1.Text = text;
        }
        private void button1_Click(object sender, EventArgs e)
        {
            RandomNumberGenerator();
        }

每次我点击按钮,它都会生成一个新的随机数,但有时这个数字可以小于10000。示例:我得到了TP08212,但下次我生成新值时,我得到了TP0724。这是怎么回事呢?

如何防止已显示的数字再次显示?

阅读文档:Random.Next

您提供的最小值为 1.. 724 大于 1。 一切正常

从文档中:

minValue
Type: System.Int32
The inclusive lower bound of the random number returned.
maxValue
Type: System.Int32
The exclusive upper bound of the random number returned. 
maxValue must be greater than or equal to minValue.
Return Value
Type: System.Int32
32-bit signed integer greater than or equal to minValue and less than maxValue; 
that is, the range of return values includes minValue but not maxValue. 
If minValue equals maxValue, minValue is returned.

调用 Next 的两个参数版本将始终生成 [minValue, maxValue] 范围内的数字

如果你想要五位数字,而第二个总是一个或多个,请获取一个 1000..9999 范围内的随机数:

int random = _rand.Next(1000, 10000);

如果您想要五位数,但仍有 1 及以上的范围,请将随机数的格式设置为四位数:

text = "TP0" + random.ToString("0000");

您设置的范围是 1-10000。怎么了?如果希望值大于 10000:随机+=10000,这将使范围为 10001-20000。

随机的所有值在每次新生成时将其添加到数组上。 检查该数组。

最新更新