Làm việc với số phức

Clojure:
Làm việc với số phức

Cách thực hiện:

Clojure cung cấp hỗ trợ sẵn có cho số phức thông qua lớp tiện ích clojure.lang.Numbers. Sử dụng complex để tạo số phức và thực hiện các phép toán.

;; Tạo số phức
(def a (clojure.lang.Numbers/complex 3 4))  ; 3 + 4i
(def b (clojure.lang.Numbers/complex 1 -1)) ; 1 - i

;; Phép cộng
(+ a b) ;=> #object[clojure.lang.Numbers.Complex 0x5c6cfe9 "4 + 3i"]

;; Phép trừ
(- a b) ;=> #object[clojure.lang.Numbers.Complex 0x5e51118 "2 + 5i"]

;; Phép nhân
(* a b) ;=> #object[clojure.lang.Numbers.Complex 0x6ec3f0df "7 + i"]

;; Phép chia
(/ a b) ;=> #object[clojure.lang.Numbers.Complex 0x5db0cd10 "3.5 + 3.5i"]

;; Số phức liên hợp
(.conjugate a) ;=> #object[clojure.lang.Numbers.Complex 0x47c6e076 "3 - 4i"]

Chuyên Sâu

Số phức đã được các nhà toán học như Gauss và Euler chính thức hóa vào thế kỷ 18. Mặc dù ban đầu gặp phải sự hoài nghi, chúng kể từ đó đã trở nên quan trọng trong khoa học và kỹ thuật hiện đại. Clojure không có một kiểu số phức nguyên thủy như một số ngôn ngữ khác (ví dụ, Python), nhưng sự tương tác với Java được tích hợp có thể xử lý các thao tác cần thiết thông qua lớp clojure.lang.Numbers.

java.lang.Complex của Java là một lựa chọn mạnh mẽ hơn, cung cấp nhiều tính năng và khả năng tối ưu hóa tiềm năng. Sự tương tác với hệ thống máy chủ của Clojure giúp việc làm việc với các thư viện Java trở nên dễ dàng.

Ở bên dưới cùng, toán học số phức liên quan đến việc cộng và nhân các phần thực và ảo, với quy tắc chính là i^2 = -1. Phép chia số phức có thể phức tạp hơn, thường yêu cầu sử dụng số liên hợp để tránh chia cho số phức.

Xem Thêm