• 5 min

นับจำนวนสี่เหลี่ยมในรูป

ข้อสอบเข้า สอวน. คอมพิวเตอร์ พาร์ท กระบวนการคิดอย่างเป็นระบบข้อ 98 ปี 65 โจทย์แนวนับสี่เหลี่ยม สามเหลี่ยมแบบนี้เจอบ่อย อย่าพลาดกันนะครับ

เป็ดไอคอนของเรื่องเล่าชาวอัลกอ Practical Algorithms
Practical Algorithms: เรื่องเล่าชาวอัลกอ
เพจที่อยากให้คนไทยมีเนื้อหาอัลกอริทึมดีๆ ให้ได้อ่านกัน
เป็ดของชาวอัลกอกำลังทำท่าสงสัย ตารางสี่เหลี่ยมเป็นรูปตัวแอล

คำถาม

จำนวนรูปสี่เหลี่ยมมุมฉากทั้งหมดที่ปรากฏในแผนภาพนี้ เท่ากับข้อใด

square-counting

วิเคราะห์โจทย์

ก่อนที่เราจะคิดคำตอบเวอร์ชั่นตามโจทย์ เราจะมาดูในส่วนของการเลือกสี่เหลี่ยมในตารางที่สมบูรณ์ก่อน

square-counting

จากรูป หากจะเลือกเส้นมาทำเป็นสี่เหลี่ยม 1 รูป
เราจำเป็นต้องใช้เส้นทั้งหมด 4 เส้น โดยมีแนวตั้ง 2 เส้นและแนวนอน 2 เส้น

square-counting

จะเห็นได้ว่าถ้าเลือก 2 เส้นตามแนวนอน และอีก 2 เส้นตามแนวตั้ง
จะเกิดจุดตัดทั้งหมด 4 จุดซึ่งสามารถลากเส้นเชื่อมมาเป็นสี่เหลี่ยมได้

ทำให้แทนที่เราจะนั่งนับสี่เหลี่ยมหลายๆ ขนาดทั้งรูป
เราแค่ดูว่าจะเลือก 2 เส้นจากทั้งแนวตั้ง และแนวนอนได้กี่แบบก็พอ

อย่างเช่น

square-counting

(ซ้าย) เลือก 2 เส้นแนวนอน จาก 5 เส้น (52){5 \choose 2} (ขวา) เลือก 2 เส้นแนวตั้ง จาก 7 เส้น (72){7 \choose 2}

จะได้ว่าจำนวนสี่เหลี่ยมทั้งหมดจะมีเท่าจำนวนวิธีการเลือกเส้นแนวนอน และแนวตั้งคูณกัน

ในกรณีนี้ก็แปลว่าจะมีทั้งหมด (52)(72)=210{5 \choose 2}{7 \choose 2} = 210 แบบ

กลับมาที่โจทย์

หลายๆ คนอาจจะคิดว่า
ถ้าแค่คิดจำนวนสี่เหลี่ยมรูปขนาดใหญ่ (4 x 6) แล้วลบด้วยจำนวนสี่เหลี่ยมรูปขนาดเล็ก (2 x 3)
น่าจะได้คำตอบสุดท้าย (210 - 12 = 198) ซึ่งไม่มีในตัวเลือก

สาเหตุเนื่องจาก มันจะมีรูปแบบที่ถูกนับเกินแต่ไม่เป็นสี่เหลี่ยมที่อยู่ในรูปเริ่มต้น

square-counting ตัวอย่างรูปที่ไม่สามารถเกิดขึ้นได้

ถ้าเราใช้วิธีลบออกแบบข้างต้น เราจะนับสี่เหลี่ยมพวกนี้เข้ามาด้วย ทำให้ผลลัพท์เยอะกว่าที่ควรจะเป็น

ทางนึงที่จะแก้ปัญหานี้ได้ก็คือเราจะพิจารณาสี่เหลี่ยมในตารางขนาด 2 x 6 และขนาด 4 x 3 แทนดังรูปด้านล่าง

square-counting

รูปสี่เหลี่ยมที่เกิดขึ้น (72)(32)=63{7 \choose 2}{3 \choose 2} = 63 แบบ

square-counting

รูปสี่เหลี่ยมที่เกิดขึ้น (42)(52)=60{4 \choose 2}{5 \choose 2} = 60 แบบ

ซึ่งเราสามารถคำนวณแยกได้ว่า แต่ละรูปมีจำนวนสี่เหลี่ยมทั้งหมดกี่รูป แล้วเอามาบวกกันทีหลัง

แต่การทำแบบนี้จะทำให้เกิดปัญหาเพิ่มมาอีกอย่างคือ ทั้งสองรูปย่อยมีพื้นที่ที่ซ้อนทับกันอยู่

square-counting

ซึ่งหมายความว่า ในพื้นที่สีแดงจะถูกนับไปสองครั้งจากทั้ง ตอนคำนวณส่วนสีเขียว และตอนคิดส่วนสีฟ้า

ดังนั้นก็เลยต้องลบส่วนที่นับเกินออกไปโดยการนับว่าในส่วนสีแดงมีสี่เหลี่ยมกี่รูป แล้วลบออกไปจากที่เรานับได้ตอนแรก
ก็จะได้ว่าจำนวนสี่เหลี่ยมทั้งหมดที่นับได้จากโจทย์จะเท่ากับ

square-counting

  • รูปสี่เหลี่ยมที่เกิดขึ้น จากตาราง 2 x 6 (สีเขียว) (72)(32)=63{7 \choose 2}{3 \choose 2} = 63

  • รูปสี่เหลี่ยมที่เกิดขึ้น จากตาราง 4 x 3 (สีฟ้า) (42)(52)=60{4 \choose 2}{5 \choose 2} = 60

  • รูปสี่เหลี่ยมที่เกิดขึ้น จากตาราง 2 x 3 (สีแดง) (42)(32)=18{4 \choose 2}{3 \choose 2} = 18

สรุปรวมแล้วได้สี่เหลี่ยมรวมทั้งหมด 63+6018=10563+60-18=105 รูป

แหล่งที่มา

แหล่งที่มาข้อสอบ สามารถไปโหลดจากเว็บ สอวน. ได้ที่:

สอวน ปี65
0

บทความอื่นๆ