Fisher_Yates_Shuff

2229 단어 랜덤 알고리즘

  
  
  
  
  1. --Fisher_Yates_Shuff  
  2. function ShuffArray_Fisher_Yates(nTotalNum, nNum) 
  3.     local tbTemp = {} 
  4.     if nNum == 0 then 
  5.         return tbTemp 
  6.     end 
  7.     if nNum > nTotalNum then 
  8.         nNum = nTotalNum 
  9.     end 
  10.  
  11.     for i = 1, nTotalNum do 
  12.         tbTemp[i] = i 
  13.     end 
  14.      
  15.     local tbRandSeq = {} 
  16.     for i = 1, nNum do 
  17.         local nLocal = math.random(#tbTemp) 
  18.         tbRandSeq[i] = tbTemp[nLocal] 
  19.         table.remove(tbTemp, nLocal) 
  20.     end 
  21.     return tbRandSeq 
  22. end 

좋은 웹페이지 즐겨찾기