수학적 논리 문제에 대한 솔루션 검증

Aug 17 2020

질문은 다음과 같습니다.

형사가 범죄의 증인 4 명을 인터뷰했습니다. 형사는 인터뷰가 어떻게 진행되었는지에 따라 다음과 같이 결론을 내 렸습니다.

  1. 집사가 진실을 말하면 요리사도 그렇게하는 것입니다.
  2. 요리사와 정원사는 둘 다 진실을 말할 수 없습니다.
  3. 정원사와 잡역부 모두 거짓말을하지 않습니다.
  4. 핸디맨이 진실을 말하고 있다면 요리사는 거짓말을해야합니다.

문제는 형사가 각 개인이 거짓말을하고 있는지 아닌지를 알아낼 수 있다는 것입니다. 이유를 설명하십시오.


대답:

우리는 누군가가 진실인지 아닌지를 고려하고 있습니다. 그래서 우리는 either True or False가능한 모든 경우에 변수를 취하고 거기에서 돌아갈 수 있습니다. cook[True는 특정 사람이 진실을 말하고 있음을 의미하고 False는 정반대를 의미합니다].

cookTrue로 간주되면 handymanFalse 여야합니다 (문장 # 4). 문 # 3에 따라, gardener그리고 handyman우리가 이미 알고있는 모두 동시에 거짓이 될 수 없습니다 handyman(즉 거짓말) 거짓이다, gardener참이어야합니다.

If gardeneris True, 문 # 2에 따르면 cookFalse 여야합니다. 이것은 우리의 첫 번째 가정 cook, 즉 진실, 즉 진실을 말하는 것과 모순 됩니다. 그것은 우리를 cook거짓으로 만듭니다.

우리는 그것이 cook거짓이고 사건이 해결 되었다고 똑바로 말할 수는 없습니다 . cookFalse handyman이면 True 이기 때문 입니다. 그러나이 분기는 # 3을 두 개의 다른 경로로 나눕니다.

gardenerhandyman수단 중 하나 그들 중 하나에 해당하는, 또는 둘 모두가 모두 거짓, 수 없습니다. handymanTrue와 마찬가지로 먼저 gardenerFalse를 고려해 보겠습니다 . 이제 우리는 둘 중 하나가 거짓이거나 둘 다인 동일한 상황에 있습니다. cookTrue 인 경우 초기 가정과 모순되므로 cookTrue 일 수 없습니다. 그것은 우리를 cook거짓으로 만듭니다. 이것은 우리에게 논리적으로 올바른 가정의 첫 번째 집합을 제공합니다. 메모 해 봅시다.

cook = False
handyman = True
gardener = False
butler = False

이제 우리는 gardener참 이라고 생각할 것 입니다. 경우 gardenerTrue입니다, cook거짓이어야합니다. 이제 다른 솔루션 세트가 있습니다.

cook = False
handyman = True
gardener = True
butler = False

논리적으로 올바른 두 솔루션을 비교하면 형사가 각 개인이 거짓말을하고 있는지 아닌지를 판단 할 수 없다는 가정에 쉽게 도달 할 수 있습니다. 한 가지 이상의 가능한 경우가 있기 때문입니다.


방법이 너무 지루합니까? 같은 것을 달성하는 다른 방법이 있습니까? 모든 것이 스스로 가르치기 때문에 지금 당장은 다른 용어를 사용하는 것이 나에게 낯설다. 누군가 나를 올바른 방향으로 안내 할 수 있다면 감사 할 것이다.

답변

4 WilliamElliot Aug 17 2020 at 11:20

전제.
b는 c
not-c를 의미 하거나 not-g
g 또는 h
h는 not-c를 의미합니다.

아니라고 가정하십시오. 따라서
h; not-c : not-b.

Assune g. 따라서
not-c : not-b.

결론.
요리사와 집사가 거짓말을하고 있습니다.
요리사 나 잡역부가 진실을 말하고 있습니다.
둘 중 하나가 거짓말을하고 있는지는 알 수 없습니다.

2 PatrickStevens Aug 17 2020 at 15:56

다른 방법으로 동일한 답변을 얻으려면 :

맨 위부터 시작하여 앞으로 나아가면 Butler-true는 Cook-true (1 기준)는 Gardener-false (2 기준)는 Handyman-true (3 기준)는 Cook-false (4 기준), 모순을 의미합니다. 그래서 집사는 거짓말을하고 있습니다. 게다가 모순은 순전히 Butler-true 의 함축 ( "Cook-true") 에서 비롯 되었으므로 실제로 요리사도 거짓말을하고 있습니다.

그런 다음 조건 1, 2 및 4가 비워지고 조건 3이 남아있는 유일한 제한입니다.

StinkingBishop Aug 17 2020 at 18:03

문제는 형사가 각 개인이 거짓말을하고 있는지 아닌지를 알아낼 수 있다는 것입니다. 이유를 설명하십시오

경우 에만 여기에 대답해야 할 질문은 위의 하나는, 다음, 답이 무엇인지에 따라 (true 또는 false) 당신은 다른 증거를 작성합니다.

  • 대답이 " : 형사가 누가 거짓말을하는지 결정할 수 있습니다 " 이면 문제의 조건이 하나의 특정 해결책을 의미한다는 것을 증명해야합니다. (이것은 기본적으로 귀하의 질문에서 수행 한 것입니다.)

  • 대답은 그러나, " 거짓 : 모든 당신이 아래로 작성해야 탐정이 누가 거짓말 결정할 수없는 것은"입니다 누가 거짓말 적어도 두 가지 목록 모두 일치 문제의 조건.

여기에 대한 대답은 false 이므로 증거로 작성해야 할 것은 다음과 같습니다.

거짓말하는 사람은 (집사, 요리사) 또는 (집사, 요리사, 정원사) 또는 (집사, 요리사, 재주꾼) 일 수 있기 때문에 형사는 누가 거짓말을하고 있는지 결정할 수 없습니다. 이 세 가지 가능성은 모두 문제의 조건과 일치합니다.

물론 이 세 가지 가능성에 도달 한 방법 을 기록 하는 것은 매우 유익 하고 교육적 입니다. 그러나 그 부분을 생략한다고해서 증명의 유효성이 떨어지지는 않습니다 (논란의 여지가 있지만 훨씬 더 추악 해집니다!). 또한 이것이 콘테스트 (또는 시험) 문제인지 여부에 따라 해당 솔루션의 "이유"가 완전히 설명되지 않기 때문에 완전한 솔루션으로 받아 들여지지 않을 수 있습니다. 하지만 수학적으로는 정답이 될 것입니다.