Python 3 で数学を。

Python 3 とライブラリで数学の問題を解いていきます。統計学や機械学習はときどき。

アルゴリズム。組合せ。(Python 3)

使用するライブラリ

なし

Python 3 コード

combinations1.py

#!/usr/bin/env python3


"""(docstring)
"""


# (効率や計算量が気になるなら、このアルゴリズムでなく他の方法がいいかも)。
def combinations1(n, k):
    """(docstring)
    """
    if k == 0 or k == n:
        return 1
    else:
        return combinations1(n-1, k-1) + combinations1(n-1, k)


if __name__ == '__main__':
    print(combinations1(4, 2))
    print(combinations1(6, 3))
    print(combinations1(5, 3))
    print(combinations1(8, 3))
    print(combinations1(16, 8))

出力

$ python3 combinations1.py
6
20
10
56
12870

参考文献

C言語による最新アルゴリズム事典 (ソフトウェアテクノロジー)

C言語による最新アルゴリズム事典 (ソフトウェアテクノロジー)

新版はこちら:

[改訂新版]C言語による標準アルゴリズム事典 (Software Technology)

[改訂新版]C言語による標準アルゴリズム事典 (Software Technology)

関連過去記事

py3math.hatenablog.com

py3math.hatenablog.com

py3math.hatenablog.com

py3math.hatenablog.com

py3math.hatenablog.com

py3math.hatenablog.com