浮動小数点のリストを取得し、そのリストのgcdを計算する関数が必要です。例えば浮動小数点リストのgcd - 小数からの不正な出力
は、私はそれがないのですが、出力が1/6.0
ことを期待入力[1/2.0, 1/3.0]
を与えられました。 5.55111512313e-17
、つまり0が出力されます。これは私のコードです
def gcd(L):
return reduce(fractions.gcd, L)
print gcd([1/2.0, 1/3.0])
ここに間違いがありますか?私はそれを修正する方法はありますか?
1/3.0に最も近いIEEE 754 64ビットバイナリフロートは0.333333333333333314829616256247390992939472198486328125です。 floatを最初に経由することなく、入力を1/3.0を正確に表す分数インスタンスとして入力する必要があるかもしれません。 –
@SergeBallestaよく定義されているように、すべての入力の要素である最大の数です。 OPが必要とするものではありません。 –