태스크
당신의 임무는 몇 가지 진술을 분석하고 돼지가 날 수있는 진술에서 결론을 내릴 수 있는지 결정하는 선택한 언어로 기능이나 프로그램을 작성하는 것입니다.
입력
입력은 STDIN에서 읽거나 함수 인수로 가져 오거나 파일에 저장할 수있는 문자열입니다. 입력은 다음 EBNF를 사용하여 설명 할 수 있습니다.
input = statement , {statement};
statement = (("Pigs are ", attribute) | ("Everything that is ", attribute, "is also ", attribute)), ". ";
attribute = [not], ("able to fly" | singleAttribute);
singleAttribute = letter, {letter};
letter = "a" | "b" | "c" | "d" | "e" | "f" | "g"
| "h" | "i" | "j" | "k" | "l" | "m" | "n"
| "o" | "p" | "q" | "r" | "s" | "t" | "u"
| "v" | "w" | "x" | "y" | "z" ;
입력 예 (아래 더 많은 예 참조) :
Pigs are green. Everything that is green is also intelligent. Everything that is able to fly is also not intelligent. Pigs are sweet.
산출
출력은 함수에 의해 리턴되거나 파일에 기록되거나 STDOUT에 인쇄 될 수 있습니다. 처리해야 할 5 가지 경우가 있습니다.
- 주어진 진술은 타당하고 일관되며 돼지가 날 수 있다는 논리적 결과입니다. 이 경우을 출력해야합니다
Yes
. - 주어진 진술은 유효하고 일관되며 돼지가 날 수 없다는 논리적 결과를 초래합니다. 이 경우을 출력해야합니다
No
. - 돼지가 날 수 있는지 여부는 주어진 유효하고 일관된 진술에서 결론을 내릴 수 없습니다. 이 경우을 출력해야합니다
Maybe
. - 주어진 진술은 유효하지만 일관성이 없습니다 (즉, 주어진 진술에 모순이 있음). 이후 전 falso 혼성 곡 , 우리는 출력을 결정하는
Yes
경우이다. - 주어진 설명이 유효하지 않습니다. 즉, 주어진 EBNF에 따라 형식이 지정되지 않았습니다. 이 경우 원하는대로 할 수 있습니다.
세부
- 주어진 속성이 서로 독립적이라고 가정 할 수 있습니다. 예를 들어, 돼지는 불일치를 일으키지 않고 동시에 젊고 늙거나, 녹색, 빨간색, 파란색 일 수 있습니다. 그러나 돼지는 동시에 '녹색'과 '녹색이 아님'이 아닐 수 있습니다. 이는 모순이며 (4)에 설명 된대로 처리해야합니다.
- 모든 특성에 대해 주어진 특성을 가진 유니버스에는 하나 이상의 개체 (돼지 일 필요는 없음)와 해당 특성이없는 개체가 하나 있다고 가정하십시오.
입력 및 출력 예
입력:
Pigs are green. Everything that is green is also intelligent. Everything that is able to fly is also not intelligent.
결과 : 돼지는 녹색이어서 지능적이어서 날 수있는 모든 것이 지능적이지 않기 때문에 돼지는 날 수 없습니다. 출력은 No
입니다.
입력:
Pigs are old. Everything that is not able to fly is also not old.
결과 : 돼지가 날 수 없다면, 나이가 들지 않았다. 그러나 그것들이 오래되었으므로 출력해야합니다 Yes
.
입력:
Everything that is sweet is also not old. Everything that is intelligent is also blue.
출력 : Maybe
.
입력:
Pigs are not able to fly. Everything that is red is also sweet. Everything that is sweet is also not red.
결과 : 첫 번째 진술은 돼지가 날 수 없다는 것을 암시하지만 다음 진술은 서로 모순되므로 결과는이어야합니다 Yes
.
입력:
Pigs are very smart. Pigs are able to fly.
출력 : String이 위에서 언급 한 기준과 일치하지 않기 때문에 원하는대로.
우승자
이것은 code-golf 이므로 가장 짧은 정답 (바이트)이 이깁니다. 당첨자는 첫 정답이 게시 된 지 일주일 후에 선정됩니다.