1. 개요
유명한 논리 문제 중 하나로 여러가지 바리에이션이 존재한다. 비슷한 문제로 기사와 건달 문제가 있으며, 진화 버전으로 가장 어려운 논리 퍼즐이 있다.
천국으로 가는 문과 지옥으로 가는 문이 있다.
하지만 두 문은 똑같이 생겨서 구분할 수 없다.
그리고 두 문 앞에 각각 천국에서 사는 천사와, 지옥에서 사는 악마가 서있는데
역시 천사와 악마도 똑같이 생겨서 구분할 수가 없다.
천사와 악마 모두 어떤게 천국의 문인지, 어떤게 지옥의 문인지 알고 있다.
단, 천국의 문 앞에는 반드시 천사가, 지옥의 문 앞에는 반드시 악마가 있다는 보장은 없다.
천국의 문 앞에 있는 것이 천사일 수도, 악마일 수도 있으며, 지옥의 문 앞에 있는 것이 천사일 수도, 악마일 수도 있다.
천사는 진실만을, 악마는 거짓만을 말한다.
천사는 악마가 거짓만을 말할 것을, 악마는 천사가 진실만을 말할 것을 알고있다.
이 상황에서 당신은 한 가지 질문을 해서 천국의 문을 찾아야 한다.
하지만 두 문은 똑같이 생겨서 구분할 수 없다.
그리고 두 문 앞에 각각 천국에서 사는 천사와, 지옥에서 사는 악마가 서있는데
역시 천사와 악마도 똑같이 생겨서 구분할 수가 없다.
천사와 악마 모두 어떤게 천국의 문인지, 어떤게 지옥의 문인지 알고 있다.
단, 천국의 문 앞에는 반드시 천사가, 지옥의 문 앞에는 반드시 악마가 있다는 보장은 없다.
천국의 문 앞에 있는 것이 천사일 수도, 악마일 수도 있으며, 지옥의 문 앞에 있는 것이 천사일 수도, 악마일 수도 있다.
천사는 진실만을, 악마는 거짓만을 말한다.
천사는 악마가 거짓만을 말할 것을, 악마는 천사가 진실만을 말할 것을 알고있다.
이 상황에서 당신은 한 가지 질문을 해서 천국의 문을 찾아야 한다.
1.1. 답
우선 "천국으로 통하는 문이 어디야?"라고 직접 물어보는 것은 소용이 없다. 상대가 천사라면 솔직하게 답해줄 테지만, 상대가 악마라면 일부러 거짓말을 해서 지옥으로 통하는 문을 알려줄 것이다. 누가 천사고 누가 악마인지 모르는 상태에서 이 질문은 소용이 없다. 따라서 아래와 같이 질문을 해야한다.* 답1: 둘 중 아무에게나 상관 없으니 "네가 사는 곳이 어디야?"라고 질문하고, 가리켜진 문으로 나간다.
* 천사일 경우
천사는 진실을 말할 것이고 천사는 천국에 살고 있으므로 천국의 문을 가리킬 것이다.
* 악마일 경우
악마는 거짓을 말할 것이므로 악마가 살고 있는 지옥이 아닌 천국의 문을 가리킬 것이다.
누구에게 질문했느냐와 상관없이 가리키는 쪽이 천국의 문임 알 수 있다.천사는 진실을 말할 것이고 천사는 천국에 살고 있으므로 천국의 문을 가리킬 것이다.
* 악마일 경우
악마는 거짓을 말할 것이므로 악마가 살고 있는 지옥이 아닌 천국의 문을 가리킬 것이다.
* 답2: 아무에게나 상관없으니 "네 옆에 선 녀석에게 천국의 문이 어디인지 물어본다면 어느 쪽 문을 가리킬까?"라고 질문한 뒤, 가리켜진 문의 반대쪽 문으로 나간다.
* 상대가 천사일 경우
천사는 악마가 거짓말을 한다는 것을 알고 있기에, 지옥의 문을 가리킨다.
* 상대가 악마일 경우
악마는 천사가 솔직하게 천국 문을 가리킨다는 것을 알고 있지만, 거짓말을 하므로 지옥의 문을 가리킨다.
논리학에서 이중 부정은 긍정이 된다는 것을 이용한 해답으로, 누구에게 질문했느냐와 상관없이 지옥의 문을 알 수 있기에 가리키는 문과 반대쪽 문이 천국의 문이라는 것을 알 수 있다.
천사는 악마가 거짓말을 한다는 것을 알고 있기에, 지옥의 문을 가리킨다.
* 상대가 악마일 경우
악마는 천사가 솔직하게 천국 문을 가리킨다는 것을 알고 있지만, 거짓말을 하므로 지옥의 문을 가리킨다.
2. 예/아니오로 대답 가능한 질문만 가능할 경우
- 답3: 두 개의 문 중 자신이 직접 특정 문 한 개를 지목한 뒤, 어느 누구에게든 상관없이 "네 옆에 선 녀석에게 내가 지목한 이 문이 천국의 문이 맞냐고 질문한다면, '그렇다'라고 대답할까?"라고 묻는다.
-
지목한 문이 천국의 문일 때, 천사일 경우
천사는 악마가 거짓말을 할 것을 알고 있다. 따라서 "아니다"라고 대답한다. -
지목한 문이 천국의 문일 때, 악마의 경우
악마는 천사가 진실을 말할 것을 알고 있다. 하지만 악마는 일부러 거짓말을 해서 "아니다"라고 대답한다. -
지목한 문이 지옥의 문일 때, 천사의 경우
천사는 악마가 거짓말을 할 것을 알고 있다. 따라서 "그렇다"라고 대답한다. -
지목한 문이 지옥의 문일 때, 악마의 경우
악마는 천사가 진실을 말할 것을 알고 있다. 하지만 악마는 일부러 거짓말을 해서 "그렇다"라고 대답한다.
난이도를 높여서 "예/아니오로만 대답할 수 있는 질문만 가능하다"는 조건이 붙은 베리에이션에서 통하는 방법으로, 여기서 당신이 지목한 문이 천국일 경우, 천사와 악마 둘 다 "아니다"(= 옆의 녀석은 천국의 문이 아니라고 대답할 것이다)라는 대답이 돌아온다. 따라서 이런 대답이 돌아왔다면 내가 선택한 그 문이 천국의 문이다.
만약 당신이 지목한 문이 지옥일 경우, 천사와 악마 둘 다 "맞는다"(= 옆의 녀석은 천국의 문이 맞는다라고 대답할 것이다)라는 대답이 돌아온다. 따라서 이런 대답이 돌아왔을 때 당신이 선택하지 않은 다른 문이 천국의 문이다.[1]
만약 당신이 지목한 문이 지옥일 경우, 천사와 악마 둘 다 "맞는다"(= 옆의 녀석은 천국의 문이 맞는다라고 대답할 것이다)라는 대답이 돌아온다. 따라서 이런 대답이 돌아왔을 때 당신이 선택하지 않은 다른 문이 천국의 문이다.[1]
- 답4: "천사가 천국으로 가는 문을 지키고 있니?"라고 묻는다.
-
천국의 문 앞에 천사가 있을 경우
천사는 거짓말을 하지 않으므로 "그렇다"라고 대답한다.
악마는 거짓말을 할 것이므로 "아니다"라고 대답한다. -
천국의 문 앞에 악마가 있을 경우
천사는 거짓말을 하지 않으므로 "아니다"라고 대답한다.
악마는 거짓말을 할 것이므로 "그렇다"라고 대답한다.
3. 반드시 천국문 앞에는 천사가, 지옥문 앞에는 악마가 있을 경우
오히려 난이도가 더 쉬워진 베리에이션이다.위 명제는 "반드시 천국의 문 앞에 천사가, 지옥의 문 앞에 악마가 있다는 보장은 없다"라는 전제하의 문제인데, 이걸 바꿔서 "천국의 문 앞에는 반드시 천사가, 지옥의 문 앞에는 반드시 악마가 있다"라는 전제 조건을 바꾼 문제도 존재한다. 이 경우에 해답은 다음과 같다.
- 답5: "네 옆에 선 녀석에게 자신이 지키는 곳이 천국의 문이냐고 질문한다면, 뭐라고 대답할까?"라고 묻는다.
-
상대가 천사일 경우
천사는 악마가 지키는 곳이 지옥의 문이라는 것을 알고 있고, 악마는 반드시 거짓말을 할 것도 알기에 "녀석은 자신이 지키는 문이 천국의 문이라고 대답할 것이다"라고 답한다. -
상대가 악마일 경우
악마는 천사가 지키는 곳이 천국 문이며, 그걸 솔직하게 말할 것을 알고 있다. 하지만 악마는 거짓말을 하기에 "녀석은 자신이 지키는 문이 지옥의 문이라고 대답할 것이다"라고 답한다.
-
답6: 너희 둘 다 진실을 말하니?
악마는 그렇다고 할 것이고 천사는 아니라고 할 것이다.
4. 응용 문제 1
이 문제와 비슷한 문제로 다음과 같은 문제가 있다.Y자로 갈라진 길이 있다.
둘 중 한 곳은 진실만을 말하는 사람들이 사는 곳이고,
다른 한 곳은 거짓만을 말하는 사람들이 사는 곳이다.
길이 갈라지는 길목에 사람이 서 있다.
그 사람은 진실마을에서 온 사람일 수도 있고 거짓마을에서 온 사람일 수도 있다.
그 사람에게 질문을 단 한 번만 해서 진실마을과 거짓마을 중 골라서 가는 방법은 무엇일까?
여기서 질문은 부탁도 포함한다.[2]
이 문제의 답은 이렇다.둘 중 한 곳은 진실만을 말하는 사람들이 사는 곳이고,
다른 한 곳은 거짓만을 말하는 사람들이 사는 곳이다.
길이 갈라지는 길목에 사람이 서 있다.
그 사람은 진실마을에서 온 사람일 수도 있고 거짓마을에서 온 사람일 수도 있다.
그 사람에게 질문을 단 한 번만 해서 진실마을과 거짓마을 중 골라서 가는 방법은 무엇일까?
여기서 질문은 부탁도 포함한다.[2]
둘 중 A마을을 가리키며 "이 마을이 당신이 사는 마을입니까?"라고 물었을 때 그 사람이 "예"라고 답한다면 A마을이 진실마을이고 "아니오"라고 답한다면 B마을이 진실마을이다.
- 만약 A가 진실마을이라고 했을 때 길목에 서 있는 사람이 진실마을 사람이라면 그 사람이 진짜로 A마을에 살고 있으므로 "예"라고 답하고, 거짓마을 사람이라면 그 사람은 A마을에 살고 있지 않음에도 거짓말로 "예"라고 답할 것이다.
- 만약 B가 진실마을이라고 했을 때 길목에 서 있는 사람이 진실마을 사람이라면 그 사람은 A마을에 살고 있지 않으므로 "아니오"라고 답하고, 거짓마을 사람이라면 그 사람이 A마을에 살고 있음에도 거짓말로 "아니오"라고 답할 것이다.
- 따라서, 길목에 서 있는 사람이 진실마을 사람이든 거짓마을 사람이든 둘 중 한 마을을 가리키며 "이 마을이 당신이 사는 마을입니까?"라고 물었을 때 "예"라고 답하면 진실마을이고 "아니오"라고 답하면 거짓마을이 된다.
5. 응용 문제 2
'진실을 말하는 천사'를 이용한 다른 방식의 문제들도 있다.O,X 문제에 대답을 해주는 어떤 천사가 있다. 이 천사는 아래와 같은 특징을 가졌다.
이 천사는 진실만을 말한다.
또한, 이 천사는 어떠한 상황에서라도 "O" 또는 "X"로만 대답할 수 있다.
천사가 "O"라고 대답했다면 그것은 무조건 맞는 것이고
천사가 "X"라고 대답했다면 그것은 무조건 틀린 것이다.
이 천사는 전지전능하여 모든 것을 알고 있다.
당신의 비밀이라거나 당신의 친족관계, 매우 어려운 수학문제, 생물의 창조 또는 진화,
세계적인 미스테리, 우주의 진실 등등 모든 것을 알고 있고,
이것들에 대한 대답을 할 수 있다.
(천사에게 대답이 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. 기타
유희왕에도 등장한 적이 있다. 미궁형제가 미궁을 헤매는 무토우 유우기 일행에게 '미'의 문과 '궁'의 문을 제시하면서 두 문 중 하나만이 출구라고 말하면서, 둘 중 한 명이 진실만을 말하고 나머지 한 명은 거짓만을 말한다는 조건으로 문제가 제시되었다. 죠노우치 카츠야는 위의 예시를 그대로 들어 해결하려 했지만, 어둠의 유우기는 위의 조건을 말한 자들이 당사자 본인이라는 점을 들어 의심했다. 이후 유우기는 듀얼을 끝낸 후 똑같은 방법으로 미궁형제를 속여 정답을 찾아냈다. 자세한 것은 미궁형제 문서 참조.수학도둑에서도 등장했는데, 도도와 그 친구들의 조상님[3]이 악당 마법사 매직코팅을 잡기 위해 한 내기에서도 비슷하게 등장했다. 여기서는 우리 찾는 게이트를 옆의 부하한테 물어보면 어디를 가리키냐고 질문했다.
방구석에 인어아가씨에서 박도경이 임사체험을 할 때에도 등장한다. 박도경은 아주 간단하게 ' 하느님 개새끼 해봐'로 탈출한다.
마인탐정 네우로에서 노우가미 네우로가 카츠라기 야코로 변신한 괴도 X와 대결할 때 극중 상황으로 등장했다. 즉 "둘 다 야코의 모습을 한 두 존재가 자신을 공격해오면 어떻게 야코(천사)가 아닌 괴도 X(악마)만을 해치워야 하는가?"로 구조 자체는 같다. 그리고 네우로다운