斐伊川,我有這個問題
有N [甚至]誰想要下棋
玩家人數我怎樣才能獲得隨機的球員和對手? [每個球員將只得到一個機會]從池中選擇棋手 - 算法
認爲有6播放器 - P1,P2,P3,P4,P5,P6
我想做一個代碼,會爲我
P1 VS P5做這樣的常規
P2 VS P6
P3 VS P4
斐伊川,我有這個問題
有N [甚至]誰想要下棋
玩家人數我怎樣才能獲得隨機的球員和對手? [每個球員將只得到一個機會]從池中選擇棋手 - 算法
認爲有6播放器 - P1,P2,P3,P4,P5,P6
我想做一個代碼,會爲我
P1 VS P5做這樣的常規
P2 VS P6
P3 VS P4
您可以將唯一的隨機編號分配給每一個球員,排序PL ayer列表使用該號碼並且選擇對1-2,3-4,5-6等等。由於現在幾乎所有的語言都內置了排序,因此應該非常快。
PLZ解釋一點點,並用一個例子 – Sourav 2011-05-18 14:51:01
這在Perl:'子配對{我@sorted =映射$ _-> [1],排序{$一 - > [0] <=> $ B - > [ 0]} map [rand(),$ _],@_;我的@result; push @result,[shift @sorted,shift @sorted],而1 <@sorted;返回@result;}'而示例用法:'用於(配對(1..10)){打印 「$ _-> [0] \ T $ _-> [1] \ n」 個}' – btilly 2011-05-18 17:04:46
但他只是想要一個組合。所以只需要用數字1到6填充一個數組並進行洗牌。然後玩家[0]和玩家[1]玩,玩家[2]和玩家[3],玩家[4]和玩家[5]。 – 2011-05-18 16:08:03
store players in array a of size n
let p be a pair(w, b)
let l be a list of pairs
while n > 0
let x be a random number between 0 and n
add player at index x in a to p as w
remove index x from a
n--
let y be a random number between 0 and n
add player at index y in a to p as b
remove index y from a
n--
add p to l
endwhile
我想你想隨機拿一個標記,然後縮小播放器數組!我對嗎 ? – Sourav 2011-05-18 14:41:41
我想這取決於你想要做進去。 – Chad 2011-05-18 14:32:25
什麼語言算法並不真正依賴於語言 – sehe 2011-05-18 14:33:07
爲什麼下跌票? – kefeizhou 2011-05-18 14:36:08