0

さらに処理するには、doubleの実数部と虚数部が必要ですが、それらを複素数に変換する方法がほとんどまたはまったくわかりません。どんな入力でも大歓迎です。

4

2 に答える 2

3

Javaには複素数タイプはありません。

複素数を格納/表すには、次のいずれかを行う必要があります。

  • 独自のタイプを作成する
  • 変数を使用する(つまり、Re、Im)
  • またはサードパーティのライブラリを使用する

また、doubleを複素数に「変換」する限り、doubleは明らかに複素数の虚数部または実数部のいずれかのみを表すことができます。したがって、あなたはあなたが何を意味するかについてより具体的にする必要があります。ダブルをダブルに等しい実数部と0に等しい虚数部の複素数に変換したい場合、それはかなり簡単なはずです。

独自のタイプを作成する場合は、次のようになります。

class ComplexNumber{
   public ComplexNumber(double re, double im)
   {
       _re = re;
       _im = im;
   }

   private double _re;
   public double getReal(){
      return _re;
   }
   private double _im;
   public double getImaginary(){
       return _im;
   }

   @overrides
   public boolean equals(object other){
       if(other == null)
          return false;
       ComplexNumber n = (ComplexNumber)other;
       return _re.equals(n._re) && _im.equals(n._im);
   }

   @overrides
   public boolean getHashCode(){
       return _re.getHashCode() ^ _im.getHashCode();
   }

   @overrides
   public void toString(){
       return "(" + re.toString() + "," + im.toString() + ")";
   }
}

このクラスには不変のセマンティクスがあることに注意してください(つまり、インスタンス化された後は、その内部状態を変更することはできません)。これは、複素数を表す場合に適しています。次に、静的メソッドを使用して、これらの複素数を加算/減算/乗算/除算できます。

于 2013-03-09T20:29:31.887 に答える
0

2つの座標値を使用して平面上で複素数を表すことができることをおそらく知っているので、複素数クラスを作成することをお勧めします。これにより、クラスはこれらに対して2つのdoubleを保持できます。次に、複素数を除算、乗算、減算、および加算する方法を調べ、メソッドを除算、乗算、減算、加算します。各メソッドは、複素数オブジェクトをパラメーターとして受け取ります。

于 2013-03-09T20:31:01.557 に答える