ASP.net中随机数应用实例(2)

发表于:2007-06-30来源:作者:点击数: 标签:
这个例子中,我们使用Random.Next()方法来产生随机数。 ??下面这个函数是这个例子的核心,我们利用他来产生一个随机的int数组: private int []GetRandomArray(int Length,int Up,int Down){ int iFirst=0; int []rtArray=new Int32[Length]; Random ro=ne
     这个例子中,我们使用Random.Next()方法来产生随机数。
  
  ??下面这个函数是这个例子的核心,我们利用他来产生一个随机的int数组:
  
  private int []GetRandomArray(int Length,int Up,int Down){ int iFirst=0; int []rtArray=new Int32[Length]; Random ro=new Random(Length*unchecked((int)DateTime.Now.Ticks)); iFirst=ro.Next(Up,Down); rtArray[0]=iFirst; for(int i=1;i
  
  ??读者或许都注意到了,我们采用了一种相当麻烦的方式来产生这个随机数组,为什么不简单地使用如下代码呢?请先看下面代码,这里我们使用了系统时间作为随机种子,连续获取两个随机数,并且将其输出:
  
  < %@ Page Language="C#" Debug="true" Trace="false" TraceMode="SortByCategory"% >< % @Import namespace="System" % >
  < script language=C# runat=server >
  public void Page_Load(object sender,EventArgs e){ int re=0; int re1=0; GetRandomDefault(ref re); GetRandomDefault(ref re1); RandomNum.Text=re.ToString(); RandomNum.Text+=" "+re1.ToString();}private void GetRandomDefault(ref int re){ Random ro=new Random(unchecked((int)DateTime.Now.Ticks)); re=ro.Next(10,20);}private void GetRandomByInt(ref byte []re){ Random ro=new Random(); ro.NextBytes(re);}
  < /script >
  < html >
  < head >
  < title >随机数测试< /title >
  < meta http-equiv="Content-Type" content="text/html; charset=gb2312" >
  < /head >
  
  < body bgcolor="#FFFFFF" text="#000000" >
  < form runat=server >
  < ASP:Label id="RandomNum" runat=server / >
  
  < /form >
  < /body >
  < /html >
  
  
  下面是笔者机器上产生的结果的截图:
  
  
  
  是的,如你所见,产生了一样的两个随机数,无论重复多少次,都是一样的。原因在哪里呢?

原文转自:http://www.ltesting.net