問題タブ [rational-numbers]
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.
c++ - C ++での有理数の実装/分母より大きい分子
次の問題があります。C++ で有理数のクラスを作成しました。分子が分母よりも大きくない限り、クラスと演算子は正常に機能します。
たとえば、-3/12 と 4/3 =13/12 を使用しましたが、代わりに 3/4 を取得します
ヘッダー ファイル:
main.cpp
問題は operator+ メソッド、gcd 関数、または reduce にあると思います...
誰かが助けてくれることを願っています:)
ご挨拶と感謝
トーマス^^
coq - Coq QArith のゼロ除算がゼロになるのはなぜですか?
Coq の有理数の定義では、ゼロの逆数がゼロに定義されていることに気付きました。(通常、ゼロによる除算は明確に定義されていない/合法的/許可されていません。)
なぜそうなのですか?
有理数の計算で問題が発生する可能性はありますか、それとも安全ですか?
java - クラスを使用した有理数の実装は受け入れられますか?
私は Java の合理的なクラスを完成させようとしていますが、それを完成させるために見たどこでも、ほぼ同じではありません。作成された他のプログラムを使用できることは知っていますが、私が見たプログラムには、プログラムを実行するときに入力を入れる場所がありません。これは私がこれまでに持っているコードです
math - sin n は自然数 n の最大値を持つか?
正式には、すべての人にとってそのようなものは存在しますか?
javascript - Javascriptの合理性 - 分母を1に保つ
分母が 1 の Javascript の有理数を使用する必要があります。したがって、1024 などの入力値があり、それを 1024/1 として保存する必要があります。もちろん1024 / 1
、私は 1024 を返します。では、生の有理数バージョンを取得するにはどうすればよいでしょうか?
c - C 分数演算
割り当てのために行う必要がある次の作業に非常に苦労しています
。有理数を含むデータ構造を宣言します。
b. +、-、*、/ 有理数になる f'xns を記述します。
すべての f'xns は 3 つのパラメーターを渡す必要があり、それぞれがパート a で宣言した型のデータ構造を指しています。パラメータの 2 = オペランド、3 番目 = 結果。
c. データ構造へのポインターをパラメーターとして取り、数値の GCD を返す f'xn を記述します。&デニム。
d. パート c の f'xn を使用して、分数 (有理数) を最小項に減らす f'xn を記述します。分数へのポインタを渡し、分数を f'xn で変更します。
e.たとえば、ユーザーが 1/5 の形式で分数を入力できるように、入力関数と出力関数を記述します。
ユーザーはいくつでも問題を入力できる必要があり、プログラムは答えを最も低い条件で出力する必要があります。
私は正しい軌道に乗っていますか?私はACがダウンしていると思いますが、D、特にeはダウンしていません。誰かが私を案内したり、私のスクリプトを修正するのを手伝ってくれませんか?
コメント応答のおかげで typedef を削除した後に編集します。
math - 固定小数点の有理数をより狭い分母に丸める
a/b
と の 2 つの整数の比として表される (非負0 <= a < 2^m
としましょう) 有理数を取得しました0 < b < 2^n
。p
分母にビットのみを使用して、それをより小さな表現に丸めたいと思います。つまり、 、どこでのc/d
ような最大の数を見つけます。c/d <= a/b
0 < d < 2^p
例: の場合m=3, n=4, p=2
、 に4/7
切り捨て1/2
、 に5/7
切り捨て2/3
ます。
私の最初の衝動は、分母を だけ右にシフトしn-p
、1 がポップオフされた場合は 1 を追加し、分子を同じ量だけ右にシフトすることでした。これは 未満の結果を生成することが保証されてa/b
いますが、結果の最適性は保証されていません。たとえば、 に3/1
丸めます2/1
。
理想的には、除算やモジュラスなしでこれを行いたいのですが、それは実用的ではないかもしれません。m
、n
、およびp
数百に達する可能性があり、これは内側のループになるため、可能な限り非常に高速なものが必要です。
java - メソッドが印刷されないのはなぜですか?
あるクラスでメイン メソッドを作成し、別のクラスで他の多くの小さなメソッドを作成しました。それらの場所を使用してメインメソッドでそれらを呼び出し、それらを呼び出した場合にアウトプリントすることを確認しても、それらはまだアウトプリントしません。print two メソッドのみが出力を表示します。どのように修正すればよいのかわからないので、まだ多くのことを試していません。私のコードを見て、それらが機能しない理由を確認していただけますか?
更新: 受け取ったヘルプを使用して、28 を除いて、メイン メソッドのすべての行を取得することができました。残っているのは、その 1 つの出力だけです。コードを変更したので、動作が少し改善され、出力されない場合はシャットダウンされますが、出力はまだ失われています。
私の主な方法
私の他のメソッドクラス
algorithm - 与えられた 2 つの有理数の間で最も単純な有理数を見つける
有理数に関する問題を見つけました。
2 つの有理数が与えられ、タスクはそれらの間で最も単純な有理数を見つけることです。
この問題の場合、有理数の単純さは最小の分子を持つ有理数として定義できますが、このメトリックに対する他の提案、たとえばMath stack exchange への同様の質問など、解決が容易になる場合は自由です。
サンプルの入力と出力は次のようになります。
この問題に取り組む方法についてのアイデアや少なくともアドバイスはありますか? 私は苦労しています。
ありがとう
編集:
追加の観察:
- 与えられた 2 つの有理数の間には無限に多くの有理数がありますが、実際には 2 つより単純な有理数は有限に多くあります。
- 単純な解決策は、分子/分母のすべての組み合わせ (それぞれ 1 から最大の分子または分母までの範囲) を試し、それらを減らし、数値がその間にあるかどうかを確認することです。O の複雑さがどうなるかはわかりませんが、 n 2のようなものだと思います。