Các điều Kiện Rõ Ràng Hơn Bằng Cách Sử Dụng định Luật De Morgan ...
Có thể bạn quan tâm
Giới thiệu:
Luận đề De Morgan, hay còn gọi là định lý De Morgan, được phát biểu và chứng minh bởi nhà toán học và lô gíc học người Anh sinh trưởng tại Ấn Độ tên là Augustus De Morgan (1806-1871). Nguyên thủy, định lý này được chứng minh trong lý thuyết tập họp.
Định lý này được phát biểu và dùng lại trong lô gíc và đại số Bool như sau:
overline{A.B} = overline{A} + overline{B} overline{A+B} = overline{A} . overline{B}Từ hai mệnh đề trên cùng với bảng chân trị của phép hội (A.B) và phép nghịch đảo (overline{A}) người ta có thể chứng minh rằng mọi mệnh đề lô gíc đều có thể được biểu diễn bằng một mệnh đề mà chỉ bao gồm hai phép toán hội và phép nghịch đảo.
Tham khảo: http://vi.wikipedia.org/wiki/Lu%E1%BA%ADt_De_Morgan
Sau đây ta sẽ ứng dụng định luật De Morgan vào trong lệnh Ruby on Rails để viết rõ ràng câu lệnh điều kiện.
1. Ta có đoạn lệnh sau :
def allow_access_to_site? !(signed_out? && untrusted_ip?) endVới đoạn lệnh trên nếu không chú ý, người lập trình có thể định nghĩa sai các phép toán.
2. Trở về với De–Morgan
De–Morgan đã xây dựng hai nguyên tắc quan trọng của suy luận logic, chúng ta áp dụng trong code ruby như sau:
# One !(a && b) == !a || !b # Two !(a || b) == !a && !bVới điều kiện ở mục 1 áp dụng vào định luật 2 của De–Morgan
# Gốc !(signed_out? && untrusted_ip?) #Chuyển đổi sử dụng định luật thứ 2 # A = signed_out? # B = untrusted_ip? (! signed_out?) || (! untrusted_ip?)Với đoạn code trên mục đích của ta muốn nói rằng muốn định nghĩa rõ điều kiện kiểm tra signed_in và trusted_ip
Ta chuyển đổi đơn giản hóa hơn nữa
# Đơn giản hóa A: (! signed_out ? ) == signed_in? ( signed_in ? ) || ( !?untrusted_ip ) # Đơn giản hóa B : (! untrusted_ip?) == trusted_ip? ( signed_in ? ) || ( ? trusted_ip ) # Hủy bỏ dấu ngoặc đơn signed_in ? || trusted_ip ?Điều tôi muốn nói cuối cùng là với các mệnh đề điều kiện thì hãy viết rõ ràng
Before:
def allow_access_to_site? ! (signed_out? && untrusted_ip?) endAfter:
def allow_access_to_site? signed_in? || trusted_ip? endRef: Clearer Conditionals using De Morgan’s Laws
Post Views: 1,857Related posts:
- Rails Security (part1)
- Ruby API with Sinatra
- Look back this year (Solar calender) of SEPTENI TECHNOLOGY with Top5 articles
Từ khóa » Chứng Minh Luật đối Ngẫu De Morgan
-
Luật De Morgan – Wikipedia Tiếng Việt
-
Làm Thế Nào để Chứng Minh Luật Của De Morgan - EFERRIT.COM
-
Định Luật De Morgan Là Gì?
-
Luật Của Morgan / Toán Học - Làm Cho Mình Tốt Hơn Ngày Hôm Nay!
-
Luật Của De Morgan Là Gì? - Toán Khoa HọC Công Nghệ 2022
-
RÚT GỌN BIỂU THỨC DÙNG ĐỊNH LÝ DE MORGAN - YouTube
-
Chương 6: Chứng Minh Trong Logic Mệnh đề
-
Tập Hợp | Diễn đàn Giảng Dạy Toán Cho SV HUS
-
Luật Của De Morgan - Wikimedia Tiếng Việt
-
[PDF] BÀI 1: TẬP HỢP VÀ ĐẠI SỐ MỆNH ĐỀ - Topica
-
Định Luật đầu Tiên Của De Morgan Là Gì? Xem Xong Hiểu Luôn.
-
Lý Thuyết Và Bài Tập Toán Học Rời Rạc Chương Logic - Tài Liệu Text
-
Bài 2.1: Lý Thuyết đại Số BOOLE Và ứng Dụng - Hướng Nghiệp Việt