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

पायथन में टावर घटाने वाले गेम के विजेता को खोजने का प्रोग्राम


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

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

  • प्रत्येक चाल के दौरान, वर्तमान खिलाड़ी ऊंचाई X के एक टावर को चुनता है और ऊंचाई को Y तक घटा देता है [1 <= Y < X; Y, X को समान रूप से विभाजित करता है]

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

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

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

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

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

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

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

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

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

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