C#:
การทำงานกับตัวเลขซับซ้อน
วิธีการ:
C# มีโครงสร้าง System.Numerics.Complex
ในตัวสำหรับการประมวลผลจำนวนเชิงซ้อน นี่คือการแนะนำอย่างรวดเร็ว:
using System;
using System.Numerics;
class ComplexNumberExample
{
static void Main()
{
// สร้างจำนวนเชิงซ้อน
Complex c1 = new Complex(4, 5); // 4 + 5i
Complex c2 = Complex.FromPolarCoordinates(1, Math.PI / 4); // 1 * e^(iπ/4)
// การดำเนินการพื้นฐาน
Complex sum = c1 + c2;
Complex difference = c1 - c2;
Complex product = c1 * c2;
Complex quotient = c1 / c2;
// แสดงผลลัพธ์
Console.WriteLine($"ผลรวม: {sum}");
Console.WriteLine($"ผลต่าง: {difference}");
Console.WriteLine($"ผลคูณ: {product}");
Console.WriteLine($"ผลหาร: {quotient}");
Console.WriteLine($"ขนาดของ c1: {c1.Magnitude}");
Console.WriteLine($"เฟสของ c1: {c1.Phase}");
}
}
และผลลัพธ์ที่ได้จะเป็น:
ผลรวม: (4.70710678118655, 5.70710678118655)
ผลต่าง: (3.29289321881345, 4.29289321881345)
ผลคูณ: (-1.00000000000001, 9)
ผลหาร: (0.6, 0.8)
ขนาดของ c1: 6.40312423743285
เฟสของ c1: 0.896055384571344
ลงลึก:
จำนวนเชิงซ้อน ประกอบด้วยส่วนจริงและจินตภาพ (บ่อยครั้งที่ใช้เครื่องหมาย a + bi) มีมาตั้งแต่ศตวรรษที่ 17 นักคณิตศาสตร์ชาวอิตาเลียน Gerolamo Cardano ได้รับเครดิตในการพัฒนาในช่วงแรก ๆ ในการเขียนโปรแกรม การจัดการกับจำนวนเชิงซ้อนหมายถึงการเข้าใจและจัดการกับสองส่วนนี้
ถึงแม้ C#’s System.Numerics.Complex
จะเข้มแข็งและรวมเข้ากับภาษา แต่ภาษาอื่น ๆ เช่น Python ก็เสนอฟังก์ชันลักษณะเดียวกันกับ cmath
หรือไลบรารีของบุคคลที่สาม และหากคุณทำงานในเวอร์ชัน C# ที่เก่ากว่าหรือเวอร์ชัน .NET ที่ไม่รองรับ System.Numerics
คุณอาจต้องสร้างคลาสจำนวนเชิงซ้อนของคุณเองหรือค้นหาไลบรารี
ภายในนั้น การดำเนินการบนจำนวนเชิงซ้อนใช้เลขทศนิยมลอยซึ่งสามารถนำไปสู่ข้อผิดพลาดในการปัดเศษ ดังนั้น เมื่อนำไปใช้กับอัลกอริทึมที่ใช้จำนวนเชิงซ้อนอย่างกว้างขวาง สิ่งสำคัญคือต้องจำไว้ถึงสิ่งนี้และพิจารณาผลกระทบต่อความแม่นยำและความถูกต้อง
ดูเพิ่มเติม
- C# อ้างอิงสำหรับ
System.Numerics.Complex
: https://learn.microsoft.com/en-us/dotnet/api/system.numerics.complex - การศึกษาลึกเกี่ยวกับคณิตศาสตร์ของจำนวนเชิงซ้อน: https://mathworld.wolfram.com/ComplexNumber.html
- สำหรับการใช้งานอื่น ๆ และไลบรารี ตรวจสอบ Math.NET Numerics: https://numerics.mathdotnet.com/