首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

c#生成随机数(2)

c#生成随机数(2)

方法2:利用Hashtable。[NextPage]

 

     Hashtable hashtable = new Hashtable();
      Random rm = new Random();
      int RmNum = 10;
      for (int i = 0; hashtable.Count < RmNum; i++)
      {
          int nValue = rm.Next(100);
          if (!hashtable.ContainsValue(nValue) && nValue != 0)
          {
           hashtable.Add(nValue, nValue);
           Console.WriteLine(nValue.ToString());
          }
      }


  方法3:递归,用它来检测生成的随机数是否有重复,如果取出来的数字和已取得的数字有重复就重新随机获取。



     Random ra=new Random(unchecked((int)DateTime.Now.Ticks));
      int[] arrNum=new int[10];
      int tmp=0;
      int minValue=1;
      int maxValue=100;
      for (int i=0;i<10;i++)
      {
        tmp=ra.Next(minValue,maxValue); //随机取数
        arrNum=getNum(arrNum,tmp,minValue,maxValue,ra); //取出值赋到数组中
      }
      .........
      .........
      public int getNum(int[] arrNum,int tmp,int minValue,int maxValue,Random ra)
      {
        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;
      }
返回列表