更新1:
[心得] 亂數不重複的方法 https://www.ptt.cc/bbs/C_and_CPP/M.1265989028.A.7C6.html for(int i = 0,got = 0 ; i < deckSize ; ++i) { if( rand() % (deckSize-i) < (getSize-got) ) { cards[got] = i + 1; ++got; } 基本上就是判斷亂數有沒有在區間內,有在區間內就選這張牌並縮小區間,沒在區間內就縮小亂數範圍。 例如52張牌(亂數範圍)選5張(區間) 第1張牌要不要選 區間內:選這張且區間-1(變成4) 區間外:亂數範圍-1(變成51) 但這樣每張牌選中的機率相等嗎?
更新2:
更正 第1張牌要不要選 區間內:選這張,亂數範圍-1(變成51)且區間-1(變成4) 區間外:亂數範圍-1(變成51)