<%@ Page Language="C#" %>
<%@ Import Namespace="System.Data.SqlClient" %><script runat=server>void Page_Load(Object sender , EventArgs e) 
{
     
     for(int i= 1;i<100;i++)     {
     int number=0;
     System.Random random = new Random();
     number = random.Next(99999999);
     Response.Write(number+"!!!!");
  }
}
</script>
为什么我用这段代码只能生成99个相同的数 而用下段代码才能生成99个不同的随机数呢
<%@ Page Language="C#" %>
<%@ Import Namespace="System.Data.SqlClient" %><script runat=server>void Page_Load(Object sender , EventArgs e) 
{
  System.Random random = new Random();
  for(int i= 1;i<100;i++)     
  {
     int number=0;
     number = random.Next(99999999);
     Response.Write(number+"!!!!");
  }
}
</script>

解决方案 »

  1.   

    因为System.Random使用当前时钟作为种子(seed),接着调用.Next()会产生一系列不同的随机数但System.Random所用的时钟的分辨率不高,如果你连续使用System.Random random = new Random();因为你第一个循环执行得很快,这些random对象的种子完全可能是一样的,这么其后产生的随机数是一样的
      

  2.   

    呵呵,非常感谢,那照这个样子,asp.net岂不是不能产生即时的随机数了?