কম্পিউটার

পাইথনে সম্ভব না হওয়া পর্যন্ত অ্যারের উপাদানগুলির পেয়ারওয়াইজ পার্থক্য যোগ করে বিজয়ী খুঁজুন


ধরুন আমাদের কাছে ধনাত্মক পূর্ণসংখ্যার একটি অ্যারে রয়েছে, উপাদানগুলি অনন্য, এখন, দুটি খেলোয়াড় P এবং Q একটি গেম খেলছে। প্রতিটি পদক্ষেপে, যেকোনো একজন খেলোয়াড় অ্যারে থেকে দুটি সংখ্যা a এবং b বেছে নেয় এবং যদি |a – b| প্লেয়ার অ্যারেতে এই সংখ্যাটি যোগ করার পরে অ্যারেতে নেই। যখন একজন খেলোয়াড় মুভ করতে পারে না তখন খেলা হারায়। আমাদের গেমের বিজয়ী খুঁজে বের করতে হবে যদি প্লেয়ার P সবসময় খেলা শুরু করে।

সুতরাং, যদি ইনপুট A =[8,9,10] এর মত হয়, তাহলে আউটপুট হবে P।

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

  • n :=arr এর আকার

  • g :=arr[0], max_val :=arr[0>

  • 1 থেকে n রেঞ্জের জন্য, করুন

    • g :=gcd(g, arr[i])

    • max_val :=max_val এর সর্বোচ্চ, arr[i]

  • মোট :=(max_val / g) - n

  • যদি মোট বিজোড় হয়, তাহলে

    • 'P'

      ফেরত দিন
  • 'Q'

    ফেরত দিন

উদাহরণ

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

from math import gcd
def who_is_the_winner(arr) :
   n = len(arr)
   g = arr[0]
   max_val = arr[0]
   for i in range(1, n) :
      g = gcd(g, arr[i])
      max_val = max(max_val, arr[i])
   total = (max_val / g) - n
   if (total % 2 == 1) :
      return 'P'
   return 'Q'

arr = [8,9,10]
print(who_is_the_winner(arr))

ইনপুট

[8,9,10]

আউটপুট

P

  1. পাইথনে numpy রেঞ্জের মধ্যে উপাদান খুঁজুন

  2. পাইথন প্রোগ্রামে অ্যারের সমষ্টি খুঁজুন

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

  4. অ্যারের যোগফল খুঁজে পেতে পাইথন প্রোগ্রাম