Java:
การทำงานกับตัวเลขซับซ้อน
วิธีการ:
Java ไม่มีการสนับสนุนภายในตัวสำหรับจำนวนเชิงซ้อน แต่เราสามารถสร้างคลาสของเราเองหรือใช้ไลบรารีได้ นี่คือตัวอย่างเร็วๆ ของวิธีการสร้างคลาส ComplexNumber
ที่ง่ายและใช้งานมัน:
public class ComplexNumber {
private double real;
private double imaginary;
public ComplexNumber(double real, double imaginary) {
this.real = real;
this.imaginary = imaginary;
}
public ComplexNumber add(ComplexNumber other) {
return new ComplexNumber(this.real + other.real, this.imaginary + other.imaginary);
}
// ToString เพื่อแสดงจำนวนเชิงซ้อนในรูปแบบ a + bi
@Override
public String toString() {
return String.format("%.1f + %.1fi", real, imaginary);
}
// ทดสอบอย่างเร็ว
public static void main(String[] args) {
ComplexNumber c1 = new ComplexNumber(2, 3);
ComplexNumber c2 = new ComplexNumber(1, 4);
System.out.println("ผลรวม: " + c1.add(c2));
}
}
ผลลัพธ์ตัวอย่างสำหรับวิธี main จะเป็น:
ผลรวม: 3.0 + 7.0i
ทำความเข้าใจเพิ่มเติม
ก่อนที่จะมีภาษาการโปรแกรมระดับสูงเช่น Java, นักโปรแกรมทำงานโดยตรงกับไลบรารีคณิตศาสตร์ในภาษาเช่น Fortran หรือ C เพื่อจัดการกับการดำเนินการที่ซับซ้อน แนวคิดนี้ย้อนกลับไปถึงศตวรรษที่ 16, เครดิตทางคณิตศาสตร์เช่น Gerolamo Cardano และ Rafael Bombelli
ใน Java, java.lang.Math
เป็นที่พึ่งพอใจสำหรับการทำงานพื้นฐาน แต่ไม่รวมจำนวนเชิงซ้อน, อาจเป็นเพราะไม่ใช่ทุกโปรแกรมเมอร์ที่ใช้มัน ทางเลือก? ใช้ไลบรารี Apache Commons Math มีคลาส Complex
ที่มาพร้อมกับวิธีการสำหรับการดำเนินการ นี่คือเหตุผลที่การสร้างของคุณเองนั้นดีที่สุด: มีน้ำหนักเบา, ปรับแต่งตามความต้องการของคุณเอง, และไม่มี overhead จากไลบรารี
รายละเอียดสำคัญหนึ่งอย่าง: ระวังเรื่องความแม่นยำของจุดลอยตัว คอมพิวเตอร์ไม่สามารถแสดงบางตัวเลขได้อย่างแม่นยำ, นำไปสู่ข้อผิดพลาดจากการปัดเศษ เมื่อทำการดำเนินการซ้ำๆ กับจำนวนเชิงซ้อน, ข้อผิดพลาดเหล่านี้สามารถสะสมได้!
ดูเพิ่มเติม
สำหรับการดำน้ำลึกและการดำเนินการที่ซับซ้อนมากขึ้น, ตรวจสอบ:
- Apache Commons Math
- คลาส Complex ของ JScience
- บทเรียนของ Oracle เกี่ยวกับ การคำนวณจุดลอยตัว