2019年3月7日木曜日

学習環境

解析入門(上) (松坂和夫 数学入門シリーズ 4) (松坂 和夫(著)、岩波書店)の第1章(数)、1.2(自然数、整数)、問題6を取り組んでみる。


  1. 0でない有理数 a の既約分数を

    a = B A

    とおく。

    また、

    A = p i α i A i

    とおく。

    このとき、

    A 1 , , A s

    が共通な素因数 p を持つと仮定すると、 p は A の素因数でもある。

    よって、

    p 1 , , p s

    のいずれかが p で割り切れる。

    p i

    が p で割り切れるとすると、 分母は標準分解なので他の

    p i i j

    は p で割り切れない。

    よって、

    A i = p 1 p i - 1 p i + 1 p s

    は p で割に切れない。

    よって矛盾。

    ゆえに、

    A 1 , , A s

    は共通な素因数をもたない。

    A 1 , , A s = 1

    定理4より、

    k 1 A 1 + + k s A s = 1

    を満たす整数

    k i i = 1 , , s

    が存在する。

    上記の等式の両辺を A で割ると、

    k 1 q 1 + + k s q s = 1 A q i = p i α i

    両辺に B をかけると、

    a = k 1 B q 1 + + k s B q s

    よって、

    k i B = h i i = 1 , , s

    とおけばよい。

    (証明終)

コード

Python 3

#!/usr/bin/env python3
from sympy import pprint, symbols, primerange, Rational, solve
import random

print('6.')

primes = list(primerange(1, 100))[:10]
exps = [random.randrange(5) for _ in enumerate(primes)]
A = sum([p ** x for p, x in zip(primes, exps)])
B = 1
for p in primerange(100, 150):
    B *= p ** random.randrange(5)

a = Rational(A, B)

pprint(a)
eq = a - sum([symbols(f'h{i}', integer=True) / p ** x
              for i, (p, x) in enumerate(zip(primes, exps))])

pprint(solve(eq))

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

C:\Users\...> py -3 sample6.py
6.
                5889                
────────────────────────────────────
337468786192609329659717788261696583
⎡⎧      4⋅h₁   4⋅h₂   4⋅h₃   4⋅h₄          4⋅h₆          4⋅h₈                 
⎢⎨h₀: - ──── - ──── - ──── - ──── - 4⋅h₅ - ──── - 4⋅h₇ - ──── - 4⋅h₉ + ───────
⎣⎩       81     5     343     11           4913          529           3374687

        23556                ⎫⎤
─────────────────────────────⎬⎥
86192609329659717788261696583⎭⎦

C:\Users\...>

0 コメント:

コメントを投稿