2019年1月31日木曜日

学習環境

数学読本〈1〉数・式の計算/方程式/不等式 (松坂 和夫(著)、岩波書店)の第4章(大小関係を見る - 不等式)、4.2(不等式の解法)、1次不等式の問8の解答を求めてみる。


  1. ボールの個数を a 個、箱の個数を b 個とおく。

    問題の仮定より、

    9 b + 30 = a 0 < a - 12 b - 1 < 12

    この等式、不等式を満たす正の整数 a、bを求める。

    - 12 < a - 12 b < 0 - 12 < 9 b + 30 - 12 b < 0 - 42 < - 3 b < - 30 10 < b < 14 b = 11 , 12 , 13 a = 129 , 138 , 147

    よって、ボールの個数が129個、138個、147個の場合に問題の仮定が成り立つ。

コード

Python 3

#!/usr/bin/env python3
from sympy import pprint, symbols, solve, Rational
from sympy.solvers.inequalities import reduce_inequalities

print('8.')

ball, box = symbols('ball, box', integer=True, positive=True)

box_count = solve(9 * box + 30 - ball, box)
for box in box_count:
    print(box.factor())
    expr = ball - 12 * (box - 1)
    pprint(reduce_inequalities(0 < expr) & reduce_inequalities(expr < 12))

for ball in range(128, 156):
    box = Rational(ball - 30, 9)
    if box.is_integer:
        print(f'ボールの個数: {ball}個(箱の個数: {box}個)')

入出力結果(cmd(コマンドプロンプト)、Terminal、Jupyter(IPython))

$ python3 sample8.py 
8.
(ball - 30)/9
120 < ball ∧ ball < 156
ボールの個数: 129個(箱の個数: 11個)
ボールの個数: 138個(箱の個数: 12個)
ボールの個数: 147個(箱の個数: 13個)
$

0 コメント:

コメントを投稿