問題タブ [rational-number]
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.
ruby - 有理数を小数としてフォーマットする方法は?
Rational
有限の 10 進数表現を持つ任意の大きな (または小さな)数値を指定すると、次のようになります。
完全な 10 進数値を文字列として取得するにはどうすればよいですか?
上記の数値の予想される出力は次のとおりです。
to_f
どうやらうまくいかない:
桁sprintf
数を指定する必要があります。
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 秒でそれを実行できます。参照用の私のコードは次のとおりです
java - 私の合理的なコードの主な方法
それで、有理数の足し算、引き算などを含む有理テストのコードを完成させました。実際にコードを出力するメインクラスを作ろうとして立ち往生しています。
Rational クラスのコードは次のとおりです。
python - C++11 正規表現の混乱
私はpython正規表現を持っています:
つまり、次の名前付きグループを取得します。
- 署名済み/署名なし | 有理数/小数/整数 | 数 | 指数あり/なし
しかし、私は C++11 正規表現形式と混同していますか? 私が読んだように、サポートされている形式はほとんどありませんが、これで正規表現パーサー例外が発生します。さらに、名前付きグループが C++11 正規表現でサポートされていないことを読みました。
同等のスキームを提供する C++11 互換の正規表現を取得するには?
ご助力ありがとうございます。