在我們剛剛舉辦完的部門聚餐中, 有個交換禮物的活動. 雖然只是價值 300 元以下的獎品, 不過真的玩起來還是挺驚險刺激的. 除了抽獎的本身, 遊戲規則也是我感興趣的, 想著想著就睡不著了.
如果每個人的禮物都編了號, 大家都去摸彩箱抽號碼牌, 那麼有一定的機率抽中自己的禮物. 在我們這次活動中, 一共有 26 個人, 第一個人抽中自己的機率是 1/26, 愈後面抽機會愈大.
因此得把規則修改一下, 每個人抽出另外一個人, 並且得到他的禮物, 這個規則幾乎可以保證 “不會抽到自己的禮物". 因為自己的那張籤已經被上一個人抽出來了.
第一個要考慮的狀況是: 第一張籤是主持人抽的, 而我們不能保證他/她不會抽到自己, 這個機率同樣有 1/26. 假設主持人沒有抽到自己, 又或者任何人抽到主持人的話, 應該直接予以無視, 他/她可以再抽一個號碼 – 獲得禮物、繼續遊戲. 並且我們規定最後一張被抽出的人 (如 Daniel) 要拿主持人 (如 Alice) 的禮物. 這樣似乎就不會有問題, 下面的流程圖是 4 個人的例子.
如果沒有強迫最後一個人拿主持人 Alice 的禮物, 那麼只有很低的機率, 直到最後一個人才抽到主持人 Alice (如下圖). 基本上, 如此完美的經典畫面可說是人間少有.
更合理的狀況是, 早早就有某人把 Alice 抽出來了, 並且此籤有效 – 他/她獲得主持人的禮物. 那麼這些人將成為一個中籤者集團, 讓另一些人變成未中籤者集團. 舉四個人的例子來說, 當 Cash 抽到 Alice, Daniel 和他的禮物就可憐地落單了 – 他只能選自己的禮物. 很可能未中籤者集團並不只一個人, 所以中籤者集團這個問題可以多次復發. 此時, 我們還得重新幫他們起個頭, 也就是製造出第二、第三個 “主持人".
好! 我想我可以解決主持人例外的問題了. 或許這不是最佳的解決方案. 不過我們有更棘手的問題要想.
這次的遊戲當中, 除了上述的正常卡片之外, 還有兩種特殊卡. 包括可以指定和某人交換禮物的 “搶奪卡", 和只能和某一家交換禮物的 “交換卡". 如果抽到特殊卡, 就必須再抽到一張號碼卡, 才能找出下一棒. 此時得到的禮物因為 “搶奪卡" 的關係將變成別人的. 為了讓參加遊戲的人懊悔不已, 我們應該讓他/她先選擇搶誰, 然後再抽下一張號碼卡. 當然, 同一個人連續抽到特殊卡這件事應該被禁止掉, 以無效重抽來處理.
搶奪卡要不要考慮哪些對象不能搶呢? 如果我搶已經中籤的人, 看來沒問題. 如果我搶未中籤的人, 對方可能又抽到 “搶奪卡", 或是 “交換卡", 那麼就有指令順序逆轉的問題. 因為對方如果不完成他/她的動作, 我的動作就無法完成. 況且, 我行搶的對方要是遲遲不中籤, 那個等待被搶的人, 甚至搶人的人慢慢就會淡定掉了. 為了讓遊戲維持緊張刺激, 規定只能搶已經中籤的人比較明快.
再來是交換卡的狀況, 如果規定只能和下一家交換, Alice 抽到交換卡後, 又抽到 Barry, 於是他要拿 Barry 的禮物和 Barry 抽到的 Cash 的禮物交換. 雖然 Alice 得到 Cash 的禮物, 而 Barry 竟然會得到自己的禮物. 於是我們只好改成 “交換卡是和下下一家交換". Alice 拿著 Barry 的禮物, 和 Cash 抽到的 Daniel 的禮物交換. 最後 Alice 得到 Daniel 的禮物, Barry 得到 Cash 的禮物, 而 Cash 得到 Barry 的禮物.
考慮遊戲的 boundary, 我們回去看第一張圖. 倒數第二個人 Cash 若是抽到交換卡, 他的下下一家可以視為 Alice, 因為 Daniel 拿了 Alice 的禮物. 對於這樣一個健康的迴圈, 似乎一切都合理.
那麼可以鼓勵往上遊換嗎? 往上一家換的話, 就會直接拿到自己的禮物, 所以我們只能考慮換上上一家. 可是對第一、二個遊戲者來說, 上上一家本來就不存在. 我們又要發明一些規則來處理例外, 不如就讓它和下下一家換吧!
萬一抽到交換卡的人, 他/她的下一家或是下下一家也抽到特殊卡呢? 我們應該等先抽到特殊卡的人完成指令 (first in first out – FIFO)? 還是後進先出 (last in first out – LIFO) 比較合理呢? 讓我們繼續看下去..., 呃, 我想 就直接選 LIFO 吧! 後發生的先做完, 它的輸出才能當作先發生者的輸入!
在此趕快做個小小的結論, 讓我可以順利睡著吧! 要是漏洞太多, 我可能會半夜驚醒吧…
1. 主持人抽出第一個人, 並獲得他/她的禮物.
2. 任何人抽到主持人一律無視, 此籤無效.
3. 最後一個被抽到的人拿主持人的禮物.
4. 搶奪卡建議搶已經抽中禮物的人.
5. 交換卡和下下一家交換, 以迴圈的方式考慮最後一個人的下一家就是主持人.
6. 同一個人連續抽到特殊卡無效.
7. 如果特殊卡事件連續發生, 以 “後發生的先完成" 處理.
8. 如有未盡事宜, 由主持人解釋之.