Re: [問題] 徵求神人幫解大地遊戲分組的超難排列組合

作者: chuanmaotou (0xFFFFFFFF)   2015-06-19 21:23:07
※ 引述《a0928855286 (Alan君)》之銘言:
: 這是社團的大地遊戲分組(兩隊一組)
: 1.共有18隊
: 2.共有10個遊戲(分別10個時段)
: 3.每隊一定要有分到10個時段(都要玩到10個遊戲)
: 4.每隊不能和同一隊玩兩次
: 5.不一定要和每組都玩過
: 6.一個時段一個遊戲,只能有一組玩
: 誠徵神人或是數學天才的大大幫忙
: 小弟已經瀕臨崩潰,覺得無解啊==
: 但是上面有壓力就是這些條件。。。。
似乎有點像循環日程表問題
如果隊伍的數目是2^k的形式就好解決了,可以用分治法解決
先把問題轉成:
有2^k個隊伍跑關進行活動,保證關卡數小於隊伍數
怎麼樣排列才能使得跑關時不會遇到重複的隊伍?
首先當n=1時 只有兩隊參賽
所以得到
組別 對局組別
1 2
2 1
當n=2時 有四隊參賽
又知道 排成如n=1時的形式可以保證不會和同樣的隊伍對局
因此可以得到排法
組別 對局組別
1 2 3 4
2 1 4 3
3 4 1 2
4 3 2 1
所以在n=3(十六隊參賽時) 可以得到
如此程式的結果 https://ideone.com/aj4HfK
因為只有十關 所以只要取第二欄到第十一欄的資訊
就可以找到滿足3 4 5 6條件的對手表
又因為已經保證不會遇到重複的隊伍
所以只要將第一對該跑的關卡設為1 2 3 4 5 6 7 8 9 10
之後再依序填入其他組別該跑的關卡 即可得到答案
以此方法填入則非2^k形式的數無法找到解
假設 對伍數為3
組別 對局組別
1 2 3
2 1 ? ?為無法入填
3 ? 1
再來是 如18=2*(3^2)形式的6=2*3
組別 對局組別
1 2 3 4 5 6
2 1 ? 5 4 ?
3 ? 1 6 ? 4
4 5 6 1 2 3
5 4 ? 2 1 ?
6 ? 4 3 ? 1
因為填入後會有矛盾,跟自己對決?還是同一隊在同一時間可以跟好幾組打?
我猜測,假設隊伍數為n,關卡數為m,則必須符合
(n/m) mod 2 = 0
才能成立,只是一個猜測,不保證正確。
我剛剛把 #1LWwxha9 的程式丟到i7-4770的電腦
開-O3編譯後跑了三個半小時還是沒結果XD
作者: longlongint (華哥爾)   2015-06-20 13:46:00
就 笨蛋暴力法 XD

Links booklink

Contact Us: admin [ a t ] ucptt.com