問題タブ [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.

0 投票する
3 に答える
1403 参照

ruby - 有理数を小数としてフォーマットする方法は?

Rational有限の 10 進数表現を持つ任意の大きな (または小さな)数値を指定すると、次のようになります。

完全な 10 進数値を文字列として取得するにはどうすればよいですか?

上記の数値の予想される出力は次のとおりです。

to_fどうやらうまくいかない:

sprintf数を指定する必要があります。

0 投票する
2 に答える
414 参照

algorithm - 2^(1/3) の連分数を非常に高い精度で求める

ここでは、表記法を使用します

ここに画像の説明を入力

数値を計算してから定義を適用することで、数値の連分数を見つけることができますが、 0 、 a 1 ... a n を見つけるには少なくとも O(n) ビットのメモリ必要です悪い。倍精度浮動小数点を使用すると、01 ... 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 の分子と分母はかなり急速に大きくなり、代わりに通常の浮動小数点数を使用すると、エラーがすぐに積み重なっていきます。

このようにして、01 ... 10000を 1 時間以内に計算できましたが、どういうわけか mathematica は 2 秒でそれを実行できます。参照用の私のコードは次のとおりです

0 投票する
1 に答える
396 参照

java - 私の合理的なコードの主な方法

それで、有理数の足し算、引き算などを含む有理テストのコードを完成させました。実際にコードを出力するメインクラスを作ろうとして立ち往生しています。

Rational クラスのコードは次のとおりです。

0 投票する
1 に答える
54 参照

python - C++11 正規表現の混乱

私はpython正規表現を持っています:

つまり、次の名前付きグループを取得します。

  • 署名済み/署名なし | 有理数/小数/整数 | 数 | 指数あり/なし

しかし、私は C++11 正規表現形式と混同していますか? 私が読んだように、サポートされている形式はほとんどありませんが、これで正規表現パーサー例外が発生します。さらに、名前付きグループが C++11 正規表現でサポートされていないことを読みました。

同等のスキームを提供する C++11 互換の正規表現を取得するには?

ご助力ありがとうございます。