কম্পিউটার টিউটোরিয়াল

পাইথনে কনেল সিকোয়েন্সের nth পদ খুঁজুন


मान लीजिए हमारे पास एक संख्या n है, हमें कोनेल अनुक्रम (Connell sequence) का nवां पद ढूंढना है। कोनेल अनुक्रम इस प्रकार है:

  1. पहला विषम पूर्णांक लें: 1
  2. अगले दो सम पूर्णांक लें: 2, 4
  3. फिर अगले तीन विषम पूर्णांक लें: 5, 7, 9
  4. उसके बाद अगले चार सम पूर्णांक लें: 10, 12, 14, 16
  5. इसी तरह चलता रहता है।

यदि इनपुट 12 जैसा है, तो आउटपुट 21 होगा।

इसे हल करने के लिए हम निम्नलिखित चरणों का पालन करेंगे:

  • i := 1
  • जब तक (i*(i+1)/2) का भागफल < n+1, करें:
    • i := i + 1
  • idx := i*(i+1)/2, केवल भागफल लें
  • num := i^2
  • 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

  1. পাইথনে issuperset() ফাংশন

  2. Python-এ লিস্ট প্রিন্ট করা

  3. Python-এ সিকোয়েন্স ইনডেক্স দিয়ে ইটারেট করা

  4. পাইথনে কলন (:) অপারেটর কী কাজ করে?