場合の数の問題をPythonで解いてみた

 質問の場合の数の問題Pythonで解いてみました。(^_^;
 Pythonでプログラムを作ってカウントさせてみたら、240通りという結果が得られました。

●Outcomes.py

# coding: UTF-8
# Outcomes.py
import itertools
c=0
for p in itertools.permutations(['D','E','F','d','e','f']):
    # 隣接したらスキップ
    if abs(p.index('D')-p.index('d'))==1: continue
    if abs(p.index('E')-p.index('e'))==1: continue
    if abs(p.index('F')-p.index('f'))==1: continue
    # チェックを潜り抜けたものだけを表示
    c+=1
    print("[%3d] : %s"%(c,p))

●実行結果

[  1] : ('D', 'E', 'F', 'd', 'e', 'f')
[  2] : ('D', 'E', 'F', 'd', 'f', 'e')
[  3] : ('D', 'E', 'F', 'e', 'd', 'f')

…(省略)…

[238] : ('f', 'e', 'd', 'E', 'F', 'D')
[239] : ('f', 'e', 'd', 'F', 'D', 'E')
[240] : ('f', 'e', 'd', 'F', 'E', 'D')

Pythonスタートブック

Pythonスタートブック

みんなのPython 改訂版

みんなのPython 改訂版

Python入門[2&3対応]

Python入門[2&3対応]

初めてのPython 第3版

初めてのPython 第3版

やさしいPython入門

やさしいPython入門

Pythonプロフェッショナルプログラミング

Pythonプロフェッショナルプログラミング