Python で分数を減らす

Fariba Laiq 2023年6月21日
  1. パイソン分数
  2. Python で分数を減らす
Python で分数を減らす

Python には、有理数を使った算術演算の機能があります。 文字列、数値、小数、浮動小数点数、および整数から分数インスタンスを作成できます。

整数のペア、別の有理数、テキスト、または分数をすべて使用して、分数インスタンスを作成できます。 小数インスタンスはハッシュできるため、不変と見なす必要があります。

パイソン分数

Python Fraction モジュールは、有理数を使った算術演算を提供します。 このモジュールの助けを借りて、文字列やその他の数値変数 (整数、浮動小数点、小数など) を分数に変換できます。

分数インスタンスのアイデアが存在します。 これは、分子と分母として機能する 2つの数値で構成されます。

間違いなく、Fraction モジュールは、Python 標準ライブラリの中で最も使用されていない部分の 1つです。 広く認識されていないかもしれませんが、2 進浮動小数点演算の問題を解決するのに役立つため、便利なツールです。

財務データを操作する場合、または計算で無限の精度が必要な場合、これは非常に重要です。

Python で分数を作成する

Python で分数を作成するには、fractions ライブラリから Fraction モジュールをインポートする必要があります。

分数は、小数値 0.51/2 に変更します。 同様に、(21, 60)7/20 に変わり、最後の分数 (0, 10) は分子が 0 であるため、0 出力を与えます。

コード例:

from fractions import Fraction

print(Fraction(0.5))
print(Fraction(21, 60))
print(Fraction(0, 10))

出力:

1/2
7/20
0

Python で分数を減らす

次の例では、簡単な手順で分数を減らしました。

まず、関数 GCD (最大公約数) を定義し、2つの整数 n と m を宣言しました。 次に、d (分母) を mn の最小値に設定します。

while ループを使用して、最大公約数を見つけます。 次に、被約分数の分子と分母を返す別の関数 reduce() を定義しました。

num (分数の分子) はゼロ以外の整数でなければなりません。 num が 0 の場合、簡約分数は 0 です。 それ以外の場合は、関数を呼び出して最大公約数を見つけます。

numden を GCD で割って結果を計算します。

コード例:

def GCD(n, m):
    d = min(n, m)
    while n % d != 0 or m % d != 0:
        d = d - 1
    return d


def reduce(num, den):
    if num == 0:
        return (0, 1)
    G = GCD(num, den)
    return (num // G, den // G)


num = 3
den = 27
(n, d) = reduce(num, den)
print("The fraction", num, "/", den, "is reduced to", n, "/", d)

出力:

The fraction 3 / 27 is reduced to 1 / 9
著者: Fariba Laiq
Fariba Laiq avatar Fariba Laiq avatar

I am Fariba Laiq from Pakistan. An android app developer, technical content writer, and coding instructor. Writing has always been one of my passions. I love to learn, implement and convey my knowledge to others.

LinkedIn

関連記事 - Python Math