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