ความท้าทายนี้จะขึ้นอยู่กับปริศนาต่อไปนี้: คุณจะได้รับn
จากn
ตารางที่มีn
เซลล์ที่ทำเครื่องหมายไว้ งานของคุณคือการแบ่งพาร์ติชันกริดออกเป็นn
ส่วนต่าง ๆ ซึ่งแต่ละส่วนประกอบด้วยn
เซลล์ที่แน่นอนแต่ละส่วนประกอบด้วยเซลล์ที่ทำเครื่องหมายไว้หนึ่งเซลล์
ตัวอย่าง
นี่คือปริศนาทางด้านซ้ายและโซลูชัน (ที่ไม่ซ้ำกัน) ทางด้านขวา:
ท้าทาย
คุณจะได้รับชุดของn
พิกัดศูนย์ดัชนีในรูปแบบที่เหมาะสม
[(0,0), (0,3), (1,0), (1,1), (2,2)]
และงานของคุณคือการเขียนโปรแกรมที่ส่งคืนพาร์ทิชันที่ถูกต้อง (อีกครั้งในรูปแบบที่สมเหตุสมผล)
[
[(0,0), (0,1), (0,2), (1,2), (1,3)],
[(0,3), (0,4), (1,4), (2,4), (3,4)],
[(1,0), (2,0), (3,0), (4,0), (4,1)],
[(1,1), (2,1), (3,1), (3,2), (4,2)],
[(2,2), (2,3), (3,3), (4,3), (4,4)]
]
หากตัวต่อไม่มีวิธีแก้ปัญหาโปรแกรมควรระบุว่าโดยการโยนข้อผิดพลาดหรือส่งคืนวิธีแก้ปัญหาเปล่า
ตัวอย่างอินพุต / เอาท์พุต
[(0,0)] => [[(0,0)]]
[(0,0), (1,1)] => [
[(0,0), (1,0)],
[(0,1), (1,1)]
]
[(0,0), (0,1), (1,0)] => [] (no solution)
[(0,0), (0,1), (0,2)] => [
[(0,0), (1,0), (2,0)],
[(0,1), (1,1), (2,1)],
[(0,2), (1,2), (2,2)],
]
[(0,0), (0,2), (1,2)] => [
[(0,0), (1,0), (2,0)],
[(0,1), (0,2), (1,1)],
[(1,2), (2,1), (2,2)],
]
เกณฑ์การให้คะแนน
นี่คือรหัส - กอล์ฟดังนั้นรหัสที่สั้นที่สุดจึงชนะ
นี้ได้รับแรงบันดาลใจจากคำถามคณิตศาสตร์ Stack แลกเปลี่ยนนี้
—
Peter Kagey
@Arnauld ดูเหมือนว่าสำหรับปริศนาชิกากุ "วัตถุประสงค์คือเพื่อแบ่งตารางออกเป็นชิ้นสี่เหลี่ยมและสี่เหลี่ยม" ในกรณีนี้ไม่มีข้อ จำกัด ดังกล่าว
—
Peter Kagey
ขอโทษสำหรับความสับสน. ฉันคิดว่าอาจจะมีความท้าทาย Shikaku อยู่ที่ไหนสักแห่งในกล่องทรายหรือบางทีฉันอาจวางแผนที่จะทำให้ตัวเองในบางจุด - ฉันจำไม่ได้แน่นอน ทั้งสองวิธีฉันคิดว่ามันเป็นสิ่งเดียวกันในแวบแรก
—
Arnauld
ทำไมผลลัพธ์จึงเป็นพิกัด 2d ฉันไม่เข้าใจสิ่งที่กำลังแสดงอยู่ที่นั่น ... มันเป็นอาร์เรย์ 2 มิติของดัชนีของอาร์เรย์หรือไม่? ตัวอย่างเช่นแถว 3 คอลัมน์ 2 มีพาร์ติชันพร้อมพิกัดที่ดัชนี 4?
—
Olivier Grégoire
เราอาจสมมติว่าแต่ละพื้นที่สามารถวาดได้โดยเริ่มจากพิกัดอ้างอิงตามตัวอย่างที่แนะนำ ฉันเพิ่งรู้ว่าฉันได้รับสิ่งนี้โดยไม่รู้ตัว
—
Arnauld