質問

私はfibonaciシリーズを見つけるためビネー式や再帰式を適用する場合は、

は、結果の不一致があります。なぜ?

基本的に私は学生ですし、それは、フィボナッチ数列を実装するために私たちの割り当てです。だから私はこのような状況に出くわした実験をしながらます。

事前に感謝します。

役に立ちましたか?

解決

フィボナッチ数は、整数演算を使用して生成されます。ビネー式は浮動小数点演算を使用します。すべての実数を正確に表現することができないので、浮動小数点演算は、常にこれらの小さな不正確さを持つことになります。

具体的には、SQL Serverの8バイトのfloatが唯一持っているA 15-桁の仮数する。これはは15進ポイントよりも任意のより正確にすることはできません。偶然ではなく、あなたが見ているエラーは、15桁で発生します。私は、彼らがfloatの精度限界の範囲内であるため、70以下の数値は、正確であることを推測をハザードでしょう。

言い換えれば、この動作は仕様です。そこには、浮動小数点演算を実現することができ精度には限界があり、そしてあなたはそれをヒットしました。それを越えて行くためには、あなたは、任意精度数学ライブラリを使用する必要があるだろう、と私は(それは必ずしも彼らが存在しないという意味ではありませんが)SQL Server環境内で使用可能な任意の認識していませんよ。

P.S。再帰が特にのデータベース内に、フィボナッチ数を生成する非常に非効率的な方法です。これは学術的な運動よりも多くの場合、私は反復解法への切り替えをお勧めします。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top