從card[51]開始扁歷,把當前的card 與card[rand.nextint(51)]交換,遍歷一次後,也就隨機得差不多了
對於52張牌,實現乙個隨機打算撲克牌順序的程式。52張牌使用int
陣列模擬。
該演算法的難點是如何保證隨機性?有個經典演算法shuffle
,思路就是遍歷陣列,在剩下的元素裡再隨機取乙個元素,然後再在剩下的元素裡再隨機取乙個元素。每次取完元素後,我們就不會讓這個元素參與下一次的選取。
12
3
4
to shufflean array
aof n elements (indices
0..n
-1):
for i
from n −
1 downto
1do j ←
random
integer
with
0 ≤ j ≤ i
exchange
a[j]
anda[i]
注意這兒是0 ≤ j ≤ i
,包括j=i
的情況,因為可能洗牌後某個牌未發生交換,比如第51張牌還是原來的第51張牌。
12
3
4
5
6
7
8
9
10
11
publicvoid
randomcards
()
}
隨機打亂 隨機發牌
一.產生乙個隨機數 1.new random nextint 10 0,10 的隨機數 2.二.如何打亂乙個陣列或隨機排序,除了 random之外collections.shuffle非常方便,且效率高。可以實現隨機打亂列表的功能,實現把員工 順序 打亂等,安全傳輸方面,比如傳送加密前,把資料隨機打...
隨機發牌 物件導向版鬥地主發牌(集合實現)
需求 需求是不是看著很簡單,就幾行字。建議先對著需求自己想想該如何去實現。分析 這裡小白需要注意,包括我自己,你千萬別認為要構思出所有的實現細節才著手寫。我寫的過程中像第四第五點都是後面寫的過程中才碰到的。有了大概思路就可以嘗試了。告訴自己我先寫三分鐘試試。首先是poker類 public clas...
撲克牌的隨機發牌程式
乙個撲克牌遊戲 準確的說就是 鬥地主 本來是打算取0 53的隨機數,取過的就做乙個標識,迴圈直至全部完。但是細想一下,效率實在是太低了,最後決定用亂序的方式,感覺還不錯。不知道還有沒有更好的辦法,請大家多多指教!using system using system.collections namesp...