C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#で複素数を扱う方法:structと演算子オーバーロードによる実装

C#で複素数を扱い、表示するには、実部(real)虚部(imaginary)の2つの値を管理する必要があります。

複素数の基本

たとえば「7 + 5i」という複素数は、2つの部分で構成されています。ひとつは実部の「7」、もうひとつは虚部の「5」です。ここで虚部とは、虚数単位 i の倍数を表します。

Complex構造体の定義

複素数を表現するには、次のように Complex 構造体を定義します。

public struct Complex

この構造体の中に、実部と虚部を格納するフィールド、コンストラクタ、そして表示用のメソッドを実装していきます。

加算演算子のオーバーロード

2つの複素数を足し合わせるには、実部同士、虚部同士をそれぞれ加算します。C#では + 演算子をオーバーロードすることで、直感的な記述が可能になります。

public static Complex operator +(Complex one, Complex two) {
    return new Complex(one.real + two.real, one.imaginary + two.imaginary);
}

完全なサンプルコード

以下のコードを実行すると、C#での複素数の扱い方を確認できます。ToString() メソッドをオーバーライドすることで、複素数を見やすい形式で表示できる点にも注目してください。

using System;

public struct Complex {
    public int real;
    public int imaginary;

    // コンストラクタ:実部と虚部を初期化
    public Complex(int real, int imaginary) {
        this.real = real;
        this.imaginary = imaginary;
    }

    // + 演算子のオーバーロード:実部・虚部をそれぞれ加算
    public static Complex operator +(Complex one, Complex two) {
        return new Complex(one.real + two.real, one.imaginary + two.imaginary);
    }

    // 表示形式を「a + bi」に整える
    public override string ToString() {
        return (String.Format("{0} + {1}i", real, imaginary));
    }
}

class Demo {
    static void Main() {
        Complex val1 = new Complex(7, 1);
        Complex val2 = new Complex(2, 6);

        // 2つの複素数を加算
        Complex res = val1 + val2;

        Console.WriteLine("First: {0}", val1);
        Console.WriteLine("Second: {0}", val2);

        // 結果を表示
        Console.WriteLine("Result (Sum): {0}", res);
        Console.ReadLine();
    }
}

実行結果

First: 7 + 1i
Second: 2 + 6i
Result (Sum): 9 + 7i

補足:System.Numerics名前空間の活用

.NET Framework 4.0以降では、標準ライブラリの System.Numerics 名前空間に Complex 構造体が用意されており、double型による高精度な複素数演算や、乗算・除算・絶対値計算などもすぐに利用できます。学習目的で自作する場合を除き、実務では組み込みの System.Numerics.Complex を使うのがおすすめです。

  1. JavaScriptの数値(Number)の基本と実践サンプルコード

    JavaScriptでは、整数も小数もすべて「Number」型として扱われます。この記事では、数値変数の定義方法と、それらを使った簡単な演算の例を、動作するHTMLサンプルコードとともに紹介します。サンプルコード以下は、JavaScriptで数値を扱う基本的な例です。整数(22、99)と小数(1.523)を変数に格納し、ボタンをクリックすると画面に表示する仕組みになっています。<!DOCTYPE html> <html lang=ja> <head> <meta charset=UTF-8 /> <meta name=viewport co

  2. Pythonで複素数を扱う方法:基本の書き方とcomplex()関数の使い方を解説

    複素数とは?複素数とは、2つの実数 a と b の組み合わせで表される数であり、一般的に「a+bi」または「a+ib」という形式で書かれます。ここで i は虚数単位と呼ばれ、第2項であることを示すラベルのような役割を果たします。数学的には、虚数単位 i は次の性質を持ちます。i² = -1なお、分野によっては i の代わりに j が使われることもあります(特に電気工学などでは j が標準的です)。Pythonでの複素数の基本的な書き方Pythonでは、虚数部分に接尾辞 j を付けることで、複素数リテラルをそのまま記述できます。変数への代入は以下のように行います。>>> a =