就是这样的代码,为什么每次生成的都一样?怎么写才生成不一样的?            for (int i = 0; i <= 9; i++)
            {
                Random rs = new Random();
                Console.WriteLine(rs.Next(1,100));
            }

解决方案 »

  1.   


     /// <summary>
        /// 生成随机数  
        /// </summary>
        /// <param name="weishu">位数</param>
        /// <returns></returns>
        public static string Random(int weishu)
        {
            string re = null;
            Random rnd = new Random();
            for (int i = 0; i < weishu; i++)
            {
                re = re + rnd.Next(10).ToString();
            }        
            return re;
        }
      

  2.   

     Random rs = new Random();//提出来
    for (int i = 0; i <= 9; i++)
                {
                   
                    Console.WriteLine(rs.Next(1,100));
                }random 产生的数字是根据时间得来的 
    就是在极短的时间内(V老大说的时钟周期)你连续new出几个random 他们的数字式一样的 
    解决办法是sleep()几毫秒 或者使用一个random对象 
      

  3.   

    把这句Random rs = new Random();
    放到循环外面就好了,因为在循环里面的时候每次都会重新实例化,生成的随机数也就一样了。
      

  4.   

    Random rand = new Random(Guid.NewGuid().GetHashCode());
    rand .Next(最小值,最大值)
    Random rnd = new Random(DateTime.Now.Millisecond);Enumerable.Range(1, 100).OrderBy(Guid.NewGuid());   
    for (int i = 0; i <= 9; i++)
                {
                    Console.WriteLine(rand.Next(1,100));
                }