1

私のTI-84Plus(Silver Edition)では、エラーなしで次のように入力できます。(-1)^(1/3)= -1次のような式を入力すると、非実数の虚数が生成されることもわかっています。 -次のような数:(-1)^。5

さて、私の問題はC#のMathオブジェクトにあります。次のような分数を送信する{1.667, 109.667, 0.667, 120.667} OR {4/3, 111/3, 2/3, 122/3}と、次のようになります{NaN, NaN, NaN, NaN}

MathHelper有理値をチェックし、制限された入力スイッチに従って答えを返す新しいオブジェクトを作成する必要がありますか?または、私が見逃しているMathオブジェクトの機能はありますか。私は電卓でこれを行うことができます...

PS、私はまだオンラインで同様の質問に出くわしませんでした。したがって、これが重複している場合は、お知らせください;)

【私の新しい見解】
ご協力ありがとうございました!「Microsoft.Solver.Foundation.dll」を4.0ターゲットフレームワークにアップグレードし終えたところ、「Rational」オブジェクトは-1と「Indeterminate」のみを返すように見えました。そして、グーグルで(-1)^(1/2)[nonreal ans]と入力した後、nth-rootsで作業していることに気づきました。したがって、過去にC#で虚数を管理していたことが判明したため、問題は解決しました。

Any even root 2n of a negative number -m will always equal an imaginary number i. (2n√-m)=i この単純な代数の性質を忘れたなんて信じられない

4

2 に答える 2

0

このような関数を実行するには、独自の Math ヘルパーを作成する必要があります (少なくとも ではMath.Pow)。Rational編集:または、コメントに記載されているようなライブラリ を使用できます。

ドキュメントによると:

入力: x < 0 ですが、NegativeInfinity ではありません。y が整数、NegativeInfinity、または PositiveInfinity ではありません。

結果: NaN

ここでドキュメントを確認してください: http://msdn.microsoft.com/en-us/library/system.math.pow.aspx

于 2012-09-27T03:25:21.143 に答える