최근 수정 시각 : 2023-10-29 02:20:53

천사와 악마(논리)

1. 개요
1.1. 답
2. 예/아니오로 대답 가능한 질문만 가능할 경우3. 반드시 천국문 앞에는 천사가, 지옥문 앞에는 악마가 있을 경우4. 응용 문제 15. 응용 문제 26. 응용 문제 37. 기타

1. 개요

유명한 논리 문제 중 하나로 여러가지 바리에이션이 존재한다. 비슷한 문제로 기사와 건달 문제가 있으며, 진화 버전으로 가장 어려운 논리 퍼즐이 있다.
천국으로 가는 문과 지옥으로 가는 문이 있다.
하지만 두 문은 똑같이 생겨서 구분할 수 없다.
그리고 두 문 앞에 각각 천국에서 사는 천사와, 지옥에서 사는 악마가 서있는데
역시 천사와 악마도 똑같이 생겨서 구분할 수가 없다.
천사와 악마 모두 어떤게 천국의 문인지, 어떤게 지옥의 문인지 알고 있다.
단, 천국의 문 앞에는 반드시 천사가, 지옥의 문 앞에는 반드시 악마가 있다는 보장은 없다.
천국의 문 앞에 있는 것이 천사일 수도, 악마일 수도 있으며, 지옥의 문 앞에 있는 것이 천사일 수도, 악마일 수도 있다.
천사는 진실만을, 악마는 거짓만을 말한다.
천사는 악마가 거짓만을 말할 것을, 악마는 천사가 진실만을 말할 것을 알고있다.
이 상황에서 당신은 한 가지 질문을 해서 천국의 문을 찾아야 한다.

1.1.

우선 "천국으로 통하는 문이 어디야?"라고 직접 물어보는 것은 소용이 없다. 상대가 천사라면 솔직하게 답해줄 테지만, 상대가 악마라면 일부러 거짓말을 해서 지옥으로 통하는 문을 알려줄 것이다. 누가 천사고 누가 악마인지 모르는 상태에서 이 질문은 소용이 없다. 따라서 아래와 같이 질문을 해야한다.
  • 답1: 둘 중 아무에게나 상관 없으니 "네가 사는 곳이 어디야?"라고 질문하고, 가리켜진 문으로 나간다.
    • 천사일 경우
      천사는 진실을 말할 것이고 천사는 천국에 살고 있으므로 천국의 문을 가리킬 것이다.
    • 악마일 경우
      악마는 거짓을 말할 것이므로 악마가 살고 있는 지옥이 아닌 천국의 문을 가리킬 것이다.

    누구에게 질문했느냐와 상관없이 결국 천국의 문을 알 수 있다.
  • 답2: 아무에게나 상관없으니 "네 옆에 선 녀석에게 천국의 문이 어디인지 물어본다면 어느 쪽 문을 가리킬까?"라고 질문한 뒤, 가리켜진 문의 반대쪽 문으로 나간다.
    • 상대가 천사일 경우
      천사는 악마가 거짓말을 한다는 것을 알고 있기에, 지옥의 문을 가리킨다.
    • 상대가 악마일 경우
      악마는 천사가 솔직하게 천국 문을 가리킨다는 것을 알고 있지만, 거짓말을 하므로 지옥의 문을 가리킨다.

    논리학에서 이중 부정은 긍정이 된다는 것을 이용한 해답으로, 누구에게 질문했느냐와 상관없이 지옥의 문을 알 수 있기에 지옥의 문이 아닌 다른 문은 천국의 문이라는 것을 알 수 있다.

2. 예/아니오로 대답 가능한 질문만 가능할 경우

  • 답3: 두 개의 문 중 자신이 직접 특정 문 한 개를 지목한 뒤, 어느 누구에게든 상관없이 "네 옆에 선 녀석에게 내가 지목한 이 문이 천국의 문이 맞냐고 질문한다면, '그렇다'라고 대답할까?"라고 묻는다.
    • 지목한 문이 천국의 문일 때, 천사일 경우
      천사는 악마가 거짓말을 할 것을 알고 있다. 따라서 "아니다"라고 대답한다.
    • 지목한 문이 천국의 문일 때, 악마의 경우
      악마는 천사가 진실을 말할 것을 알고 있다. 하지만 악마는 일부러 거짓말을 해서 "아니다"라고 대답한다.
    • 지목한 문이 지옥의 문일 때, 천사의 경우
      천사는 악마가 거짓말을 할 것을 알고 있다. 따라서 "그렇다"라고 대답한다.
    • 지목한 문이 지옥의 문일 때, 악마의 경우
      악마는 천사가 진실을 말할 것을 알고 있다. 하지만 악마는 일부러 거짓말을 해서 "그렇다"라고 대답한다.
난이도를 높여서 "예/아니오로만 대답할 수 있는 질문만 가능하다"는 조건이 붙은 베리에이션에서 통하는 방법으로, 여기서 당신이 지목한 문이 천국일 경우, 천사와 악마 둘 다 "아니다"(= 옆의 녀석은 천국의 문이 아니라고 대답할 것이다)라는 대답이 돌아온다. 따라서 이런 대답이 돌아왔다면 내가 선택한 그 문이 천국의 문이다.
만약 당신이 지목한 문이 지옥일 경우, 천사와 악마 둘 다 "맞는다"(= 옆의 녀석은 천국의 문이 맞는다라고 대답할 것이다)라는 대답이 돌아온다. 따라서 이런 대답이 돌아왔을 때 당신이 선택하지 않은 다른 문이 천국의 문이다.
  • 답4: "천사가 천국으로 가는 문을 지키고 있니?"라고 묻는다.
    • 천국의 문 앞에 천사가 있을 경우
      천사는 거짓말을 하지 않으므로 "그렇다"라고 대답한다.
      악마는 거짓말을 할 것이므로 "아니다"라고 대답한다.
    • 천국의 문 앞에 악마가 있을 경우
      천사는 거짓말을 하지 않으므로 "아니다"라고 대답한다.
      악마는 거짓말을 할 것이므로 "그렇다"라고 대답한다.
따라서 Yes 라고 대답한 쪽의 문이 천국문임을 알 수 있다.

3. 반드시 천국문 앞에는 천사가, 지옥문 앞에는 악마가 있을 경우

오히려 난이도가 더 쉬워진 베리에이션이다.

위 명제는 "반드시 천국의 문 앞에 천사가, 지옥의 문 앞에 악마가 있다는 보장은 없다"라는 전제하의 문제인데, 이걸 바꿔서 "천국의 문 앞에는 반드시 천사가, 지옥의 문 앞에는 반드시 악마가 있다"라는 전제 조건을 바꾼 문제도 존재한다. 이 경우에 해답은 다음과 같다.
  • 답5: "네 옆에 선 녀석에게 자신이 지키는 곳이 천국의 문이냐고 질문한다면, 뭐라고 대답할까?"라고 묻는다.
    • 상대가 천사일 경우
      천사는 악마가 지키는 곳이 지옥의 문이라는 것을 알고 있고, 악마는 반드시 거짓말을 할 것도 알기에 "녀석은 자신이 지키는 문이 천국의 문이라고 대답할 것이다"라고 답한다.
    • 상대가 악마일 경우
      악마는 천사가 지키는 곳이 천국 문이며, 그걸 솔직하게 말할 것을 알고 있다. 하지만 악마는 거짓말을 하기에 "녀석은 자신이 지키는 문이 지옥의 문이라고 대답할 것이다"라고 답한다.
따라서 "녀석은 자신이 지키는 문이 천국의 문이라고 대답할 것이다"라는 대답을 했다면 무조건 천사이며, 이 대답을 한 천사가 지키고 있는 문으로 들어가야 한다. 만약 "녀석은 자신이 지키는 문이 지옥의 문이라고 대답할 것이다"라는 대답을 했다면 무조건 악마이며, 이 대답을 한 악마가 지키고 있는 반대쪽 문으로 들어가야 한다.
  • 답6: 너희 둘 다 진실을 말하니?
    악마는 그렇다고 할 것이고 천사는 아니라고 할 것이다.
다만 사실, '반드시 천국의 문 앞에는 천사가, 지옥의 문 앞에는 악마가 있다'라는 전제 조건이 붙어있다면, 가장 쉽게 답을 알 수 있는 질문은 아무에게나 "2+2는 4인가?"라는 식으로 본인도 정답을 알 수 있는 질문을 물어보는 것이다. 정답이 존재하는 수학적 문제에는 상대가 진실을 말했는지 거짓을 말했는지 알 수 있고, 4가 맞다고 진실을 말했다면 천사일 것이므로 천사가 있는 문으로 가면 되고 4가 아니라는 거짓말을 했다면 악마일 것이므로 그 반대편 문으로 가면 된다.

4. 응용 문제 1

이 문제와 비슷한 문제로 다음과 같은 문제가 있다.
Y자로 갈라진 길이 있다.
둘 중 한 곳은 진실만을 말하는 사람들이 사는 곳이고,
다른 한 곳은 거짓만을 말하는 사람들이 사는 곳이다.
길이 갈라지는 길목에 사람이 서 있다.
그 사람은 진실마을에서 온 사람일 수도 있고 거짓마을에서 온 사람일 수도 있다.
그 사람에게 질문을 단 한 번만 해서 진실마을과 거짓마을 중 골라서 가는 방법은 무엇일까?
여기서 질문은 부탁도 포함한다.[1]
이 문제의 답은 이렇다.

둘 중 A마을을 가리키며 "이 마을이 당신이 사는 마을입니까?"라고 물었을 때 그 사람이 "예"라고 답한다면 A마을이 진실마을이고 "아니오"라고 답한다면 B마을이 진실마을이다.
  • 만약 A가 진실마을이라고 했을 때 길목에 서 있는 사람이 진실마을 사람이라면 그 사람이 진짜로 A마을에 살고 있으므로 "예"라고 답하고, 거짓마을 사람이라면 그 사람은 A마을에 살고 있지 않음에도 거짓말로 "예"라고 답할 것이다.
  • 만약 B가 진실마을이라고 했을 때 길목에 서 있는 사람이 진실마을 사람이라면 그 사람은 A마을에 살고 있지 않으므로 "아니오"라고 답하고, 거짓마을 사람이라면 그 사람이 A마을에 살고 있음에도 거짓말로 "아니오"라고 답할 것이다.
  • 따라서, 길목에 서 있는 사람이 진실마을 사람이든 거짓마을 사람이든 둘 중 한 마을을 가리키며 "이 마을이 당신이 사는 마을입니까?"라고 물었을 때 "예"라고 답하면 진실마을이고 "아니오"라고 답하면 거짓마을이 된다.

5. 응용 문제 2

'진실을 말하는 천사'를 이용한 다른 방식의 문제들도 있다.
O,X 문제에 대답을 해주는 어떤 천사가 있다. 이 천사는 아래와 같은 특징을 가졌다.
이 천사는 진실만을 말한다.

또한, 이 천사는 어떠한 상황에서라도 "O" 또는 "X"로만 대답할 수 있다.

천사가 "O"라고 대답했다면 그것은 무조건 맞는 것이고
천사가 "X"라고 대답했다면 그것은 무조건 틀린 것이다.

이 천사는 전지전능하여 모든 것을 알고 있다.
당신의 비밀이라거나 당신의 친족관계, 매우 어려운 수학문제, 생물의 창조 또는 진화,
세계적인 미스테리, 우주의 진실 등등 모든 것을 알고 있고,
이것들에 대한 대답을 할 수 있다.
(천사에게 대답이 O,X로 나누어지는 질문을 해야지 이상한 질문이나 요구를 하면 안된다.)
(거짓말이 들어간 내용으로 질문을 해서는 안된다.)
(말이 안 되는 어떠한 것에 대해 질문하지 못한다.)
(천사가 대답을 한 이후의 상황에 대해서는 질문할수 없다.)

그런데, 이 천사에게 한 문장의 질문을 하였더니,
천사가 대답을 할 수 없는 상황이 나와버렸다.

천사에게 했던 질문은 무엇이었을까? ||
이 문제의 경우 기존 천사와 악마 문제와는 요구하는 답이 다르다. "천사는 진실만을 말한다" 라는 특징을 이용하여 정답을 찾을 수 있다. '진실만을 말한다'는 것은 '거짓을 말할 수 없다'라는 말과 같다는 점을 이용하여 정답을 찾을 수 있다. 답은 아래와 같다.
당신은 제가 지금 묻고 있는 질문에 'X'라고 대답 할 것입니까?
위와 같은 질문을 천사에게 한다면 진실만을 말하는 천사가 거짓된 대답을 할 수밖에 없다.
  • 천사가 "O"라고 대답한다면 천사의 대답은 모순되고 거짓된 대답이 된다.
    천사가 자신이 "X"로 대답할 것을 긍정했으나 실제 답은 "O"였기 때문이다.
  • 반대로 천사가 "X"라고 대답하더라도 천사의 대답은 모순되고 거짓된 대답이 된다.
    천사가 자신이 "X"로 대답할 것을 부정했으나 실제 답은 "X"였기 때문이다.
천사는 거짓을 말할 수 없으므로 위 질문에 대한 대답을 할 수 없는 것이다. 이 외에도 여러가지의 정답이 있다.

이 문제에서 이용된 원리는 가장 어려운 논리 퍼즐에서 신의 머리가 폭발하는 경우의 상황과 같은 원리이다. 가장 어려운 논리 퍼즐은 미국의 철학자이자 논리학자인 조지 불로스가 이탈리아의 한 신문에 실었던 논리 퍼즐인데, 이 논리퍼즐의 상황에서도 "신이 대답을 하지 못하는 상황"이 나올 수 있었다.(A simple solution to the hardest logic puzzle ever에서 신이 대답을 하지 못하는 상황이 나올 수 있는것을 알아냈는데, 여기에서는 이것을 '신의 머리가 폭발했다'라고 표현했다.)

6. 응용 문제 3

마녀에게는 무엇이든 알려주는 거울이 존재한다. 그런데 이 거울은 어느 날엔 진실을 말하고 어느 날엔 거짓을 말한다. 마녀는 수학을 못해서 2+2가 4인지 궁금해 거울에게 물어보고자 한다. 정답을 얻기 위해서는 거울에게 어떤 식으로 질문을 해야 하는가?
답: "오늘 내가 너에게 "2+2가 4니?"라고 질문한다면, 넌 어떻게 대답할 것이니?" 라는 식으로 조건(if)를 걸어서 질문을 하면 원하는 대답을 얻을 수 있다.
  • 오늘이 거울이 진실을 말하는 날이라면 별 문제없이 그 질문에 "저는 '그렇다'라고 대답할 것 입니다."라고 말을 한다.
  • 오늘이 거울이 거짓말을 말하는 날이라면, 거울은 자신이 '아니다'라고 대답할 것을 알고있다. 그런데 이 질문의 핵심은 "2+2가 4니?"이 아니라 "거울 너는 어떻게 대답할 것이니?"가 핵심이다. 따라서 거울은 거짓말을 해서 "저는 '맞는다'라고 대답할 것입니다."라고 말을 한다.
이 문제의 핵심은 부정+부정 이라는 이중 부정은 긍정이 된다는 점 이다.
추가 응용: '오늘'과 같은 발화 시점을 정할 수 없을 때
->거울이 '너'라는 말을 듣고 진실거울과 거짓거울일 수 있는 자신을 동시에 지칭한다고 생각한다. 즉, 거울에게 묻는 바로 그 때에 거울이 할 대답을 질문하지 못한다.

답: "매일 내가 너에게 2+2=4라고 묻는다면, 너와 반대 상태에 있는 거울은 매번 이것이 거짓이라고 말하니?"

진실거울: O라고 대답한다면, 거짓거울이 거짓이라 말한 것이니 참이다→2+2=4가 참, X라고 대답한다면, 거짓거울이 참이라 말한 것이니 거짓이다→2+2=4가 거짓

거짓거울: 마찬가지로 O→2+2=4가 참, X→2+2=4가 거짓

계산에 약하고 논리에 강한 마녀

7. 기타

유희왕에도 등장한 적이 있다.미궁형제가 미궁을 헤매는 무토우 유우기 일행에게 '미'의 문과 '궁'의 문을 제시하면서 두 문 중 하나만이 출구라고 말하면서, 둘 중 한 명이 진실만을 말하고 나머지 한 명은 거짓만을 말한다는 조건으로 문제가 제시되었다. 죠노우치 카츠야는 위의 예시를 그대로 들어 해결하려 했지만, 어둠의 유우기는 위의 조건을 말한 자들이 당사자 본인이라는 점을 들어 의심했다. 이후 유우기는 듀얼을 끝낸 후 똑같은 방법으로 미궁형제를 속여 정답을 찾아냈다. 자세한 것은 미궁형제 문서 참조.

수학도둑에서도 등장했는데, 도도와 그 친구들의 조상님[2]이 악당 마법사 매직코팅을 잡기 위해 한 내기에서도 비슷하게 등장했다. 여기서는 우리 찾는 게이트를 옆의 부하한테 물어보면 어디를 가리키냐고 질문했다.

방구석에 인어아가씨에서 박도경임사체험을 할 때에도 등장한다. 박도경은 아주 간단하게 '하느님 개새끼 해봐'로 탈출한다.

마인탐정 네우로에서 노우가미 네우로카츠라기 야코로 변신한 괴도 X와 대결할 때 극중 상황으로 등장했다. 즉 "둘 다 야코의 모습을 한 두 존재가 자신을 공격해오면 어떻게 야코(천사)가 아닌 괴도 X(악마)만을 해치워야 하는가?"로 구조 자체는 같다. 그리고 네우로다운네우로만 가능한 해법을 사용해서 간단히 파훼했다.[3] 그리고 아는 사람과 모르는 사람을 모두 위해서인지 단행본 부록에 원래 버전으로 다시 추가되었고, 이 때는 답2를 해법으로 사용했다. 참고로 네우로 왈 "옛 추억이 그립군. 답을 잘못 고른 인간들이 마계로 우수수 떨어졌었는데."

[1] 문제적 남자에 출제된 적이 있는 문제이다.[2] 각자 아루루와 슈미의 조상이다.[3] 일단 한 쪽의 머리핀을 하나 슬쩍해서 차이점을 뒀다. 그리고 괴도 X가 그걸 이용해 함정을 팔 것을 예상하고, 이를 역이용해 도둑맞은 야코의 남은 머리핀에도 몰래 흠집을 내뒀다. 즉 흠집을 낸 머리핀을 이용해 좀 더 명확하게 차이를 좁히고 구별한 것.