Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

पायथन में रोवर रिड्यूसिंग गेम के विजेता को खोजने का कार्यक्रम

मान लीजिए कि हमारे पास एक सरणी ऊंचाई है। अलग-अलग ऊंचाई के साथ अलग-अलग टावर हैं। अमल और बिमल एक खेल खेल रहे हैं। खेल के नियम नीचे की तरह हैं

  • अमल हमेशा पहले खेलता है

  • प्रत्येक चाल के दौरान, वर्तमान खिलाड़ी ऊँचाई X के एक टॉवर का चयन करता है और ऊँचाई को Y तक कम करता है [1 <=Y

  • जिसके पास कोई चाल नहीं है वह खेल हार जाएगा

हमें विजेता का नाम खोजना होगा।

इसलिए, यदि इनपुट ऊंचाई =[3,1,2] की तरह है, तो आउटपुट बिमल होगा, क्योंकि प्रारंभिक ऊंचाई {3,1,2} हैं। अगर अमल टावर 2 से 1 की ऊंचाई कम कर देता है, तो बिमल 3 से 1 तक कम कर सकता है, लेकिन अमल के पास कोई चाल नहीं है इसलिए बिमल जीत जाता है।

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • उपयोग() फ़ंक्शन को परिभाषित करें। इसमें एक,n
  • . लगेगा
  • उत्तर:=0
  • मैं के लिए 0 से n -1 की सीमा में, करो
    • उत्तर:=उत्तर XOR a[i]
  • वापसी उत्तर
  • मुख्य विधि से निम्न कार्य करें
  • n :=ऊंचाई का आकार
  • b :=आकार n की एक सरणी और 0 से भरें
  • मैं के लिए 0 से n -1 की सीमा में, करो
    • यदि ऊंचाई [i] 1 के समान है, तो
      • b[i] :=0
    • अन्यथा
      • b[i] :=0
      • j :=2
      • मूल :=वर्गमूल का तल ऊंचाई का [i]
      • जबकि ऊंचाई[i] 1 और j<=root के समान नहीं है, करते हैं
        • यदि ऊंचाई[i] mod j 0 के समान है, तो
          • जबकि ऊंचाई[i] mod j 0 के समान है, करते हैं
            • b[i] :=b[i] + 1
            • ऊंचाई[i] :=ऊंचाई का तल[i]/j
        • j :=j + 1
      • यदि ऊंचाई [i] 1 के समान नहीं है, तो
        • b[i] :=b[i] + 1
  • उत्तर:=उपयोग (बी, एन)
  • यदि उत्तर 0 के समान नहीं है, तो
    • वापस "अमल"
  • अन्यथा,
    • रिटर्न "बिमल"

उदाहरण

आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

def util(a,n):
   ans = 0
   for i in range(n):
      ans = ans^a[i]

   return ans

def solve(height):
   n = len(height)
   b = [0 for i in range(n)]

   for i in range(n):
      if(height[i] == 1):
         b[i] = 0
      else:
         b[i] = 0
         j = 2

         root = int(pow(height[i],0.5))
         while(height[i] != 1 and j<=root):
            if(height[i]%j == 0):
               while(height[i]%j == 0):
                  b[i] += 1
                  height[i] = height[i]//j

            j += 1

         if(height[i] != 1):
            b[i] += 1

   ans = util(b, n)

   if(ans != 0):
      return "Amal"
   else:
      return "Bimal"

height = [3,1,2]
print(solve(height))

इनपुट

[3,1,2]

आउटपुट

Bimal

  1. पायथन में बहुभुज का क्षेत्रफल ज्ञात करने का कार्यक्रम

    मान लीजिए कि हमारे पास ऑर्डर किए गए बिंदुओं की एक सूची है जो 2 डी विमान पर एक साधारण बहुभुज समापन बिंदु का प्रतिनिधित्व करती है। हमें इस बहुभुज का क्षेत्रफल ज्ञात करना है। इसलिए, यदि इनपुट अंक =[(0, 0), (0,5), (3, 5), (3,0)] की तरह है, तो आउटपुट 15 होगा। इसे हल करने के लिए, हम इन चरणों का पालन क

  1. पायथन में बहुभुज की परिधि खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास ऑर्डर किए गए बिंदुओं की एक सूची है जो 2 डी विमान पर एक साधारण बहुभुज समापन बिंदु का प्रतिनिधित्व करती है। हमें इस बहुभुज का परिमाप ज्ञात करना है। इसलिए, यदि इनपुट अंक =[(0, 0), (0,5), (3, 5), (3,0)] की तरह है, तो आउटपुट 16 होगा क्योंकि दो भुजाओं की लंबाई 3 है और दो भुजाओं

  1. पायथन में बार-बार पूर्णांक गेम को हटाने के लिए चालों की संख्या खोजने का कार्यक्रम

    मान लीजिए कि दो मित्र अमल और बिमल संख्याओं की एक क्रमबद्ध सूची के साथ एक खेल खेल रहे हैं जिसे अंक कहते हैं। इस खेल में अमल एक ही बारी में कोई तीन अंक चुनता है। बिमल उनमें से एक को हटा देता है, और फिर अमल उनमें से एक को हटा देता है। सूची विषम संख्या में तत्वों से शुरू होती है। यहां अमला सूची में दोहर