Hmm, phải giải hết những bài toán dạng này một cách triệt để bằng Logic Toán học
.. Dùng định luật De Moorgan múc luôn
.. hehehe...Sau đây là những câu hỏi:
1. Bạn phải nói một câu, nếu nói đúng thì sẽ bị chặt đầu còn sai thì sẽ bị treo cổ!
2. Bạn đi đến 1 ngã ba, có 2 con đường để đi đến A và B, mỗi con đường có 1 người chỉ đường, một người nói thật và 1 người nói dối, không biết người nào nói thật người nào nói dối và có một điều là họ kô biết nhau. Giờ phải hỏi mỗi người một câu để tìm đường đến A (tổng cộng 2 câu).
3. Bạn đi đến 1 ngã ba, có 2 con đường để đi đến A và B, mỗi con đường có 1 người chỉ đường, một người nói thật và 1 người nói dối, không biết người nào nói thật người nào nói dối. Giờ phải hỏi 1 câu để tìm đường đến A.
4. Có 2 ngôi làng: một làng thì mọi người trong làng luôn nói thật và ngược lại, dân của 2 làng này lại hay qua lại với nhau. Giả sử bạn đang đứng trong 1 làng, giờ bạn hãy hỏi 1 câu với 1 người dân bất kỳ đang ở trong làng đó để xác định đây là làng nói thiệt hay nói dối!
5. Bạn đi đến 1 ngã ba, có 2 con đường để đi đến A và B, có 1 người chỉ đường đứng ở đó, người này có thể là 1 người luôn nói thật hoặc là 1 người luôn nói dối. Giờ phải hỏi 1 câu để tìm đường đến A.
Luật:
- Chỉ được đặt một câu hỏi đúng/sai
- Câu trả lời nếu có cũng chỉ là đúng/sai
Ký hiệu:
! : NOT logic
& : AND logic
| : OR logic
^ : XOR logic
~ : Biến đổi tương đương
=> : Quan hệ "Suy ra" ~ "IF.. THEN", quên mất thuật ngữ chuyên ngành rồi
...Động não đi anh em!!!!
Tạm thời giải bài 1 (dễ nhất... hehe)
1. "Tao sẽ bị treo cổ!":
Xem các mệnh đề sau:
- A: câu nói của bạn mang giá trị đúng
- B: bạn sẽ bị treo cổ.
- C: bạn sẽ bị chặt đầu.
Từ đề bài ta có những dữ kiện gì:
a. Nếu nói đúng, bạn sẽ bị chặt đầu: A => C ~ !(A & !C) ~ !A | C
b. Nếu bạn nói sai, bạn sẽ bị treo cổ: !A => B ~ !(!A & !B) ~ A | B
c. Bạn chỉ có thể bị chặt đầu hoặc treo cổ: !(B & C) ~ !B | !C
=> Do đó có luật: Mệnh đề sau phải mang giá trị đúng: S = (!A | C) & (A | B) & (!B | !C)
Để đươc sống sót, chúng ta phải làm sao phá vỡ qui luật đã đưa ra, tức là làm sao để S sai, phát biểu của chúng ta chính là đưa vào hệ thống trên một mệnh đề nữa để làm cho nó bị vỡ ra... hehhee...
Lập bảng chân trị sẽ thấy:
A 1 1 1 1 0 0 0 0
B 1 1 0 0 1 1 0 0
C 1 0 1 0 1 0 1 0
S 0 0 1 0 0 1 0 0
Trích ra "những con đường sống"
...A 1 0 1 0 1 0
B 1 1 0 0 1 0
C 1 1 0 0 0 1
S 0 0 0 0 0 0
Hehe, xác suất để sống sót rất cao, ngu lắm mới rơi vào 2 trường hợp cái S đúng
.. Vậy ta sẽ nói gì?1. B=1 & C=1: "Tui sẽ bị *Chặt đầu* và *Treo cổ*"
2. B=0 & C=0: "Tui sẽ kô bị *Chặt đầu* và kô bị *Treo cổ*"
3. A=1 & B=1 & C=0: "Tui nói đúng và "Tui sẽ bị *Treo cổ* và Tui kô bị *Chặt đầu*" ~ "Tui sẽ bị *Treo cổ*"
4. A=0 & B=0 & C=1: "Tui nói sai và "Tui kô bị *Treo cổ* và Tui sẽ bị *Chặt đầu*" ~ "Tui kô bị *Chặt đầu*"
5. Kô phải mệnh đề : "Trời hôm nay đẹp quá!"
.. Nhưng nhớ là đừng có nói: "Invisible giỏi quá!"... Bị chặt đầu liền á 
...Hè hè, làm tiếp cái câu thứ 2, câu này quá đơn giản
...2. "1 + 1 = 2 phải kô?":
Đơn giản quá, có đến 2 câu, chỉ cần 1 câu đầu để xác định ai giả ai thật (đưa ra một mệnh đề mà mình biết chắc là đúng và chờ câu trả lời), câu sau thì xác định tiếp hướng nào là hướng đi đến A...
1. Hỏi đại một trong 2 người: "Hai con đường này đều đi đến A?" -> Xác định được bé nào là "xạo sự" hay là "thật"...
2. Xác định bé nào là bé nào rồi thì hỏi tiếp xem đường đến A..
3. "Thằng kia sẽ nói đường này là đến A?"...
4. "Đây có phải là làng của anh kô?" - (Mèo Rù)
5. "Anh sẽ trả lời "Đúng" nếu tôi hỏi *Đường này là đường đến A?*?"...
Để gần một tuần rồi, coi như chưa ai giải ra câu 5 trừ bé Bihax (con gái *Chăn Nuôi Trồng Trọt* của BK đó nha!!!)
... Mặc dù câu trả lời này theo Lạc Thuỷ Anh là hông có tính *người*, lộn
, ý nói là câu đó nó "Toán" quá... Ừh, đã Toán thì cho Toán luôn
..."Mày là người nói thiệt" XOR "Đường bên trái là đường đến A"
...Hmm, hù chút vậy thôi... Invisible thấy 3 câu cuối đều có một một cách giải như nhau, tất cả đều liên quan đến một thằng chuyên nói xạo và một thằng chuyên nói dối, lộn
, chuyên nói thiệt... và một vấn đề cần biết...OK, bây giờ giả sử C là một mệnh đề bất kỳ mình mà mình hỏi với một thằng bất kỳ:
- Gọi f(clause) là kết quả *Thằng nói thiệt trả lời* cho cái *clause*.
- Gọi F(clause) là kết quả *Thằng nói xạo trả lời* cho cái *clause*.
Với f, F là 2 phép biến đổi, coi như là 1 function đi cho dễ hiểu...
Do đó ta có:
1. Nếu clause là P = "Mày là thằng nói thiệt" thì P mang giá trị *Đúng* nếu xuất hiện *trực tiếp* trong f(clause) và P mang giá trị *Sai* nếu nó xuất hiện *trực tiếp* trong F(clause).
2. Nếu clause là *khác* P, giả sử là C. Khi đó:
Hỏi thằng nói thiệt mệnh đề C có đúng hay kô? Nó trả lời: f(C) = C
=> Tức là nó luôn trả lời theo giá trị của mệnh đề C
Hỏi thằng nói xạo mệnh đề C có đúng hay kô? Nó trả lời: F(C) = !C
=> Tức là nó luôn trả lời bằng cách phủ định giá trị của mệnh đề C
Vậy giả sử ta muốn biết một giá trị của *clause* có đúng hay không thì phải làm sao *nếu* ta chưa xác định được ta đang hỏi thằng nào? Chỉ có một cách, đó phải làm sao để cả 2 thằng, luôn *cùng* trả lời *Đúng* hoặc *Sai* cho câu hỏi của mình đưa ra và dĩ nhiên sau đó *phải* xác định được giá trị của C khi biết câu trả lời. Tức là phải làm một loạt các biến đổi T1, T2... Tn *tương đương* (khó giải thích quá
) *trên* 2 hàm f(clause) và F(clause) sao cho kết quả cuối cùng là *giống nhau* và *xác định được* giá trị mệnh đề cần biết.Cụ thể, vài biến đổi sau là *equivalent* & *resolvable*:
- T1: f(f(C) == F(F(C)) == C (confirm)
- T2: F(f(C) == f(F(C)) == !C (inverse)
Sử dụng mệnh đề P:
- T3: f(P ^ C) == F(P ^ C) == !C
- T4: f((P & C) | (!P & !C)) == F((P & C) | (!P & !C)) == C (Bihax làm nè, anh tổng quát hóa
..)... (còn rất nhiều, kô liệt kê ra hết được
)Giải thích T4:
+ P xuất hiện trực tiếp trong f thì P = *Đúng*, do đó VT = f((*Đúng* & C) | (*Sai* & !C)) = f(C) = C.
+ P xuất hiện trực tiếp trong F thì P = *Sai*, do đó VP = F((*Sai* & C) | (*Đúng* & !C)) = F(!C) = C.
Ghi chú: Bên ngoài cùng của phép biến đổi phải sử dụng một *mệnh đề đơn* của f hoặc F:
- Tức là chỉ f(***) hoặc F(***), với *** là bất cứ thứ gì.
- Và kô được là *mệnh đề ghép*. Ví dụ: "f(***) | f(***)", hoặc "F(***) & F(***) | f(***)"...
Lý do là theo định nghĩa ban đầu: Với một câu hỏi chứa mệnh đề C, f(C) là câu trả lời của *Thằng nói thiệt* và F(C) là câu trả lời của *Thằng nói xạo*, kô thể có trường hợp nó trả lời "ghép" được.
Áp dụng vào từng câu hỏi:
- Câu 3, 5: C = Đường bên phải đến A.
- Câu 4: C = Đây là làng nói thiệt.
(C là mệnh đề ta cần xác định đúng sai)
Okie, giờ ứng dụng các phép biến đổi tương đương ở trên vào câu hỏi:
- Câu 3, 5: T1: Nếu tao hỏi mày "Đường bên phải tới A phải kô" thì mày trả lời là gì?
=> Xem T1: Kết quả nó trả lời là kết quả của mệnh đề C.
- Câu 3: T2: Thằng kia sẽ nói "Đường bên phải tới A"?
=> Xem T2: Kết quả nó trả lời là phủ định mệnh đề C.
- Câu 5: T4: “Anh nói thật và đường bên phải là đuờng tới A” hoặc “Anh nói dối và đường bên phải là đuờng B”?
=> Xem T4: Kết quả trả lời là kết quả của mệnh đề C= "Đường bên phải là đuờng tới A"
- Câu 4: T1: Nếu tao hỏi mày "Đây là làng nói thiệt?" thì mày trả lời là gì?
- Câu 4: T1: Nếu tao hỏi người cùng làng với mày "Đây là làng nói thiệt?" thì nó trả lời là gì?
- Câu 4: T2: Nếu tao hỏi người khác làng với mày "Đây là làng nói thiệt?" thì nó trả lời là gì?
Hê, tại sao Lạc Thuỷ Anh hỏi câu khác mà vẫn trả lời được cho câu hỏi số 4? Đó là vì Mèo Rù đã dùng luật khác và mệnh đề mục tiêu khác, tạm thời chưa nghĩ ra được nó là ra sao... hé hé...
Từ đây nảy sinh ra những câu đố khác:
1. Chỉ hỏi một câu, làm sao biết đươc đó là thằng nói láo hay nói thiệt?...
2. Chỉ cần hỏi một câu, làm sao biết được đường nào là đường đến A và biết luôn được nó là thằng nói thiệt hay nói xạo?

...Hehehe.. Coi như là bài tập về nhà

...Hix, blog này khô quá, chỉ dành cho ai đam mê mấy cái nhảm nhí như vậy thôi
... Ai đọc tới đây mà vẫn hiểu thì tự tin lên
, có thêm vài nếp nhăn trên bán cầu não rồi đó 
...
...