কম্পিউটার

পাইথনে রোয়ার রিডিউসিং গেমের বিজয়ী খুঁজে বের করার প্রোগ্রাম


ধরুন আমাদের একটি অ্যারের উচ্চতা আছে। বিভিন্ন উচ্চতা সহ বিভিন্ন টাওয়ার আছে। অমল আর বিমল একটা খেলা খেলছে। খেলার নিয়ম নিচের মত

  • অমল সবসময় প্রথম খেলে

  • প্রতিটি পদক্ষেপের সময়, বর্তমান খেলোয়াড় X উচ্চতার একটি টাওয়ার নির্বাচন করে এবং উচ্চতা কমিয়ে Y [1 <=Y

  • যার কোন নড়াচড়া নেই সে গেমটি হারাবে

আমাদের বিজয়ীর নাম খুঁজে বের করতে হবে।

সুতরাং, যদি ইনপুটটি উচ্চতা =[3,1,2] এর মত হয়, তাহলে আউটপুট হবে বিমল, কারণ প্রাথমিক উচ্চতা হল {3,1,2}। অমল যদি টাওয়ার 2 থেকে 1 এর উচ্চতা কমায়, বিমল 1 দ্বারা 3 কমাতে পারে, কিন্তু অমলের কোন নড়াচড়া নেই তাই বিমল জিতেছে।

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • একটি ফাংশন util() সংজ্ঞায়িত করুন। এটি একটি, 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, do
          এর মতো নয়
        • যদি উচ্চতা[i] মোড j 0 এর সমান হয়, তাহলে
          • যখন উচ্চতা[i] মোড j 0 এর সমান, do
            • b[i] :=b[i] + 1
            • উচ্চতা[i] :=উচ্চতার মেঝে[i]/j
        • j :=j + 1
      • যদি উচ্চতা[i] 1 এর মত না হয়, তাহলে
        • b[i] :=b[i] + 1
  • উত্তর :=util(b, n)
  • যদি উত্তর 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. পাইথনে বহুভুজের পরিধি খুঁজে বের করার প্রোগ্রাম

  3. পাইথন ব্যবহার করে একটি অ্যারে গেমের বিজয়ী খুঁজে বের করার প্রোগ্রাম

  4. পাইথনে পুনরাবৃত্ত পূর্ণসংখ্যা গেম মুছে জয়ের জন্য চালের সংখ্যা খুঁজে বের করার প্রোগ্রাম