Saturday, November 11, 2006

(~_~) Brainstorming!!! (~_~)

Hôm qua Lihavim giới thiệu đọc được chuỗi bài trên báo Tuổi Trẻ "Làm thế nào dịch chuyển núi Phú Sĩ?"... hehe, khá hay! Hôm nay hơi rảnh, động não một tí để tăng nếp nhăn trên trán...

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 đó ...

33 comments:

  1. Câu 4: "Đây có phải làng của anh không?".
    Dựa theo luật !!A = A. Do đó cần đưa chính yếu tố của người mình đang hỏi vào câu hỏi.

    ReplyDelete
  2. Xin lỗi, hình như tui không được rành mấy vụ này cho lắm. Nhưng hông hiểu sao bé rùa điên nói tui cũng hiểu nguyên nhân, còn bé Lạc Thủy Anh nói tui không hiểu lắm. Tại sao lại bưng câu đó ra???

    ReplyDelete
  3. Khi hỏi câu đó, ta có các trường hợp sau:

    _Gặp người nói thật trong LÀNG NÓI THẬT: câu trả lời là "Yes".
    _Gặp người nói dối trong LÀNG NÓI THẬT: câu trả lời là "Yes".
    _Gặp người nói thật trong LÀNG NÓI DỐI: câu trả lời là "No".
    _Gặp người nói dối trong LÀNG NÓI DỐI: câu trả lời là "No".

    Vậy khi gặp Yes thì đó là làng nói thật, gặp No là làng nói dối ^^.

    Còn câu 5 thì luật cho câu ghép không, hay chỉ xài câu đơn?

    ReplyDelete
  4. Hì hì... Bé Mèo Rù đáp đúng rồi, khi nãy cũng tưởng sai, vì do khi nào cũng nghĩ đến mấy cái vụ "đi đến A" =p~ hehehe...

    Câu 5 á? Đơn ghép gì cũng được :D

    ReplyDelete
  5. Hình như câu 3 không đúng mất rồi. Hehehe. Còn ai là Lạc Anh thế? Hình như cũng k đúng luôn. Hic hic hic.

    ReplyDelete
  6. Huh, té ra là tui sai hả? Hic hic hic. Hehehe.

    ReplyDelete
  7. Định luật gì vậy? Em hông có học đâu :-??

    ReplyDelete
  8. Hê, em đọc choáng váng cả đầu, hết not, and rồi or :(. Mình ngu quá :((, chắc phải ghi lại đọc vài lần :D

    ReplyDelete
  9. ui đọc mà nhức cả đầu ... chẳng bao giờ tập trung với mí cí nì, chiện tình iu thì được hehe

    ReplyDelete
  10. Cái này hồi nhỏ chơi hoài :P Bi giờ đang học môn tóan tin cũng gặp lại mấy bài này :P

    ReplyDelete
  11. câu 5: "Anh là người nói thật và đây là đường đến A; hoặc anh là người nói dối và đây cũng là đường đến A" Nếu nó nói đúng thì đúng là đừong đến A, còn nói sai thì đuờng này là đuờng đến B. Ko biết làm có đúng ko :P.

    ReplyDelete
  12. Hình như trả lời sai rồi :P

    ReplyDelete
  13. Đề suy nghĩ tiếp :D, lên 4 cái commment luôn rồi :))

    ReplyDelete
  14. " "2 con đuờng đều đến A" khi và chỉ chi (<=>) "nếu anh nói thật thì bên trái là đuờng đến A" "
    Nếu trả lời đúng thì bên phải là A, còn trả lời sai thì bên trái là A.
    -___- Lần này thì đúng hay sai cũng ko suy nghĩ nữa.

    ReplyDelete
  15. ~x(~x(.. Phân tích câu trả lời của Bihax xong đứt hết mấy trăm dây nơ-ron thần kinh rồi :((..

    ReplyDelete
  16. Trả lời câu 5:

    Paradox chẳng quan tâm thằng cha gác cổng là ba xạo hay ba trợn chi hết. Tới và hỏi thẳng: Ở đường A có quán bán sữa tươi ngon lắm. Chỉ tui đường đi rùi tui khao uống sữa tươi miễn phí :D . Thế là ung dung đi tới đích mà chẳng cần tốn neural quý giá :D

    ReplyDelete
  17. “anh nói thật và đây là đuờng A” hoặc “anh nói dối và đây là đuờng B”

    ReplyDelete
  18. Câu 3: Lại đại 1 con đường, kêu thằng gác đường đó wa hỏi thằng bên kia, đường nó đang đứng là A hay B. Sau cùng chỉ việc phủ định câu trả lời sẽ biết chính xác đường nào. Cái này gọi là phủ định của phủ định ^^.

    Ví dụ: Thằng nói thật đứng ở A, nói dối ở B. Nói thật sang hỏi nói dối gác đường gì, thằng nói dối nhất định sẽ nói ngược lại, có nghĩa là nó nói nó đứng ở A, thằng nói thật sẽ trả lời cho ta nó đứng ở A, phủ định lại là B. Các trường hợp khác chứng minh tương tự keke.

    ReplyDelete
  19. Định khủng bố nữa hả mạy?
    @_@

    ReplyDelete
  20. Logic là 1 phạm trù tóan học mà dân ko phải dân tóan ko cần biết tới. Lí do hết sức đơn giản là mình sẽ thuê dân tóan logic làm chiện đó cho mình. j/k

    btw, việc suy ra mí câu đó thuần túy thuộc phạm trù tóan học, chứ ko giúp con người tăng cái gọi là logic thinking được.

    hé hé tranh thủ 4 phút cuối của giờ nghỉ trưa dzô wậy chơi :-" :-" :-"

    ReplyDelete
  21. Phạm trù là một phạm trù mà người hiểu về phạm trù mới cho nó là phạm trù. @_@

    ReplyDelete
  22. hừ, phát hiện ra mình là người phi logic ;))

    ReplyDelete
  23. Hix, do.c ma'y comment tha'y lu`ng bu`ng lo~ tai :">

    @Bia: Ua`, da.o na`y tong tho'ng My qua VN, ko bie't khung bo' ban`g gi`, tao khu?ng bo' ba`ng blog :">
    @Vi.t: Xa.o qua' ba` chi. oi...
    @Co`: Chuyen Toa'n ma` phi logic thi` chuye^n Va(n nhu tui cha'c hong bie't Logic la` ca'i gi` luo^n qua' :D
    @Te`o: Che't the^m ma'y tram day tha`n kinh nu~a ro`i :((

    ReplyDelete
  24. Hay hoi mot cau de biet duoc Invisible la nguoi noi lao hay noi sao? (bai tap lam them)

    ReplyDelete
  25. ^:)^ Tao cũng sợ mày luôn Rùa ơi. Đêm khuya thanh vắng tao đi đọc mấy cái blog cho đỡ khùng, mà đụng cái blog này tao ngu ngu luôn =((.

    ReplyDelete
  26. @Huong Quan: không có câu nào hỏi để biết rùa invi nói láo hay thật cả (nói láo hay xạo thì thôi... khỏi hỏi, ;)).). Rùa invi chỉ là một người bình thường (tầm thường) nên có lúc nói xạo, có lúc nói thiệt, hén rùa.
    @Rùa: đó đó, tui nói đó, rùa điên là một người tầm thường thôi, nên liệu mà đừng làm quá nhiều thứ đó nhe cưng. Làm người bình thường, điên điên chút để tui còn ...iêu (he he he, thương rùa quá, :x).

    ReplyDelete
  27. oh man,dzui dzui :D.lau lau moi co dip ghe wa day , thay bac Invi ngay benh nang hon,haha.Dung roi,phai vay chu..:D

    ReplyDelete
  28. ac ac...Mat 1h de doc ma....hong hiu j het. Dan toan tu duy ghe thiet. Dan Nhan Van nhu tui dung la...dau hang!!!Anyway blog nay gia tri day chu(nay gio tuy ko nghi ra nhung tui cung huy dong 8/10 noron than kinh hoat dong rui)

    ReplyDelete
  29. Hôm nay đi lục blog anh Ỉn nè, :D, nhiều bài cũg ấn tượg đó, :D, đọc đến fần này, nhưg dài quá em lười ko đọc hết, với mấy cái này hồi nhỏ em cũg có học qua sơ sơ, :D. Em đố anh Invi 1 câu này dễ thui nha, :D, có 6 người, 2 người nói dối, 4 người nói thiệt, vậy anh chỉ đc hỏi 1 câu hỏi, chug cho 6 người, làm sao biết đc ai nói dối ai nói thiệt??? Đây là câu hỏi yes/no question, :D, giải đi anh, :D, héhé...

    ReplyDelete
  30. Mấy bài toán này em biết từ hồi cấp hai. Hic hic,hôm nay mới gặp cách giải tổng quát thế lày,đọc nhức mắt quá!
    Em học toán bao nhiêu năm,h vẫn phải ngày đêm cày toán,tại sao chưa nghe cái định luật De Moorgan nhỉ?

    ReplyDelete
  31. giá mà anh bớt dùng kí hiệu lại,bài toán sẽ dễ hiểu hơn nhiều!

    ReplyDelete
  32. Chà,rất tiếc là trường em bỏ môn logic học mất,uổng quá!

    ReplyDelete