問題タブ [continued-fractions]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
scheme - スキームで仮パラメータが値として使用されている場合、プロシージャを実パラメータとして指定する方法がわかりませんか?
SICP演習1.37で
SICP のセクション 1.3.3セクションの最後 (1.3.4 の直前) まで下にスクロールして、演習 [セクションの 3 番目の演習] を見つけます。
問題に従って、 cont-frac を次のように定義しました
ソリューション リンクによると、上記のコードは一貫しているようです。(lamda (i) 1.0)
手順であるソリューションの (a) の部分で、n と d が のように置換されると、ソリューションの 2 番目の部分で問題が発生します。
これを の手順で代入するとどうなるか理解できませんcont-frac
。私が試したとき、間違ったタイプの引数というエラーがあります
編集 1
ソリューション全体を追加しました。問題は解決しますが、セクションの本質を捉えていません。これは演習 1.37、1.38、1.39 の解答です。プログラムは、以下のリンクのソリューションが行う一般的な方法として手順を使用しません1.37のソリューション、1.38のソリューション、1.39のソリューション
以下の手順phi
およびのプログラムでは、k は
手順のe-2-val
連分数のステップ数です。k はラジアン単位の角度です (正確な値を得るには、ステップ数は 1000 です)。tan
matlab - 連分数の Matlab コード
電子透かしに連分数を使いたいです。連分数の概念を使用して数値を評価する必要があります。連分数の matlab コードを提供できる人はいますか?
algorithm - 2^(1/3) の連分数を非常に高い精度で求める
ここでは、表記法を使用します
数値を計算してから定義を適用することで、数値の連分数を見つけることができますが、 0 、 a 1 ... a n を見つけるには少なくとも O(n) ビットのメモリが必要です。悪い。倍精度浮動小数点を使用すると、0、1 ... 19しか検出できません。
別の方法として、a,b,c が有理数である場合、1/(a+b*2 1/3 +c*2 2/3 ) = x +y*2 1/3 +z*2 2/3、つまり
したがって、ブースト有理ライブラリを使用して x、y、および z を絶対精度で表現すると、2 1/3 の倍精度のみを使用して正確に floor(x + y*2 1/3 + z*2 2/3 )を取得できます。 2 2/3は、真の値の 1/2 以内にあればよいためです。残念ながら、x、y、および z の分子と分母はかなり急速に大きくなり、代わりに通常の浮動小数点数を使用すると、エラーがすぐに積み重なっていきます。
このようにして、0、1 ... 10000を 1 時間以内に計算できましたが、どういうわけか mathematica は 2 秒でそれを実行できます。参照用の私のコードは次のとおりです
python - Juliaの任意精度演算
これはちょっと尋ねられましたが、この方法ではありません。n の平方根 (1 <= n <= 10000) の連分数を見つける小さな Python プログラムがあります。
私はジュリアでこれをやろうとしてきましたが、方法がわかりません。主な理由は、無理数を扱うためです (x が完全平方でない場合、sqrt(x) は無理数です。たとえば、sqrt(2) = 1.414213...)。だから私は合理的なクラスを使うことができないと思います。
ここhttps://docs.julialang.org/en/latest/manual/integers-and-floating-point-numbers/#Arbitrary-Precision-Arithmetic-1には、Julia が BigFloats を使用して任意精度の演算を実行できることが記載されています。しかし、それらは十分に正確ではないようです。
また、Python で PyCall と Decimals パッケージ (Julia から) を使用しようとしましたが、奇妙なエラーが発生しました (役立つ場合は投稿できます)。
これが動作する私のPythonプログラムです。私の質問は、ジュリアでこれを行う方法です。
ご覧のとおり、正確な平方根を計算する方法と、数値の整数部分を取得する方法が必要です。そして、それはすべて、非常に多くの精度を除けば、本当にすべてです!
みんな、私は答えのための小さな原稿を持ちたくなかったので、ジュリアコードを投稿しませんでした! しかし、ここにあります。以下のコメントで述べたように、setprecision 関数を使用して精度を高い値に設定したところ、機能しました。経験的に値 711 を得ました。
とにかく、user2357112はそれを解決しました、どうもありがとう。