【问题标题】:Generate random number - Higher value生成随机数 - 更高的值
【发布时间】:2017-03-10 11:07:04
【问题描述】:

我有这个:

int minValue = int.Parse(min.Text);
int maxValue = int.Parse(max.Text);
Random rnd = new Random();
int final = rnd.Next(minValue, maxValue);
result.Text = final.ToString("");

我要将两个值(较低的值和较高的值)放入两个文本框。这些值由用户输入。当我生成随机数时,在任何情况下都不会出现更高的值。例如,用户输入 1 和 5。我反复生成一个数字,但在任何情况下都不会出现数字 5。它只出现 1 或 2 或 3 或 4,而不是 5。为什么?

【问题讨论】:

  • 也不要在使用之前创建Random。有它在领域。并改用它

标签: c# .net random


【解决方案1】:

因为 Random.Next 给出了随机值独占上限。

https://msdn.microsoft.com/library/2dx6wyd4(v=vs.110).aspx

【讨论】:

    【解决方案2】:

    如果您查看函数文档: https://msdn.microsoft.com/en-us/library/2dx6wyd4(v=vs.110).aspx

    较高的值是专有

    要包含它,您需要这样做:

    int final = rnd.Next(minValue, maxValue+1);
    

    【讨论】:

    • 非常感谢!这解决了我的问题并澄清了我的疑问。
    【解决方案3】:
    int minValue = int.Parse(min.Text);
    int maxValue = int.Parse(max.Text)+1;
    Random rnd = new Random();
    int final = rnd.Next(minValue, maxValue);
    result.Text = final.ToString("");
    

    这会起作用,因为当它取最大值时,范围从 minValue 到 maxValue-1。

    【讨论】:

    • 非常感谢!这解决了我的问题并澄清了我的疑问。
    猜你喜欢
    • 1970-01-01
    • 2014-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多