3
พิสูจน์ฉันผิด!
บทนำ ภารกิจในชีวิตของคุณนั้นง่าย: พิสูจน์คนผิดทางอินเทอร์เน็ต! ในการทำเช่นนี้คุณมักวิเคราะห์ข้อความของพวกเขาอย่างรอบคอบและชี้ให้เห็นถึงความขัดแย้งในพวกเขา ถึงเวลาที่จะทำสิ่งนี้โดยอัตโนมัติ แต่เมื่อเราขี้เกียจเราต้องการพิสูจน์คนผิดด้วยความพยายามน้อยที่สุด (อ่าน: รหัสที่สั้นที่สุด) ที่เป็นไปได้ สเปค อินพุต การป้อนข้อมูลของคุณจะเป็นสูตรในรูปแบบปกติซึ่งเชื่อมต่อกัน สำหรับรูปแบบคุณสามารถใช้รูปแบบด้านล่างหรือกำหนดรูปแบบของคุณเองตามความต้องการในภาษาของคุณ (คุณไม่สามารถเข้ารหัสในรูปแบบได้มากกว่า CNF ล้วนๆ) อย่างไรก็ตามกรณีทดสอบ (ที่นี่) มีให้ในรูปแบบด้านล่าง (แม้ว่าจะไม่สร้างตัวคุณเองยากเกินไป) ข้อมูลที่คุณป้อนจะเป็นรายการของรายการตัวแปร (คุณอาจอ่านเป็นสตริง / ต้องการสตริง) อินพุตเป็นสูตรในรูปแบบปกติที่เชื่อมต่อกัน (CNF) ที่เขียนเป็นชุดคำสั่งแต่ละรายการเป็นรายการสองรายการ รายการแรกในข้อเข้ารหัสตัวอักษรบวก (ตัวแปร) รายการที่สองเข้ารหัสตัวอักษร (ลบ) ตัวแปร (ตัวแปร) ตัวแปรทั้งหมดในส่วนคำสั่งคือ OR'ed เข้าด้วยกันและส่วนคำสั่งทั้งหมดเป็น AND'ed เข้าด้วยกัน หากต้องการทำให้ชัดเจนยิ่งขึ้น[[[A,B],[C]],[[C,A],[B]],[[B],[A]]]สามารถอ่านได้ที่: (A OR B OR (NOT C)) AND (C OR A OR …