天天看点

[蓝桥杯] 纸牌三角形 python解法

标题:纸牌三角形

A,2,3,4,5,6,7,8,9 共9张纸牌排成一个正三角形(A按1计算)。要求每个边的和相等。

下图就是一种排法(如有对齐问题,参看p1.png)。

A
 9 6
4   8
           

3 7 5 2

这样的排法可能会有很多。

如果考虑旋转、镜像后相同的算同一种,一共有多少种不同的排法呢?

请你计算并提交该数字。

解法:全排列然后把每一个看作三角形的展开即可。

结果:144

import itertools

lis = [1,2,3,4,5,6,7,8,9]
ans = 0
for i in itertools.permutations(lis):
    if sum(i[:4]) == sum(i[3:7]) == sum(i[6:]) + i[0]:
        ans += 1
print(ans/6)
           

继续阅读