Go:
การทำงานกับตัวเลขซับซ้อน
วิธีการ:
ใน Go จำนวนเชิงซ้อนจะถูกจัดการโดยใช้ฟังก์ชันที่สร้างขึ้นมาในภาษาโดยตรง เช่น complex
, real
, และ imag
พร้อมกับประเภท complex64
และ complex128
(แทนจำนวนเชิงซ้อนของ 64 บิต และ 128 บิต ตามลำดับ) นี่คือแนวทางเริ่มต้นอย่างรวดเร็ว:
package main
import (
"fmt"
)
func main() {
// การสร้างจำนวนเชิงซ้อน
a := complex(2, 3) // 2+3i
b := complex(1, -1) // 1-1i
// การดำเนินการทางเลข
c := a + b
fmt.Println("การบวก:", c) // ผลลัพธ์: การบวก: (3+2i)
d := a * b
fmt.Println("การคูณ:", d) // ผลลัพธ์: การคูณ: (5+1i)
// การเข้าถึงส่วนจริงและส่วนจินตภาพ
realPart := real(a)
imagPart := imag(a)
fmt.Printf("ส่วนจริง: %.1f, ส่วนจินตภาพ: %.1f\n", realPart, imagPart) // ผลลัพธ์: ส่วนจริง: 2.0, ส่วนจินตภาพ: 3.0
// สามารถคำนวณผลเสริมและขนาดได้
conjugate := complex(real(a), -imag(a)) // ดำเนินการด้วยตนเอง
fmt.Println("ผลเสริมของ a:", conjugate) // ผลลัพธ์: ผลเสริมของ a: (2-3i)
}
ตัวอย่างนี้ครอบคลุมพื้นฐาน แต่ยังมีอีกมากที่คุณสามารถทำได้กับจำนวนเชิงซ้อน รวมถึงการใช้ประโยชน์จากแพ็กเกจ math/cmplx
สำหรับการดำเนินการขั้นสูงเช่น การหาขนาด มุม และอื่นๆ อีกมากมาย
ลงลึก
แนวคิดเกี่ยวกับจำนวนเชิงซ้อนมีมาตั้งแต่ศตวรรษที่ 16 แต่ได้รับการยอมรับและการสรุปในรูปแบบที่เข้มงวดในศตวรรษที่ 19 ในการเขียนโปรแกรมคอมพิวเตอร์ จำนวนเชิงซ้อนได้กลายมาเป็นสาระสำคัญสำหรับการคำนวณที่ซับซ้อนในการคำนวณทางวิทยาศาสตร์และวิศวกรรมตั้งแต่สมัยแรก ๆ วิธีการของ Go ต่อจำนวนเชิงซ้อน โดยการทำให้มันเป็นรายการหลักโดยมีความสนับสนุนที่สร้างขึ้นภายในและการสนับสนุนจากไลบรารีมาตรฐานอย่างครอบคลุมผ่านแพ็กเกจ math/cmplx
นั้นโดดเด่นเมื่อเปรียบเทียบกับภาษาโปรแกรมอื่น ๆ การตัดสินใจด้านการออกแบบนี้สะท้อนถึงการเน้นความเรียบง่ายและประสิทธิภาพของ Go
อย่างไรก็ตาม ควรทราบว่า การทำงานกับจำนวนเชิงซ้อนใน Go แม้จะทรงพลัง แต่อาจไม่เสมอไปเป็นวิธีที่ดีที่สุดสำหรับทุกแอปพลิเคชั่น โดยเฉพาะอย่างยิ่งที่ต้องการคณิตศาสตร์เชิงสัญลักษณ์หรือการคำนวณที่มีความแม่นยำสูง ภาษาและสภาพแวดล้อมที่เชี่ยวชาญในการคำนวณทางวิทยาศาสตร์ เช่น Python ที่มีไลบรารีเช่น NumPy และ SciPy หรือซอฟต์แวร์เช่น MATLAB อาจมอบความยืดหยุ่นและชุดคุณลักษณะที่กว้างขึ้นสำหรับการใช้งานที่เฉพาะเจาะจงได้
อย่างไรก็ตาม สำหรับการเขียนโปรแกรมระบบและบริบทที่การรวมการคำนวณจำนวนเชิงซ้อนเข้ากับแอปพลิเคชั่นที่มีความไวต่อประสิทธิภาพเป็นสิ่งสำคัญ Go ให้การสนับสนุนจำนวนเชิงซ้อนแบบพื้นฐาน ซึ่งเป็นตัวเลือกที่มีประสิทธิภาพอย่างไม่มีใครเทียบได้