reduce関数を使用して有理数の積を見つけるPythonプログラム
有理数のリストがあるとします。削減機能を使用して製品を見つける必要があります。 reduce()関数は、左から右へのオブジェクトのリストに累積的に2つの引数を持つ関数を適用します。
したがって、入力が分数=[(5,3)、(2,8)、(6,9)、(5,12)、(7,2)]のような場合、出力は(175、432)になります。 )5/3 * 2/8 * 6/9 * 5/12 * 7/2 =(5 * 2 * 6 * 5 * 7)/(3 * 8 * 9 * 12 * 2)=2100/5184 =175/432。
これを解決するには、次の手順に従います-
- fracs:=新しいリスト
- fracの各fについて、
- fracの最後に(分子、分母)ペアfから新しい分数オブジェクトを挿入します
- t:=reduce(関数func(x、y)を持つfracsはx * yを返します)
- (tの分子、tの分母)のペアを返す
例
理解を深めるために、次の実装を見てみましょう
from fractions import Fraction from functools import reduce def solve(frac): fracs = [] for f in frac: fracs.append(Fraction(*f)) t = reduce(lambda x, y: x*y, fracs) return t.numerator, t.denominator frac = [(5,3),(2,8),(6,9),(5,12),(7,2)] print(solve(frac))
入力
[(5,3),(2,8),(6,9),(5,12),(7,2)]
出力
(175, 432)
-
非再帰関数を使用して数値のGCDを見つけるCプログラム
問題 非再帰関数を使用して、指定された2つの数値の最大公約数(GCD)を見つけます。 解決策 非再帰関数を使用して、指定された2つの数値の最大公約数(GCD)を見つける方法を以下に説明します。 アルゴリズム 非再帰関数を使用して、指定された2つの数値の最大公約数(GCD)を見つけるには、以下のアルゴリズムを参照してください。 ステップ1 −開始 ステップ2 −整数aとbを読み取ります ステップ3 −関数G =GCD(a、b)ステップ6を呼び出します ステップ4 −G値を出力 ステップ5 −停止 ステップ6 −呼び出された関数:GCD(a、b) a. Initialize th
-
再帰関数を使用して数値のGCDを見つけるCプログラム
問題 Cプログラミング言語の再帰関数を使用して、指定された2つの数値の最大公約数(GCD)を見つけます。 解決策 再帰関数を使用して、指定された2つの数値の最大公約数(GCD)を見つけるための解決策は、次のとおりです- アルゴリズム 再帰関数を使用して、指定された2つの数値の最大公約数(GCD)を見つけるには、以下のアルゴリズムを参照してください。 ステップ1 −再帰関数を定義します。 ステップ2 −2つの整数aとbを読み取ります。 ステップ3 −再帰関数を呼び出します。 a. if i>j b. then return the function with parameter