Matematiksel mantık problemine bir çözümün doğrulanması

Aug 17 2020

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:

  1. Uşak doğruyu söylüyorsa, aşçı da öyle yapıyor.
  2. Aşçı da bahçıvan da doğruyu söyleyemez.
  3. Bahçıvan ve tamirci yalan söylemiyor.
  4. 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. cookbö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, handymanYanlış olmalıdır (İfade # 4). 3 numaralı ifadeye göre gardenerve handymanher ikisi de aynı anda Yanlış olamaz, çünkü zaten handymanFalse olduğunu biliyoruz (yani yalan söylemek), gardenerDoğru olmalıdır.

Eğer gardenerTrue ise, 2 numaralı ifadeye göre cookFalse 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 cookyanlış olmaya bırakıyor .

Bunun cookYanlış olduğunu ve dava çözüldüğünü açıkça söyleyemeyiz . Çünkü cookYanlış ise, o handymanzaman Doğru'dur. Ancak bu 3 numaralı ifadeyi iki farklı yola ayırıyor.

gardenerve handymanher ikisi de False değildir, yani bunlardan biri Doğru veya her ikisi de yanlıştır. handymanDoğru olduğu gibi , önce gardenerFalse olduğunu düşünelim . Şimdi yine ikisinden birinin Yanlış olduğu veya her ikisinin de yanlış olduğu durumdayız. Eğer cookTrue ise, ilk varsayımımızla çelişiyor olacağız, bu yüzden Doğru olamayız cook. Bu da bizi cookyanlış 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 gardenerDoğru olmayı düşünüyor olacağız . Eğer gardenerTrue, cookFalse 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

4 WilliamElliot Aug 17 2020 at 11:20

Ö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.

2 PatrickStevens Aug 17 2020 at 15:56

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.

StinkingBishop Aug 17 2020 at 18:03

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.