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
. การหารจำนวนเชิงซ้อนอาจซับซ้อนยิ่งขึ้น โดยปกติต้องใช้สังยุคเพื่อหลีกเลี่ยงการหารด้วยจำนวนเชิงซ้อน
ดูเพิ่มเติม
- The ClojureDocs, สำหรับการอ้างอิงอย่างรวดเร็ว: https://clojuredocs.org/
- The Java API สำหรับ
java.lang.Complex
: https://docs.oracle.com/javase/8/docs/api/java/lang/Complex.html - หน้าวิกิพีเดียเกี่ยวกับจำนวนเชิงซ้อนสำหรับผู้ที่สนใจคณิตศาสตร์: https://en.wikipedia.org/wiki/Complex_number