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

ลำดับคอนเนลล์ใน Python


สมมติว่าเรามีตัวเลข n เราต้องหาพจน์ที่ n ของลำดับคอนเนลล์ Connellsequence เป็นดังนี้:1. หาจำนวนเต็มคี่แรก:1 2. นำเลขคู่สองตัวถัดไป 2, 4 3. จากนั้นนำจำนวนเต็มคี่สามตัวถัดไป 5, 7, 9 4. หลังจากนั้นใช้จำนวนเต็มสี่คู่ถัดไป 10, 12 , 14,16 เป็นต้น

ดังนั้นหากอินพุตเท่ากับ 12 เอาต์พุตจะเป็น 21

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

  • ผม :=1
  • ในขณะที่ผลหารของ (i *(i + 1) / 2)
  • ผม :=ผม + 1
  • idx :=i *(i + 1) / 2, เอาเฉพาะผลหาร
  • num :=i^2
  • return num - 2 *(idx - n - 1)
  • ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

    ตัวอย่าง

    class Solution:
       def solve(self, n):
          i = 1
          while (i * (i + 1) // 2) < n + 1:
             i += 1
          idx = i * (i + 1) // 2
          num = i**2
       return num - 2 * (idx - n - 1)
    ob = Solution()
    print(ob.solve(12))

    อินพุต

    12

    ผลลัพธ์

    21