2012-07-23 121 views
0

我在這裏停止搜索互聯網3天的結果,試圖找到我確定已存在的內容,但我無法找到它。從隨機列表中配對偶數和奇數

首先,我不是程序員。我35年前,但不再。

這就是問題所在: 15個男孩和15個女孩坐在男孩/女孩/男孩/女孩6至表5桌 然後讓每個人都變成不同的男孩/女孩/男孩/女孩高達4倍。

所以我的邏輯是:

  1. 數1至30,與賠率是男孩和埃文斯是女孩 - 這應該是可變的,但相等的,這意味着並不總是會出現在總共30個孩子,但在任何地方從12到80(總是可以被2整除,所以總會有一對)。
  2. 對1男孩與1女孩隨機從總男孩/女孩計數沒有重複。
  3. 將結果分組爲5組6.
  4. 然後重複該過程多達四次,而從未匹配先前配對的相同兩個男孩/女孩組合。

會有人知道這是可能的嗎?如果是這樣可以在Excel中完成? 如果不是,獨立Windows程序的建議也可以。

我想爲慈善活動做到這一點,青少年男孩和女孩在社交組合 遇到新的人。他們來自世界各地,我試圖讓他們見到每個人。

我已經手動做了幾年,但似乎從來沒有能夠使它總是工作。在我身邊的程序員認爲,這個問題必須有一個編程解決方案。

我希望你能提供任何建議。

+2

您只需隨機選取第一個位置,然後每次切換時只需將所有(如)男孩移動一個位置(或一張桌子)即可。假設男孩/女孩對是唯一的約束條件,並且你不想在每一輪中混合更多的表...... – 2012-07-23 18:23:51

+0

取決於你有多少人(以及每桌的人數),以及保持半個男孩和一半的女孩,那麼每次都可能無法擁有一個獨特的羣體(即使是在第一次交換之後),並且可能需要更多的掉期,而不是每個人都有時間與其他人坐在一起。你可以通過在紙上使用蒂姆的方法來看到這一點。我建議查找「握手問題」,找出可能解決問題的方案,優化訪問次數以滿足(幾乎)所有人。我會盡力在此添加更多內容,並在今晚晚些時候提供答案。祝你好運。 – Zairja 2012-07-23 21:00:04

回答

0

經過多一點挖掘,這似乎是Social Golfer Problem的變體。有幾個algorithms在那裏,一些依靠暴力或啓發式。在VBA中絕對可行,但你可能會找到現有的代碼/應用程序來完成任務。

我會繼續研究這一點,但讓我們知道如果你找到一個在線「調度程序」,解決您的問題。

編輯:

這可能是對的5個孩子6桌一個解決方案,但它不能保證半男孩/女孩約束。根據這一results page

對於N球員,其中m < N,它是不可能找到一個N組選手2周誰都是來自不同的星期1組m個組(因爲只有m個他們)。

對於m組n個玩家,每個玩家每週玩n-1個其他玩家。由於總共有mn-1個其他玩家,這意味着一名玩家在(mn-1)/(n-1)周後耗盡了夥伴。

因此5組6個孩子會重複。根據第二個公式,一個孩子在5回合後會耗盡夥伴。

5周6組5名球手

[1 2 3 4 5的玩| 6 7 8 9 10 | 11 12 13 14 15 | 16 17 18 19 20 | 21 22 23 24 25 | 26 27 28 29 30]

[1 6 11 16 21 | 2 7 12 17 26 | 3 8 13 22 27 | 4 9 18 23 28 | 5 14 19 24 29 | 10 15 20 25 30]

[1 8 12 20 28 | 2 6 14 22 30 | 3 9 11 17 24 | 4 7 16 25 29 | 5 15 18 21 27 | 10 13 19 23 26]

[1 14 17 25 27 | 2 9 13 20 21 | 3 10 12 18 29 | 4 6 15 24 26 | 5 8 16 23 30 | 7 11 19 22 28]

[1 9 15 22 29 | 2 10 16 24 27 | 3 7 14 20 23 | 4 12 19 21 30 | 5 6 13 17 28 | 8 11 18 25 26]