打印范围内的随机数

时间:2014-04-03 18:56:53

标签: c# random range

我有这个家庭作业,我已经找到了一个有效的解决方案,但我不明白为什么当从[0到1]输入范围时,Random()函数只打印零。当我向最大参数添加1时,它工作//rnd.Next(min,max + 1);,但为什么只有在它像这样的时候才会为零:rnd.Next(min,max);

static void Main()
    {
        Console.Write("Please enter integer n: ");
        int n = int.Parse(Console.ReadLine());
        Console.Write("Please enter min integer: ");
        int min = int.Parse(Console.ReadLine());
        Console.Write("Please enter max integer: ");
        int max = int.Parse(Console.ReadLine());

        Random rnd = new Random();

        for (int i = 0; i <= n; i++)
        {
            Console.WriteLine(rnd.Next(min, max+1));
        }
    } 

2 个答案:

答案 0 :(得分:4)

Random.Next会生成[min, max)范围内的数字 - 这意味着min是可能的结果,但max不是。[0, 1)0范围内唯一的整数是{{1}}。

答案 1 :(得分:1)

It is part of the language definition.

最大值是独占的,不包括在内,因此如果您想要包含max,则必须为其添加1。