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 を使うのがおすすめです。
-
JavaScriptの数値(Number)の基本と実践サンプルコード
JavaScriptでは、整数も小数もすべて「Number」型として扱われます。この記事では、数値変数の定義方法と、それらを使った簡単な演算の例を、動作するHTMLサンプルコードとともに紹介します。サンプルコード以下は、JavaScriptで数値を扱う基本的な例です。整数(22、99)と小数(1.523)を変数に格納し、ボタンをクリックすると画面に表示する仕組みになっています。<!DOCTYPE html> <html lang=ja> <head> <meta charset=UTF-8 /> <meta name=viewport co
-
Pythonで複素数を扱う方法:基本の書き方とcomplex()関数の使い方を解説
複素数とは?複素数とは、2つの実数 a と b の組み合わせで表される数であり、一般的に「a+bi」または「a+ib」という形式で書かれます。ここで i は虚数単位と呼ばれ、第2項であることを示すラベルのような役割を果たします。数学的には、虚数単位 i は次の性質を持ちます。i² = -1なお、分野によっては i の代わりに j が使われることもあります(特に電気工学などでは j が標準的です)。Pythonでの複素数の基本的な書き方Pythonでは、虚数部分に接尾辞 j を付けることで、複素数リテラルをそのまま記述できます。変数への代入は以下のように行います。>>> a =