【问题标题】:How to generate random numbers from a range in c# [duplicate]如何从c#中的范围生成随机数[重复]
【发布时间】:2017-10-07 03:12:30
【问题描述】:

所以我需要根据用户设置的参数生成随机数,并做一个基本的数学表达式。他们有 3 个选项;单、双或三位数的数字。所以基于此我需要生成一个从 0 到 9、0 到 99 和 0 到 100 的随机数。

到目前为止,我已经阅读了有关 Random 课程的信息。这是我糟糕的尝试:

Random rnd = new Random();
int value = 0;

if (digits == 1)
{
    rnd.Next(value);
    q1Lbl.Text = value.ToString();
}

【问题讨论】:

标签: c# random generator


【解决方案1】:

你需要Random.Next()这个重载:

public virtual int Next(
    int minValue,
    int maxValue
)

地点:

minValue = 返回的随机数的下限。

maxValue = 返回的随机数的唯一上界。 maxValue 必须大于或等于 minValue。

注意参数说明中的inclusiveexclusive这两个词。这意味着最小值可以在可能的值中返回,而最大值将不可能

这在返回值的描述中进一步阐明:

返回值 - 大于或等于的 32 位有符号整数 minValue 且小于 maxValue;也就是返回值的范围 包括 minValue 但不包括 maxValue。如果 minValue 等于 maxValue, 返回 minValue。

例如,要获取 0 到 9(含)之间的单个数字值,您可以使用:

int value = rnd.Next(0, 10); // return a value between 0 and 9 inclusive

要获得两位数,您可以使用:

int value = rnd.Next(10, 100); // return a value between 10 and 99 inclusive

最后,要获得三位数,您可以使用:

int value = rnd.Next(100, 1000); // return a value between 100 and 999 inclusive

【讨论】:

    【解决方案2】:
    Random rnd = new Random();
    int single = rnd.Next(1, 10);  // 1 ~9
    int double = rnd.Next(1, 100);    // 1~99
    int triple = rnd.Next(1,101);      // 1~100
    

    如果你想多次获得值,循环它

    【讨论】:

      【解决方案3】:

      Next 方法有重载,你只需要传递范围:

      Random rnd = new Random();
      rnd.Next(1,20); //Gives you a number between 1 and 20
      

      在这里您可以找到完整的文档https://www.google.com.co/search?q=next+random+c%23&oq=next+random&aqs=chrome.1.69i57j0l5.3144j0j7&sourceid=chrome&ie=UTF-8

      【讨论】:

      • 不完全......这将返回 1 到 19(含)之间的数字。 20 的值将包含在可能的返回值中。
      • 哦,谢谢伙计们,清楚了很多!非常感谢
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-07
      • 2011-02-27
      • 1970-01-01
      相关资源
      最近更新 更多