惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
V
Visual Studio Blog
IT之家
IT之家
博客园 - 聂微东
The Cloudflare Blog
月光博客
月光博客
阮一峰的网络日志
阮一峰的网络日志
S
SegmentFault 最新的问题
Apple Machine Learning Research
Apple Machine Learning Research
酷 壳 – CoolShell
酷 壳 – CoolShell
爱范儿
爱范儿
H
Help Net Security
博客园 - 叶小钗
V
V2EX
WordPress大学
WordPress大学
J
Java Code Geeks
Hugging Face - Blog
Hugging Face - Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园_首页
C
Check Point Blog
B
Blog
D
DataBreaches.Net
美团技术团队
罗磊的独立博客

博客园 - wangbin

Provider 错误 '80004005' 未指定的错误 的最终解决方法 C#(WinForm)实现软件注册 设置字段默认值sql语句 .net WINFORM 界面怎么做凹凸效果的分割线?就是横线 winform屏蔽Alt+F4组合键以防止用户关闭对话框 游标Cursor 使用小例 (SQLServer) SQL Server 2005 数据类型和.Net数据类型的对应关系 我改行了 PHP $_FILES详解 - wangbin - 博客园 php $GLOBALS 超全局变量的理解 [转载]php-数组操作foreach、each、reset、list C#混淆 xenocode使用说明 [原创]一个简单的药店用的会员积分管理系统 [原创]xml序列化 [原创]c# as用法 [原创]闲来无事,写了个c#的数据库附加工具,现附上源代码 一个能够在线创建flash网页的站点 [原创]我的cms项目 简洁、标准的对联广告代码
.net 随机数
wangbin · 2010-04-08 · via 博客园 - wangbin

在.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  阅读(606)  评论()    收藏  举报