Nếu bạn nhớ lại thời đi học, bạn có thể nhớ việc học về Bàn chân lý . Chúng có vẻ nhàm chán, nhưng chúng là cơ sở cho logic và (một số người sẽ tranh luận) tất cả máy tính ...
Vấn đề
Nhiệm vụ của bạn, nếu bạn chọn chấp nhận nó là viết một chương trình, hàm hoặc widget mã có thể xuất ra một bảng chân lý được đưa vào.
Đầu vào
Đầu vào sẽ là một chuỗi (như cấu trúc dữ liệu) chứa câu lệnh logic để biến Bảng chân lý thành. Ví dụ:
p ∧ q
Điều này có nghĩa p and q
(kết hợp logic) và sẽ xuất ra:
p q p ∧ q
T T T
T F F
F T F
F F F
Lưu ý khoảng cách: Mục của cột nằm ở giữa tiêu đề
Nhân vật
Điểm qua các ký tự, không phải byte Các ký tự so sánh logic là đặc biệt và không phải lúc nào cũng giống như chúng. Sử dụng các ký tự sau:
Kết hợp logic (AND): ∧
U + 2227
Rối loạn logic (OR): ∨
U + 2228
Phủ định logic (KHÔNG) ~
hoặc ¬
U + 7e và U + ac tương ứng
Tiền thưởng
Tất cả những phần thưởng này là tùy chọn, nhưng sẽ đánh bật điểm số của bạn. Chọn bất kỳ.
Phủ định logic
Phủ định logic là một toán tử đơn nguyên trong các bảng chân lý. Nó tương đương với !
hầu hết các ngôn ngữ dựa trên C. Nó làm cho false
=> true
và ngược lại. Nó được ký hiệu bằng một ¬
hoặc ~
(bạn phải hỗ trợ cả hai). Hỗ trợ này sẽ đánh bật 10% số điểm của bạn. Tuy nhiên, bạn phải thêm một cột bổ sung để hiển thị kết quả của nó: Ví dụ:
~p ∧ q
sẽ xuất ra:
p ~p q ~p ∧ q
T F T F
T F F F
F T T T
F T F F
In đẹp
Các ký hiệu bảng bình thường là nhàm chán. Hãy làm cho nó đẹp lên! Định dạng in đẹp như sau cho p ∧ q
như sau:
+---+---+-------+
| p | q | p ∧ q |
+---+---+-------+
| T | T | T |
+---+---+-------+
| T | F | F |
+---+---+-------+
| F | T | F |
+---+---+-------+
| F | F | F |
+---+---+-------+
Chi tiết đặc biệt cho in ấn đẹp:
- Có 1 khoảng trống trong mỗi ô
- Giá trị ô vẫn ở giữa
Nếu bạn in đẹp các bảng của mình, từ mã của bạn và sau đó nhân với 0,6. Sử dụng chức năng này cho phần thưởng này:
score = 0.6 * code
Ví dụ
p ∧ q
:
p q p ∧ q
T T T
T F F
F T F
F F F
p ∨ q
:
p q p ∨ q
T T T
T F T
F T T
F F F
~p ∧ q
:
p ~p q ~p ∧ q
T F T F
T F F F
F T T T
F T F F
~p ∨ q
:
p ~p q ~p ∧ q
T F T T
T F F F
F T T T
F T F T
Quy tắc
- Áp dụng sơ hở tiêu chuẩn
- Không có tài nguyên bên ngoài
- Nếu bạn sẽ phá vỡ các quy tắc, hãy khéo léo;)
Mã ngắn nhất (tính theo ký tự) sẽ thắng. Chúc may mắn!
score = 0.6 * (code - 15)
=.6 * code - 9
p
q
và r
trong một bảng sự thật;)
p
vàq
. Trừ khi họ luôn có những tên này, bạn có thể muốn hiển thị một vài tùy chọn khác nhau trong các ví dụ thử nghiệm. Có phải họ luôn luôn là một lá thư?