程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> 關於csdn論壇將1-20 的數字亂序,我的個人解答

關於csdn論壇將1-20 的數字亂序,我的個人解答

編輯:.NET實例教程

雖然不是很好,還是放上來

大家的思路都是for 循環,得到隨機數,不重復添加,重復繼續尋找隨機數,知道滿了為址

 



int[]  reInt=new int[20] ...{-1,-1-,1-1.................};

for (int iCount=0;iCount<20;iCount++)

...{

     bool isFind=false;
     int rand=new Random().Next(1,20);
     for(int yCount=0;yCount<20;yCount++)
     ...{
          if(reInt[yCount]==rand)
          ...{
                   isFind=true;
                   break;
           }
     }
      
     if(isFind)
           iCount--;      
     else
     reInt[iCount]=rand;
 } 

 

大部分的書估計都是這樣寫,這樣的缺點是單這個數字段如果是1000個的時候,很難判斷這兩個for循環什麼時候會結束,不是簡單的n*n哦。我的方法如下

 



  private  System.Random random = new Random();
        private int iCount = 0;
        private  int[] retInt=new int [20]...{-1,-1.............};

 public void GetRandom(int start ,int end)
        ...{
            if (start == end)
            ...{
                retInt[iCount++)=start;
                return ;
            
            }
            int mid= random.Next(start, end);

             retInt[iCount++)=mid;        
             //左邊隨機
              if(mid!=start) GetRandom(start, mid - 1);
             //右邊隨機
    &nbsp;         if (mid != end) GetRandom(mid + 1, end);
            return ;
        }

 

這樣20個數,就是20次隨機,10000個就是1w次隨機


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved