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

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

วิธีการ:

Clojure ให้การสนับสนุนจำนวนเชิงซ้อนอย่างในตัวผ่านคลาสเครื่องมือ clojure.lang.Numbers ใช้ complex เพื่อสร้างจำนวนเชิงซ้อนและดำเนินการคำนวณ

;; การสร้างจำนวนเชิงซ้อน
(def a (clojure.lang.Numbers/complex 3 4))  ; 3 + 4i
(def b (clojure.lang.Numbers/complex 1 -1)) ; 1 - i

;; การบวก
(+ a b) ;=> #object[clojure.lang.Numbers.Complex 0x5c6cfe9 "4 + 3i"]

;; การลบ
(- a b) ;=> #object[clojure.lang.Numbers.Complex 0x5e51118 "2 + 5i"]

;; การคูณ
(* a b) ;=> #object[clojure.lang.Numbers.Complex 0x6ec3f0df "7 + i"]

;; การหาร
(/ a b) ;=> #object[clojure.lang.Numbers.Complex 0x5db0cd10 "3.5 + 3.5i"]

;; สังยุค
(.conjugate a) ;=> #object[clojure.lang.Numbers.Complex 0x47c6e076 "3 - 4i"]

ลงลึก

จำนวนเชิงซ้อนได้รับการสร้างขึ้นอย่างเป็นทางการโดยนักคณิตศาสตร์อย่างเกาส์และออยเลอร์ในศตวรรษที่ 18 แม้ว่าในตอนแรกจะถูกสงสัย แต่ต่อมาก็กลายเป็นส่วนสำคัญในวิทยาศาสตร์และวิศวกรรมสมัยใหม่ Clojure ไม่มีชนิดข้อมูลจำนวนเชิงซ้อนเหมือนบางภาษา (เช่น Python) แต่การใช้งาน Java ร่วมทำให้สามารถจัดการการดำเนินการที่จำเป็นผ่านคลาส clojure.lang.Numbers ได้

java.lang.Complex ของ Java เป็นทางเลือกที่แข็งแกร่ง ให้คุณสมบัติเพิ่มเติมและการปรับให้เหมาะสมที่เป็นไปได้ Clojure’s การทำงานร่วมกับโฮสต์ทำให้การทำงานกับไลบรารี Java เป็นเรื่องง่าย

ภายใต้ฝาครอบ การคำนวณจำนวนเชิงซ้อนได้จากการบวกและคูณส่วนจริงและจินตภาพ ด้วยกฎหลักที่ว่า i^2 = -1. การหารจำนวนเชิงซ้อนอาจซับซ้อนยิ่งขึ้น โดยปกติต้องใช้สังยุคเพื่อหลีกเลี่ยงการหารด้วยจำนวนเชิงซ้อน

ดูเพิ่มเติม