当前位置:首页>>开发编程>>VS.NET>>新闻内容
[本站原创]ASP.NET的随机数应用(C#)
作者:icech学习笔记 发布时间:2004-7-5 11:04:24 文章来源:西部E网

    计算机不可能产生完全随机的数字,ASP.NET中的随机数发生器都是通过一定的算法对事先选定的随机种子做复杂的运算,用产生的结果来近似的模拟完全随机数,这种随机数被称作伪随机数,Ststem.Random表示伪随机数生成器。

    伪随机数是以相同的概率从一组有限的数字中选取的。所选数字并不具有完全的随机性,但是从实用的角度而言,其随机程度已足够了。

    伪随机数的选择是从随机种子开始的,所以为了保证每次得到的伪随机数都足够地“随机”,随机种子的选择就显得非常重要。如果随机种子一样,那么同一个随机数发生器产生的随机数也会一样。一般地,我们使用同系统时间有关的参数作为随机种子,这也是 .net Framework 中的随机数发生器默认采用的方法。

    一、初始化伪随机数发生器

    我们可以采用系统时间为随机种子的方式来初始化伪随机数生成器,如:
    Random ro=new Random();
    或者
    Random ro=new Random(unchecked((int)DateTime.Now.Ticks));

    也可以指定一个随机种子,如:
    Random ro=new Random(10);

    二、产生需要的随机数

    为了方便表述和演示,icech在这里直接在代码中说明产生各类随机数的方法:

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace WebApplication1
{
 /// <summary>
 /// WebForm1 的摘要说明。
 /// </summary>
 public class WebForm1 : System.Web.UI.Page
 {
  private void Page_Load(object sender, System.EventArgs e)
  {
   // 在此处放置用户代码以初始化页面
   // 初始化伪随机数发生器
   Random ro=new Random(unchecked((int)DateTime.Now.Ticks));

   // 方法1:指定随机数上下限,产生上下限中的随机整数
   String RoInt=ro.Next(1,20).ToString();
   Response.Write("RoInt="+RoInt+"<br>");

   // 方法2:返回系统时间作为随机种子的随机整数
   String RoInt2=ro.Next().ToString();
   Response.Write("RoInt2="+RoInt2+"<br>");

   // 方法3:指定最大值非负随机整数
   String RoInt3=ro.Next(10).ToString();
   Response.Write("RoInt3="+RoInt3+"<br>");

   // 方法4:生成0.0和1.0之间的随机数
   String RoDouble=ro.NextDouble().ToString();
   Response.Write("RoDouble="+RoDouble+"<br>");

   // 方法5:用随机数填充指定字节数组
   // 字节数组的每个元素均设置为
   // 一个大于或等于零而小于或等于 MaxValue 的随机数
   // MaxValue = 255
   Byte[] b = new Byte[5];
   ro.NextBytes(b);
   for (int i = 0; i < 5; i++)
   {
    Response.Write("RoBytes"+i+"="); 
    Response.Write(b[i]+"<br>");
   }

  }

  #region Web 窗体设计器生成的代码
  override protected void OnInit(EventArgs e)
  {
   //
   // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
   //
   InitializeComponent();
   base.OnInit(e);
  }
  
  /// <summary>
  /// 设计器支持所需的方法 - 不要使用代码编辑器修改
  /// 此方法的内容。
  /// </summary>
  private void InitializeComponent()
  {   
   this.Load += new System.EventHandler(this.Page_Load);
  }
  #endregion
 }
}

    三、产生随机数的结果

    这里产生出一组随机数,大家参考一下他们的格式。

 RoInt=13
 RoInt2=522075042
 RoInt3=2
 RoDouble=0.800674877036677
 RoBytes0=91
 RoBytes1=15
 RoBytes2=78
 RoBytes3=252
 RoBytes4=96

    ASP.NET产生随机数的方法比较简单,方式和操作也很灵活。由于网络安全的因素,随机数越来越多的用在各类程序中,如登陆验证、注册验证等等。希望icech的这个学习笔记能给你一些帮助。


最新更新
·C#中使用Split分隔字符串的技
·VS2008开发中Windows Mobile
·PC机和移动设备上绝对路径的
·C#程序加壳的方法(使用Sixx
·当前上下文中不存在名称Conf
·请插入磁盘:Visual Studio 2
·用VS.NET读取Flash格式文件信
·在ASP.NET中使用AJAX的简单方
·VS.NET 2005中常用的一些代码
·安装VS.NET 2005 SP1补丁全攻
相关信息
画心
愚爱
偏爱
火苗
白狐
画沙
犯错
歌曲
传奇
稻香
小酒窝
狮子座
小情歌
全是爱
棉花糖
海豚音
我相信
甩葱歌
这叫爱
shero
走天涯
琉璃月
Nobody
我爱他
套马杆
爱是你我
最后一次
少女时代
灰色头像
断桥残雪
美了美了
狼的诱惑
我很快乐
星月神话
心痛2009
爱丫爱丫
半城烟沙
旗开得胜
郎的诱惑
爱情买卖
2010等你来
我叫小沈阳
i miss you
姑娘我爱你
我们都一样
其实很寂寞
我爱雨夜花
变心的玫瑰
犀利哥之歌
你是我的眼
你是我的OK绷
贝多芬的悲伤
哥只是个传说
丢了幸福的猪
找个人来爱我
要嫁就嫁灰太狼
如果这就是爱情
我们没有在一起
寂寞在唱什么歌
斯琴高丽的伤心
别在我离开之前离开
不是因为寂寞才想你
爱上你等于爱上了错
在心里从此永远有个你
一个人的寂寞两个人的错