一道游戏设计趣题

题目

前两天好基友乘坐飞机去外地开年会,估计公司怕他们坐飞机实在太无聊,给他们搞了几道思考题。学习

在此我分享一下这道题目,以及答题思路。请先看题目内容。我直接上图片了,真的懒得打字呀~~~。优化

接下来分享一下解题思路:

首先想到的是最直接的方法,找出各类分类,并累加各类分类模式的总数便可。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的答案,在这里我就不介绍了,方法总比问题多,仅在这里抛砖引玉,若是错误请你们批评指正。谢谢。

相关文章
相关标签/搜索