随机数的值小于期望值

时间:2014-03-05 17:08:41

标签: c# winforms random

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

以下是我正在使用的代码:

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。这是怎么发生的?

如何防止已显示的号码再次显示?

4 个答案:

答案 0 :(得分:1)

阅读文档:Random.Next

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

答案 1 :(得分:0)

来自docs

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]范围内的数字

答案 2 :(得分:0)

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

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

如果您想要五个数字,但仍然是一个以上的范围,请将随机数格式化为四位数:

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

答案 3 :(得分:0)

您设置的范围是1-10000。怎么了?如果您想要超过10000的值: 随机+ = 10000将使范围10001-20000。

随机的所有值都会在每个新生成的数组上添加它。检查那个数组。