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

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


সমস্যা বিবরণ

একটি অ্যারে A দেওয়া আছে যেতে পজিটিভ ইন্টিজার আছে এবং সবই ইউনিক। দুই খেলোয়াড় P এবং Q খেলছে। প্রতিটি মুভে একজন খেলোয়াড় দুটি সংখ্যা a এবং b বেছে নেয়। যদি |a - b| অ্যারেতে না থাকে, তবে সেটি যোগ করবে। যে খেলোয়াড় মুভ করতে পারবে না সে হारे। P প্রথমে শুরু করলে কে জিতবে তা বের করতে হবে।

উদাহরণস্বরূপ, A=[8,9,10] হলে আউটপুট P।

সমাধানের ধাপসমূহ

  1. n := len(arr)।
  2. g := arr[0], max_val := arr[0]।
  3. প্রতিটি উপাদানের জন্য g = gcd(g, arr[i]) এবং max_val = max(max_val, arr[i]) আপডেট করুন।
  4. total = (max_val / g) - n।
  5. যদি total বিজোড় হয়, '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))  # আউটপুট: P

ইনপুট

[8,9,10]

আউটপুট

P
  1. পাইথনে NumPy অ্যারে থেকে নির্দিষ্ট রেঞ্জের উপাদান বের করুন

  2. পাইথন প্রোগ্রামে অ্যারের যোগফল বের করা

  3. পাইথন প্রোগ্রাম অ্যারেতে সবচেয়ে বড় এলিমেন্ট বের করা

  4. পাইথনে অ্যারের যোগফল বের করা