一道遊戲設計趣題

題目

前兩天好基友乘坐飛機去外地開年會,估計公司怕他們坐飛機實在太無聊,給他們搞了幾道思考題。學習

在此我分享一下這道題目,以及答題思路。請先看題目內容。我直接上圖片了,真的懶得打字呀~~~。優化

接下來分享一下解題思路:

首先想到的是最直接的方法,找出各類分類,並累加各類分類模式的總數便可。spa

對於5種兵種,其形式可分爲:圖片

1 1 1 1 1 (陣容爲同樣一個)     對此形式總數爲 1 ,從5個兵種中取出5個兵種, 組合數爲C55.get

5             (陣容爲同一兵種)     對此形式總數爲5 ,從5個兵種中取出1個兵種,組合數爲C51.it

2 2 1       (2個某兵種,2個某其餘兵種,1個某其餘兵種) 對此形式總數爲 30,組合數爲C51 * C41 * C31 / 2. (這裏須要除以2 ,要去除221中22引發的重複)擴展

2 3          (請腦補)對此形式總數爲20,組合數爲C51 * C41.方法

1 4          (請腦補) 對此形式總數爲20,組合數爲C51 * C41.im

1 1 1 2    (請腦補)對此形式總數爲20,組合數爲C51 * C41 * C31 * C21 / 6.(這裏須要除以6 ,要去除1112中111引發的重複)img

1 3 1       (請腦補)對此形式總數爲30,組合數爲C51 * C41 * C31 /2. (這裏須要除以2 ,要去除131中1 1引發的重複)

一共爲 1 + 5 + 30 + 30 + 20 + 20 + 20 = 126.

擴展

理論上此題目已經解決,可是尚未抽取出能夠擴展的規律。也就是說還有找到解決問題的通式。進一步思考,想到了高中時學習的插空法。嗯,可用此法優化解題思路。

5個兵種槽位之間有4個空,插空即便將槽位進行分類。分類方式爲插零個空C40(不分),插一個空C41(分紅兩部分),兩個空C42(分紅三部分),三個空C43(分紅四部分),四個空C44(分紅五部分)。

以分紅兩部分爲例:

C41 * C52 :C52的意思爲從5個兵種中任取2個兵種。將兩個兵種分配到C41個槽模式下,總數爲40.

最終總數爲:

C40*C51 + C41*C52 + C42*C53 + C43*C54 + C44*C55 =  5 + 40 + 60 + 20 + 1 = 126  (1)

再次擴展

將組合式(1)進行以下變換獲得組合式(2)

C44*C51 + C43*C52 + C42*C53 + C41*C54 + C40*C55 (2)  

組合式(2)能夠縮寫爲  並可改寫爲C95,9 爲(5 - 1) + 5 也就是槽數 -1 + 兵種數,5 爲 兵種數。

因此相似問題都可用一個組合數來表示。妙哉!~ 擴展公式爲 n爲兵種槽數,m爲兵種數

 

最後,我基友告訴我其實我推出了一個 公式。。。。

容許重複組合

還有一個巧妙的思路,能夠直接得出C94的答案,在這裏我就不介紹了,方法總比問題多,僅在這裏拋磚引玉,若是錯誤請你們批評指正。謝謝。

相關文章
相關標籤/搜索