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: …

アルゴリズム。素因数分解。(Python 3)

使用するライブラリ なし Python 3 コード factoriz.py (例外処理はざっとやっているだけ)。 #!/usr/bin/env python3 """(docstring) """ def factoriz(x): """(docstring) """ # 小数点以下切り捨て。 x = int(x) if x <= 1: return print('2 以上の数値を…

アルゴリズム。ユークリッドの互除法 (再帰版)。最大公約数。gcd (greatest common divisor) (Python 3)

使用するライブラリ なし Python 3 コード my_gcd2.py #!/usr/bin/env python3 """(docstring) """ def my_gcd2(x, y): """(docstring) """ if y == 0: return x else: return my_gcd2(y, x % y) if __name__ == '__main__': n_list = [[8, 12], [16, 24], […

アルゴリズム。二分探索。 Binary Search (Python 3)

使用するライブラリ なし。 Python 3 コード binary_search.py #!/usr/bin/env python3 """(docstring) """ def binary_search(data, num): """(docstring) """ head = 0 tail = len(data) - 1 while head <= tail: center = (head + tail) // 2 if data[cen…

アルゴリズム。最大公約数。gcd (greatest common divisor) (Python 3: リスト内包表記, max())

使用するライブラリ なし Python 3 コード my_gcd.py #!/usr/bin/env python3 """(docstring) """ # コードを書く際の縛り。 # # リスト内包表記を使用する。 # オレオレアルゴリズムで頑張る。 def my_gcd(x, y): """(docstring) """ return max([i for i i…

アルゴリズム。逐次探索 (線形探索)。 Sequential Search (Python 3)

使用するライブラリ なし Python 3 コード sequential_search.py #!/usr/bin/env python3 """(docstring) """ def sequential_search(collection, target): """(docstring) """ # 最良: O(1) # 平均, 最悪: O(n) for elem in collection: if elem == target:…

アルゴリズム。挿入ソート。Insertion Sort (Python 3)

使用するライブラリ なし Python 3 コード insertion_sort.py #!/usr/bin/env python3 """(docstring) """ def insertion_sort(A): """(docstring) """ # 挿入ソートは、要素数が少ないか、最初から集まりがほぼ整列している場合に使用する。 # 最良: O(n) #…