2020年4月9日木曜日

学習環境

代数への出発 (新装版 数学入門シリーズ) (松坂 和夫(著)、岩波書店)の第5章(連立方程式と高次方程式)、1(連立1次方程式)、問8の解答を求めてみる。


  1. 甲、乙、丙 が単独で仕事をした場合にかかる 日数を a、b、 c とする。

    このとき、 問題の仮定より、

    18 1 a + 1 b + 1 c = 36 1 a + 1 b = 24 1 b + 1 c = 1

    この解を求めればよい。

    3 1 a + 1 b + 1 c = 6 1 a + 1 b = 4 1 b + 1 c = 1 6 3 1 a + 1 b = 2 1 b + 1 c 3 b c + c a = 2 c a + a b c = 2 a b 3 b + a - 2 a = 2 a b a + 3 b 1 a + 1 b + a + 3 b 2 a b = 2 1 a + 1 b 2 b + 2 a + a + 3 b = 4 b + a b = a c = 2 a 2 a + 3 a = 1 2 a 6 1 a + 1 a = 1 6 a = b = 72 c = 36

    よって、 甲、乙、丙が単独で仕事をするとそれぞれ72日、72日、36日かかる。

コード

#!/usr/bin/env python3
from unittest import TestCase, main
from sympy import symbols, solve

print('8.')


class Test(TestCase):
    def test(self):
        a, b, c = symbols('a, b, c')

        s = solve([18 * (1 / a + 1 / b + 1 / c) - 1,
                   36 * (1 / a + 1 / b) - 1,
                   24 * (1 / b + 1 / c) - 1])
        self.assertEqual(len(s), 1)
        self.assertEqual(s[0], {a: 72, b: 72, c: 36})


if __name__ == "__main__":
    main()

入出力結果(Zsh、PowerShell、Terminal、Jupyter(IPython))

% ./sample8.py -v
8.
test (__main__.Test) ... ok

----------------------------------------------------------------------
Ran 1 test in 0.311s

OK
%

0 コメント:

コメントを投稿