Python 3 で数学を。

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

集合。部分集合 (Python 3: string, ascii_uppercase, zip(), NumPy: arange(), isin(), all())

使用するライブラリ

NumPy

(標準ライブラリからは、from string import ascii_uppercase)

Python 3 コード

subsets.py

#!/usr/bin/env python3


"""(docstring)
"""


from string import ascii_uppercase
import numpy as np


def subsets():
    """(docstring)
    """
    print('問題:\n以下に 6 つの集合がある。\nA の部分集合および B の部分集合はどれか。\n')

    A = np.arange(1, 6)
    B = np.arange(2, 5)
    C = np.arange(3, 8)
    D = np.arange(4, 7)
    E = np.arange(1, 3)
    F = np.arange(3, 5)

    l_A_F = [A, B, C, D, E, F]
    s_A_F = list(ascii_uppercase[0:6])

    for s1, l1 in zip(s_A_F, l_A_F):
        print('{}: {}'.format(s1, l1))
    print('')

    print('解答:\n')
    for s2, l2 in zip(s_A_F, l_A_F):
        if np.isin(l2, A).all():
            print('Aの部分集合: ', end='')
            print(s2)
            print('')
        if np.isin(l2, B).all():
            print('Bの部分集合: ', end='')
            print(s2)
            print('')


if __name__ == '__main__':
    subsets()

出力

$ python3 subsets.py
問題:
以下に 6 つの集合がある。
A の部分集合および B の部分集合はどれか。

A: [1 2 3 4 5]
B: [2 3 4]
C: [3 4 5 6 7]
D: [4 5 6]
E: [1 2]
F: [3 4]

解答:

Aの部分集合: A

Aの部分集合: B

Bの部分集合: B

Aの部分集合: E

Aの部分集合: F

Bの部分集合: F

参考文献 (数式を参考)

高校数学解法事典 第九版

高校数学解法事典 第九版