Matematiksel mantık problemine bir çözümün doğrulanması
Soru şu şekildedir:
Bir dedektif, bir suçun dört tanığıyla görüştü. Dedektif, bu görüşmelerin gidişatına dayanarak şu sonuca varmıştır:
- Uşak doğruyu söylüyorsa, aşçı da öyle yapıyor.
- Aşçı da bahçıvan da doğruyu söyleyemez.
- Bahçıvan ve tamirci yalan söylemiyor.
- Tamirci doğruyu söylüyorsa, aşçı yalan söylüyor olmalı.
Soru, dedektif, her bireyin yalan söyleyip söylemediğini anlayabilir mi? Gerekçeyi açıklayın.
Cevap:
Burada sadece birinin doğru olup olmadığını düşünüyoruz. Dolayısıyla either True or False
, olası durumlardan herhangi birinde bir değişken alıp oradan kendimizi geri alabiliriz. cook
böyle bir değişkendir [Doğru, belirli bir kişinin doğruyu söylediği anlamına gelir ve Yanlış, tam tersi anlamına gelir].
Doğru olduğunu düşünürsek cook
, handyman
Yanlış olmalıdır (İfade # 4). 3 numaralı ifadeye göre gardener
ve handyman
her ikisi de aynı anda Yanlış olamaz, çünkü zaten handyman
False olduğunu biliyoruz (yani yalan söylemek), gardener
Doğru olmalıdır.
Eğer gardener
True ise, 2 numaralı ifadeye göre cook
False olmalıdır. Bu bizim ilk varsayımımızla cook
, yani Doğru olanla, yani doğruyu söylemekle çelişir . Bu da bizi cook
yanlış olmaya bırakıyor .
Bunun cook
Yanlış olduğunu ve dava çözüldüğünü açıkça söyleyemeyiz . Çünkü cook
Yanlış ise, o handyman
zaman Doğru'dur. Ancak bu 3 numaralı ifadeyi iki farklı yola ayırıyor.
gardener
ve handyman
her ikisi de False değildir, yani bunlardan biri Doğru veya her ikisi de yanlıştır. handyman
Doğru olduğu gibi , önce gardener
False olduğunu düşünelim . Şimdi yine ikisinden birinin Yanlış olduğu veya her ikisinin de yanlış olduğu durumdayız. Eğer cook
True ise, ilk varsayımımızla çelişiyor olacağız, bu yüzden Doğru olamayız cook
. Bu da bizi cook
yanlış olmaya bırakıyor. Bu bize mantıksal olarak doğru varsayımların ilk kümesini verir. Bunu not alalım.
cook = False
handyman = True
gardener = False
butler = False
Şimdi gardener
Doğru olmayı düşünüyor olacağız . Eğer gardener
True, cook
False olmak zorundadır. Şimdi başka bir çözüm setimiz var
cook = False
handyman = True
gardener = True
butler = False
Mantıksal olarak doğru iki çözümü karşılaştırdığımızda, birden fazla olası vaka olduğundan, dedektifin her bireyin yalan söyleyip söylemediğini belirleyemeyeceği varsayımına kolayca ulaşabiliriz.
Yöntem çok sıkıcı mı? Aynı şeyi başarmanın başka bir yöntemi var mı? Her şey kendi kendine öğretiliyor, bu yüzden farklı terminolojilerin kullanımı şu anda bana yabancı, biri beni doğru yöne yönlendirebilirse minnettar olurum.
Yanıtlar
Öncül.
b c
değil-c veya değil-g anlamına gelir
g veya h
h, c-notu anlamına gelir
G değil varsayalım. Böylece
h; değil-c: değil-b.
Assune g. Böylece
-c: değil-b.
Sonuç.
Aşçı ve uşak yalan söylüyor.
Ya aşçı ya da tamirci doğruyu söylüyor.
İkisinin de yalan söylediği tespit edilemez.
Aynı yanıtı farklı bir şekilde almak için:
En baştan başlar ve ileriye doğru çalışırsanız, Butler-true, Cook-true (1 ile), Gardener-false (2 ile), Handyman-true (3 ile), Cook-false (4 ile), çelişki anlamına gelir. Yani uşak yalan söylüyor; dahası, çelişki tamamen Butler-true'nun bir imasından ("Cook-true") ortaya çıktı , bu yüzden aslında aşçı da yalan söylüyor.
Daha sonra 1, 2 ve 4. koşullar geçersiz hale gelir ve durum 3, kalan tek kısıtlamadır.
Soru, dedektif, her bireyin yalan söyleyip söylemediğini anlayabilir mi? Gerekçeyi açıklayın
Eğer sadece burada cevap vermek zorunda soru üzerindedir biri, o zaman, cevabın ne bağlı (doğru veya yanlış) farklı bir kanıtı yazıyordum.
Cevap " doğruysa : dedektif kimin yalan söylediğine karar verebilir" ise, o zaman sorunun koşullarının belirli bir çözümü ifade ettiğini kanıtlamanız gerekir. (Bu, temelde sorunuzda yaptığınız şeydir.)
Bununla birlikte, cevap " yanlış : dedektif kimin yalan söylediğine karar veremez" ise, o zaman yazmanız gereken tek şey , her ikisi de sorunun koşullarıyla tutarlı olan en az iki farklı listedir .
Buradaki cevap yanlış olduğundan , bir kanıt olarak yazmanız gereken tek şey:
Dedektif kimin yalan söylediğine karar veremez, çünkü yalan söyleyenler (uşak, aşçı) veya (uşak, aşçı, bahçıvan) veya (uşak, aşçı, tamirci) olabilir. Bu üç olasılığın tümü sorunun koşullarıyla tutarlıdır.
Elbette, bu üç olasılığa nasıl ulaştığınızı yazmak çok öğretici ve eğitici . Ancak, bu bölümü atlamak, kanıtınızı daha az geçerli kılmaz (tartışmalı olsa bile, onu çok daha çirkin kılar!). Ayrıca, bunun bir yarışma (veya bir sınav) sorunu olup olmamasına bağlı olarak - bu tür bir çözüm, tam bir çözüm olarak kabul edilmeyebilir, çünkü içindeki "mantık" tam olarak açıklanmayacaktır. Yine de matematiksel olarak doğru bir cevap olacaktır.