Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรมหาตำแหน่งของลูกบอลหลังจากการกลับตัว n ใน Python


สมมติว่ามีลูกบอลจำนวน n ลูก ลูกเรียงเป็นแบบ 1,2,3,4,...,n. ตอนนี้ลูกบอลกลับรายการตามลำดับหรือเรียงลำดับในลักษณะ n, n-1, n-2, ......, 2, 1 ลูกบอลจะกลับรายการอีกครั้งตามลำดับ คราวนี้พวกเขาจะกลับรายการจากตำแหน่ง 1 ถึง n หรือตอนนี้ลำดับกลายเป็น n, 1, 2,....., n-1 กระบวนการย้อนกลับนี้ทำซ้ำ n ครั้ง และทุกครั้งที่ตำแหน่งเริ่มต้นถูกย้าย 1 ตำแหน่งไปทางขวา ตอนนี้เราต้องหาตำแหน่งของลูกบอลในตำแหน่ง 'index' ก่อนหลังการกลับตัว

ดังนั้น หากอินพุตเหมือนลูกบอล =5 ดัชนี =2 ผลลัพธ์จะเป็น 4 ลูกบอลเริ่มต้นคือ:1, 2, 3, 4, 5

จากนั้น

5,4,3,2,1
5,1,2,3,4
5,1,4,3,2
5,1,4,2,3

บอลในตำแหน่ง 2 ปัจจุบันอยู่ที่ตำแหน่ง 4

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • ถ้าดัชนี <ค่าพื้นของ (ลูก / 2) แล้ว
    • ผลตอบแทน 2 * ดัชนี + 1
  • มิฉะนั้น
    • ผลตอบแทน 2 *(ลูก - ดัชนี - 1)

ตัวอย่าง

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

def solve(balls, index):
   if index < balls // 2:
      return 2 * index + 1
   else:
      return 2 * (balls - index - 1)

print(solve(5, 2))

อินพุต

5, 2

ผลลัพธ์

4