我想生成10个不同的随机数。怎么做?

解决方案 »

  1.   

     
    int[] arr = new int[10];
    Random r = new Random(System.DateTime.Now.Millisecond);
    for (int i = 0; i < 10; i++)
    {
      arr[i]=r.Next();
    }
      

  2.   

    using System;
    using System.Collections.Generic;
    using System.Text;    class Program
        {
            static void Main(string[] args)
            {
         
       
            Random randObj = new Random();
            for( int i = 0; i < 10; i++ )
                Console.Write( " {0,10} ", randObj.Next( ) );
            Console.WriteLine( );        }        
            }
       
      

  3.   

    using System;
    using System.Collections.Generic;class Program
    {
      static void Main()
      {
        int N = 10;
        Random r = new Random();
        List<int> l = new List<int>(N);
        for (int i = 0; i < N;)
        {
          int x = r.Next();
          if (!l.Contains(x))
          {
            i++;
            l.Add(x);
            Console.WriteLine(x);
          }
        }
      }
    }
      

  4.   

    int[] arr=getRandomNum(6,1,34);//从1至33中取出6个互不相同的随机数
    string temp="";
    for(int i=0;i<=arr.Length-1;i++)
    temp+=arr[i].ToString()+"   ";
    int[] arr1=getRandomNum(1,1,17);
    string temp1=arr1[0].ToString();
    label1.Text=temp;
    label2.Text=temp1;
    public int[] getRandomNum(int num,int minValue,int maxValue)
    {
      Random ra=new Random(unchecked((int)System.DateTime.Now.Ticks));
      int[] arrNum=new int[num];
      int tmp=0;
      for (int i=0;i<=num-1;i++)
      {
          tmp=ra.Next(minValue,maxValue);//随机取数
           arrNum[i]=getNum(arrNum,tmp,minValue,maxValue,ra);//取出值赋到数组中
      }
      return arrNum;
    }
    public int getNum(int[] arrNum,int tmp,int minValue,int maxValue,Random ra)
    {
    //Random ra=new Random(unchecked((int)DateTime.Now.Ticks));
    int n=0;
    while (n<=arrNum.Length-1)//利用循环判断是否有重复

             if (arrNum[n]==tmp)
             {
    tmp=ra.Next(minValue,maxValue); //重新随机获取
    getNum(arrNum,tmp,minValue,maxValue,ra);//递归:如果取出来的数字和已取得的数字有重复就重新随机获取
    }
    n++;
    }
    return tmp;
    }