おはようございます。
本日はpythonで組み合わせ関数を作ってみようと思います。
作り方は3通りあるので、それぞれ作っていきたいと思います。
1つ目はfor文です。
for.py
def combination(n,m):
value = 1
for i in range(m):
value *= (n-i)/(i+1)
return int(value)
最後にint型に直して整数で値を返すようにします。
2つ目はwhile文です。
while.py
def combination(n,m):
value = 1
while m > 0:
value *= n/m
n -= 1
m -= 1
return int(value)
こちらも同様にint型に直して整数を返すようにします。
そして3つ目は再帰です。(個人的には一番好きです。)
saiki.py
def combination(n,m):
if m == 0:
return 1
return int(n/m * combination(n-1,m-1))
再帰もfor文やwhile文と同様にループのようなものです。
ここでは、m==0になるまで関数を繰り返し呼び出すというプログラムになっています。
以上でpython組み合わせ関数の書き方の説明を終わりたいと思います。