0
私はPythonコードをいくつかの再帰を解決するために持っています。あまりにも大きな数値を返すPythonの分数
問題は、コードがばかばかしい分数(正しい)を返しますが、可能な限り小さな分数ではないことです。手動で数式を解くことができるので分かります。ここで
は私のコードです:
from __future__ import division
import sys
from fractions import Fraction
def t(n):
if n==0:
return 0
else:
return 1/(4-t(n-1))
print(Fraction(t(int(sys.argv[1]))))
あなたはpython fraction.py 2
でこのコードを実行する場合は、4月15日を持っているが、ここで私が何を得るのです必要があります。
4803839602528529/18014398509481984
私が思う数値的に正しいとする、ときに私ちょうどそれを計算する私は0.26666666666666666を得る(多分両方の分数は0からのx桁で異なっている)。
ここで問題は何ですか?
あなたは小数点以下の計算をしません。浮動小数点の計算を行い、不正確な結果から小数点を作成しています。分数で計算します。 – user2357112
ユーザが負の数(-1など)を入力した場合の処理について気になりますか? –
@TerryJanReedyいいえ私はちょうどアルゴリズム的な問題を解決していました、私は唯一のユーザーです – Seraf