现在的位置: 首页 > web前端 > 正文

random next的概率

2020年07月16日 web前端 ⁄ 共 968字 ⁄ 字号 评论关闭

  .NETRandom类在生成随机数方面做得相当不错。但请注意,如果您使用相同的数字播种,则每次都会获得相同的“随机”数字。如果您不希望此行为不提供种子。如果您使用的是随机数生成器而不是内置的.NET生成器,那么请查看random.org。


  C#中的random.Next方法


  1.random.Next():返回非负的一个随机数


  2.random.Next(MaxValue):返回一个小于所指定最大值的非负随机数(注意:a.是小于最大值要生成的随机数的上界(随机数不能取该上界值);b.maxValue类型:[System..::.Int32],maxValue必须大于等于零。


  3.Random..::.Next(minValue,maxValue):返回一个指定范围内的随机数.


  4.返回值类型:[System..::.Int32],一个大于等于minValue且小于maxValue的32位带符号整数,即:返回的值范围包括minValue但不包括maxValue。如果minValue等于maxValue,则返回minValue。


  Random.Next()的概率


  我想写一个抽奖程序,需要随机选择1-20000范围内的20000个数字。代码如下:


  Randomr=NewRandom(seed);//seedisa6digitse.g123456


  inti=0;


  while(true){


  r.Next(2000000);


  i++;


  if(i>=20000)


  break;


  }


  我的问题是:


  它能确保所有数字从1到2000000的相同可能性吗?


  r.Next()中是否包含上限2000000?


  st


  包含上限?


  不,上限是独占的,因此您必须使用2000001来包含2000000。


  有什么建议吗?


  让我冒昧地建议不要使用while(true)/break。只需将if的条件放在while语句中:


  Randomr=NewRandom(seed);//seedisa6digitse.g123456


  inti=0;


  while(i++<20000)


  {


  r.Next(1,2000001);


  }


  总之,randomnext给大家简单的介绍了一些,希望大家多看看。


  

抱歉!评论已关闭.