Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用随机C#?_C#_Random - Fatal编程技术网

如何使用随机C#?

如何使用随机C#?,c#,random,C#,Random,我知道如何以一种基本的方式使用Random类,但我想以这样的方式使用它,我会得到一个300的随机数,而不是200-300之间的任何随机数。 那我该怎么做呢 rand = new Random(); 我看到的最简单的方法是将随机数移动到200-300 var rand = new Random(); int value = rand.Next(0,500); if(value>=200 && value <=300) { value+=300; } var

我知道如何以一种基本的方式使用Random类,但我想以这样的方式使用它,我会得到一个<200或>300的随机数,而不是200-300之间的任何随机数。 那我该怎么做呢

rand = new Random();

我看到的最简单的方法是将随机数移动到200-300

var rand = new Random();
int value = rand.Next(0,500);
if(value>=200 && value <=300)
{
    value+=300;
}
var rand=new Random();
整数值=下一次随机数(0500);

如果(值>=200&&value,则可以生成0到500之间的值,并将100添加到任何大于200的数字上

var rand = new Random();
int value = rand.Next(0,500);
if(value>=200)
{
    value+=100;
}

试试这个,这是用于纯粹的随机性

    Random rand=new Random();
    int value= rand.next(0,600);
    while(value>=200 && value<=300)
      {
        value=rand.next(0,600);
      }
Random rand=new Random();
整数值=下一次随机数(0600);

当(value>=200&&value时,尝试这种递归方法

    static void Main(string[] args)
    {
        Random random = new Random();
        var number = GetRandomInt(random, 0, 500);
    }

    static int GetRandomInt(Random random, int min, int max)
    {
        var randomInt = random.Next(min, max);
        if (randomInt < 200 || randomInt > 300)
        {
            return randomInt;
        }
        return GetRandomInt(random, min, max);
    }
static void Main(字符串[]args)
{
随机=新随机();
var number=GetRandomInt(随机,0500);
}
静态int-GetRandomInt(随机、int-min、int-max)
{
var randomInt=随机。下一步(最小值、最大值);
if(randomInt<200 | | randomInt>300)
{
返回随机数;
}
返回GetRandomInt(随机、最小、最大);
}

大于300到无穷大?通常,当您实际尝试在代码中使用无穷大时,无穷大不起作用。您需要告诉我们数字应属于哪些范围。范围包括上限和下限。此外,请注意,在无限范围内不能有统一分布(默认值)(尽管还有其他发行版可以).好的,从0到600,但不是从200到300。调整的最初想法:循环,而兰德>200&或者为什么不减去100。或者,为什么不在生成不需要的范围内的数字时尝试另一个随机数…以保持均匀分布。但是,是的,可能会有办法,但总是加100,你不会失去统一性吗m分布?@AustinFench-否,因为它将移动所有值。如果您不介意,请回答一些后续问题:@ClickRick否。如果值介于200和300之间,我将其移动到500-600。我不移动值300-500。@Ernodeweard为什么?300-400不在if子句中。这也是另一个很好的方法。这可能需要一个时间while@ErnodeWeerd1/6茶nce第一次得到200-300分,1/36的机会两次都得到200-300分,1/216的机会得到3分。即使这是你最倒霉的一天,这也不应该超过一秒钟。我知道,这只是我在从事高性能工作时养成的一种习惯,在不需要的时候尽量不要浪费时间/资源。只是要知道,如果你的工作范围如果被排除在外,这些机会将非常不同。想象一下用这种方法生成0到100和900到1000之间的数字。@ernodeweard谢谢你的建议。我正在生成特定用途的代码Xb。