งาน
งานของคุณคือการเขียนฟังก์ชั่นหรือโปรแกรมในภาษาที่คุณเลือกซึ่งจะวิเคราะห์ข้อความสองสามข้อและพิจารณาว่าสามารถสรุปได้จากข้อความที่หมูสามารถบินได้หรือไม่
อินพุต
อินพุตเป็นสตริงที่สามารถอ่านได้จาก 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
ในกรณีที่คุณต้องเอาท์พุท - ข้อความที่ให้นั้นถูกต้อง แต่ไม่สอดคล้องกัน (เช่นมีความขัดแย้งในข้อความที่ระบุ) ตั้งแต่อดีต fodso quodlibetเราตัดสินใจที่จะแสดงผล
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.
ผลลัพธ์:สิ่งที่คุณต้องการเนื่องจากสตริงไม่ตรงกับเกณฑ์ที่กล่าวถึงข้างต้น
ผู้ชนะ
นี่คือรหัสกอล์ฟดังนั้นคำตอบที่ถูกต้องที่สั้นที่สุด (เป็นไบต์) ชนะ ผู้ชนะจะได้รับการคัดเลือกหนึ่งสัปดาห์หลังจากโพสต์คำตอบแรกที่ถูกต้อง