天天看點

[藍橋杯] 紙牌三角形 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)
           

繼續閱讀