สมมติว่ามีการจัดการแข่งขันหนึ่งรายการ ที่ซึ่งหินต่าง ๆ วางอยู่บนถนน มีถังหนึ่งใบอยู่ที่จุดเริ่มต้นของการแข่งขัน ซึ่งอยู่ห่างจากหินก้อนแรก 6 ยูนิต หินก้อนอื่น ๆ ห่างกัน 4 หน่วยและเรียงกันเป็นเส้นตรง ตอนนี้ ผู้เข้าร่วมเริ่มจากถัง แล้วเก็บหินที่ใกล้ที่สุด กลับมาและใส่หินนั้นลงในถัง หลังจากนั้น วิ่งอีกครั้งเพื่อรวบรวมหินที่ใกล้ที่สุดถัดไป วิ่งกลับ และใส่ลงในถัง กระบวนการนี้จะดำเนินต่อไปจนกว่าจะใส่หินทั้งหมดลงในถัง หากมีก้อนหิน n ก้อน เราก็ต้องหาระยะทางทั้งหมดที่จำเป็นสำหรับผู้เข้าร่วม
ดังนั้น ถ้าอินพุตเท่ากับ n =5 ผลลัพธ์จะเป็น 140 เป็น 2*6 + 2(6 + 4) + 2(6 + 4 + 4) + 2(6 + 4 + 4 + 4) + 2 (6 + 4 + 4 + 4 + 4) =140
เพื่อแก้ปัญหานี้ เราต้องแก้สมการนี้ -
-
สำหรับหิน 1 ต้องครอบคลุม (6+6) =2*6 ระยะทาง
-
สำหรับหิน 2 เราต้องครอบคลุมระยะทาง ((6+4)+(6+4)) =2*(6+4)
-
สำหรับหิน 3 เราต้องครอบคลุมระยะทาง ((6+4+4)+(6+4+4)) =2*(6+4+4)
-
สำหรับหิน n เราต้องครอบคลุมระยะทาง ((6+4*(n-1))+(6+4*(n-1))) =2*(6+4*(n-1))พี>
สำหรับหินทั้งหมดที่เราต้องปกปิด -
-
D =2*6 + 2*(6+4) + 2*(6+4+4) + … + 2*(6+4*(n-1))
-
D =2*[6 + (6+4) + (6+2*4) + … + (6+(n-1)*4)]
-
D =2*[6n + 4(1 + 2 + … + (n-1))]
-
D =2*[6n + 4(n*(n-1)/2)]
-
D =2*[6n + 2(n*(n-1))]
ตัวอย่าง
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
def find_distance(n): return 2*(6*n + 2*((n-1)*n)) n = 5 print(find_distance(n))
อินพุต
5
ผลลัพธ์
140