การทำงานกับตัวเลขซับซ้อน

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 จากไลบรารี

รายละเอียดสำคัญหนึ่งอย่าง: ระวังเรื่องความแม่นยำของจุดลอยตัว คอมพิวเตอร์ไม่สามารถแสดงบางตัวเลขได้อย่างแม่นยำ, นำไปสู่ข้อผิดพลาดจากการปัดเศษ เมื่อทำการดำเนินการซ้ำๆ กับจำนวนเชิงซ้อน, ข้อผิดพลาดเหล่านี้สามารถสะสมได้!

ดูเพิ่มเติม

สำหรับการดำน้ำลึกและการดำเนินการที่ซับซ้อนมากขึ้น, ตรวจสอบ: