手链样式
小明有3颗红珊瑚,4颗白珊瑚,5颗黄玛瑙。
他想用它们串成一圈作为手链,送给女朋友。
现在小明想知道:如果考虑手链可以随意转动或翻转,一共可以有多少不同的组合样式呢?
请你提交该整数。不要填写任何多余的内容或说明性的文字。
答案:1170种
在网上找了很多篇关于这道手链样式的题目编程的讲解,但都看的很懵逼,最后只能通过数学方式来理解这道题目。
我的理解:
分析:
这个题首先一定要理解题意,转动和翻转是个什么意思,转动就是我们所得到的的排列是个环,即起点不固定,具体点说即使1234和2341是一种方式(3412也一样)。翻转就是,这个排列是个立体的,可以上下左右翻转.
解题思路
将红珊瑚当做A,白珊瑚比作B,黄玛瑙比作C
第一步:求出没有转动的可能总数;(这个时候还有翻转没有排除)
第二步:求翻转的可能总数。翻转与除以2有关:注意:有的串是对称的!将奇数变成偶数之后才能对称。(那么什么叫将奇数变成偶数才能堆成呢?对于一个圆圈,要想关于对称轴对称的话,对称轴两侧的颜色和排列是一样的,所以对称轴两侧的各种颜色的数量是偶数个的)因此,将A、C作为对称轴(注意,这是平面里面的中心对称),将A、C各取出1颗组成一条对称轴(如果无法理解的话,我的建议是可以画一个图,便于理解),剩下2个A,4个B,4个C两边对称
第三步:排除对称的求解;
解题步骤:
-
第一步:求出没有转动的可能总数;(这个时候还有翻转没有排除)
- 首先,一共有12颗珊瑚和玛瑙,那么可以有12! 种的组合情况(包含翻转和转动的情况);
- 然后,3颗红珊瑚排列在一起的时候,不管这3颗红珊瑚怎么排列,因为颜色是一样的,所以对于手链来说都是一样的,因此排列情况有3! 种;同理,白珊瑚在一起的时候,有4! 种,黄玛瑙在一起的时候,有5! 种;
- 其次,我们可以将这个手链看成一个队列,12颗珠子排好之后,不管谁是队首谁是队尾,这个手链都是一样的,因此对于这个队列而言,每颗珠子都可以成为队首,所以一共有12种情况;
- 最后,需要用总的组合情况来除去这些情况
综上所述,得出第一步的数学式子:12!/(3!*4!*5!*12)=2310种
这个时候就会有些对于组合排列不是非常理解的朋友问为什么不是减去这些情况而是除;
其实很简单,我上面说的3种情况都是解剖开来单独解释的,
但是实际上,上面说的所有情况也都是组合出现的,因此,是用总数除去这些情况; -
第二步:求翻转的可能总数。
根据上面的解题思路可知,将A、C各取出1颗组成一条对称轴,剩下2个A,4个B,4个C两边对称,也就是说,对称轴每一边都是1个A,2个B,2个C,一共有5个,这个时候又遇到了第一步中的排列组合情况
- 首先,一共有5个珠子,所以一共有5!种排列组合的情况;
- 2个B会出现2!种的排列的情况;
- 2个C也会出现2!种的排列的情况;
综上所述,得出第二步的数学式子:5!/(2*2)=30种
-
第三步:排除对称的求解;
- 首先,先求出不管怎么翻转都不会出现对称的情况,也就是(2310-30)/2;
- 然后,再将翻转的情况加上;
综上所述,得出第三步的数学式子:30+(2310-30)/2=1170种
以上便是我的理解了,如果有什么错误的话,欢迎大家前来指正
写这篇文章所参考的链接:https://blog.csdn.net/jiayoudangdang/article/details/79388497