見出し画像

ゆるプロ!数学編その4「順列」

ゆるいプログラミング講座、略して「ゆるプロ!」
これは気軽に気楽に試せるゆるいプログラミング学習コンテンツである。今回のお題は「順列」

例)順列

import itertools
num = {"A", "B", "C", "D", "E"}
A = set(itertools.permutations(num,3))
print("5つの文字から3つ並べて出来る順列の場合の数は" + str(len(A)) + "です")
print(A)

結果)

5つの文字から3つ並べて出来る順列の場合の数は60です

{('C', 'D', 'E'), ('B', 'D', 'C'), ('D', 'C', 'E'), ('A', 'C', 'B'), ('E', 'D', 'B'), ('D', 'A', 'B'), ('D', 'E', 'B'), ('A', 'C', 'D'), ('C', 'B', 'A'), ('A', 'E', 'B'), ('D', 'A', 'E'), ('A', 'B', 'D'), ('A', 'C', 'E'), ('A', 'E', 'D'), ('A', 'B', 'E'), ('C', 'E', 'A'), ('E', 'C', 'A'), ('B', 'D', 'E'), ('B', 'C', 'A'), ('E', 'B', 'A'), ('A', 'D', 'C'), ('B', 'E', 'A'), ('D', 'B', 'A'), ('C', 'A', 'B'), ('C', 'B', 'D'), ('A', 'D', 'B'), ('C', 'B', 'E'), ('D', 'C', 'A'), ('B', 'E', 'C'), ('E', 'B', 'C'), ('C', 'A', 'D'), ('C', 'D', 'A'), ('C', 'E', 'B'), ('B', 'A', 'C'), ('C', 'E', 'D'), ('D', 'B', 'C'), ('E', 'A', 'C'), ('E', 'C', 'B'), ('C', 'A', 'E'), ('E', 'D', 'A'), ('A', 'D', 'E'), ('E', 'C', 'D'), ('B', 'C', 'D'), ('D', 'E', 'A'), ('E', 'A', 'B'), ('E', 'B', 'D'), ('B', 'C', 'E'), ('B', 'E', 'D'), ('D', 'A', 'C'), ('E', 'A', 'D'), ('B', 'A', 'D'), ('B', 'D', 'A'), ('D', 'C', 'B'), ('D', 'B', 'E'), ('E', 'D', 'C'), ('C', 'D', 'B'), ('A', 'B', 'C'), ('D', 'E', 'C'), ('B', 'A', 'E'), ('A', 'E', 'C')}

補足)

itertools.permutations(num,3)はpermutations objectを作り出すので、setしてあげることにより、コンテナとして機能する。波括弧でくくるのと一緒、setオブジェクト

参考)

・permutation → 順列

・set

set オブジェクトは、固有の hashable オブジェクトの順序なしコレクションです。
(中略)
set コンストラクタに加え、要素を波括弧中にカンマで区切って列挙することでも生成できます。

・itertools, permutation

・イテレーター

コンテナ、コレクションとは

おわり!