王彬 程序员 王彬 ASP PHP C# .NET AJAX 笔记

我的PHP,.NET开源之路

在.net   Framework中提供了一个专门用来产生随机数的类System.Random,使用这个类时必须导入System命名空间。当然,命名空间System在每个ASP.net页面中都是自动导入的,所以我们可以直接使用这个类。    
   
  对于随机数,大家都知道,计算机不可能产生完全随机的数字,所谓的随机数发生器都是通过一定的算法对事先选定的随机种子做复杂的运算,用产生的结果来近似的模拟完全随机数,这种随机数被称作伪随机数。伪随机数是以相同的概率从一组有限的数字中选取的。所选数字并不具有完全的随机性,但是从实用的角度而言,其随机程度已足够了。伪随机数的选择是从随机种子开始的,所以为了保证每次得到的伪随机数都足够地“随机”,随机种子的选择就显得非常重要。如果随机种子一样,那么同一个随机数发生器产生的随机数也会一样。一般地,我们使用同系统时间有关的参数作为随机种子,这也是.net   Framework中的随机数发生器默认采用的方法。    
   
  我们可以使用两种方式初始化一个随机数发生器:    
   
  第一种方法不指定随机种子,系统自动选取当前时间作为随机种子:    
   
  Random   ro   =   new   Random();    
   
  第二种方法可以指定一个int型参数作为随机种子:    
   
  int   iSeed=10;    
   
  Random   ro   =   new   Random(10);    
   
  之后,我们就可以使用这个Random类的对象来产生随机数,这时候要用到Random.Next()方法。这个方法使用相当灵活,你甚至可以指定产生的随机数的上下限。    
   
  不指定上下限的使用如下:    
   
  int   iResult;    
   
  iResult=ro.Next();    
   
  下面的代码指定返回小于100的随机数:    
   
  int   iResult;    
   
  int   iUp=100;    
   
  iResult=ro.Next(iUp);    
   
  而下面这段代码则指定返回值必须在50-100的范围之内:    
   
  int   iResult;    
   
  int   iUp=100;    
   
  int   iDown=50;    
   
  iResult=ro.Next(iDown,iUp);    
   
  除了Random.Next()方法之外,Random类还提供了Random.NextDouble()方法产生一个范围在0.0-1.0之间的随机的双精度浮点数:    
   
  double   dResult;  
  dResult=ro.NextDouble();  
posted on 2010-04-08 17:18  wangbin  阅读(581)  评论(0编辑  收藏  举报