কম্পিউটার

পাইথনে একটি গেমে সংগ্রহযোগ্য সর্বাধিক পয়েন্ট খুঁজে বের করার প্রোগ্রাম


ধরুন আমরা তাসের খেলা খেলছি। আমাদেরকে তাদের প্রতিটিতে একটি নম্বর সহ রৈখিকভাবে সাজানো বেশ কয়েকটি কার্ড দেওয়া হয়েছে। কার্ডের সংখ্যা এলোমেলোভাবে বিতরণ করা হয়; এবং কার্ডের শুরুতে এবং শেষে, দুটি কার্ড ঢোকানো হয় তাদের উপর 1 নম্বর দিয়ে। এখন, গেমটিতে, আমাদের প্রদত্ত কার্ডগুলি তুলে সর্বোচ্চ পয়েন্ট সংগ্রহ করতে হবে। কার্ডগুলিকে একটি অ্যারে 'কার্ড'-এ উপস্থাপন করা হয় যেখানে অ্যারের উপাদানগুলি কার্ডের সংখ্যা উপস্থাপন করে[i]। যখন আমরা কার্ড i বাছাই করি, আমরা পয়েন্ট কার্ড সংগ্রহ করি [i - 1] * কার্ড[i] * কার্ড [i + 1]। আমরা যখন একটি কার্ড বাছাই করি, কার্ড [i - 1] এবং কার্ড [i] প্রতিবেশী হয়ে ওঠে। সুতরাং, এই প্রদত্ত কার্ডগুলি থেকে আমরা সর্বাধিক পয়েন্টগুলি খুঁজে বের করতে পারি যা আমরা সংগ্রহ করতে পারি।

সুতরাং, যদি ইনপুটটি কার্ডের মত হয় =[7, 5, 9, 10], তাহলে আউটপুট হবে 1025

তাই খেলায়, আমরা −

নিতে পারি

সূচক 1 এ কার্ডটি 7 * 5 * 9 =315 পয়েন্ট পান।

কার্ডটি নতুন সূচক 1 এ এবং 7 * 9 * 10 =630 পয়েন্ট পান।

সূচক 1 এ কার্ডটি 7 * 10 =70 পয়েন্ট পান।

শেষ কার্ড এবং 10 পয়েন্ট পান।

মোট পয়েন্ট =315 + 630 + 70 + 10 =1025

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

  • একটি ফাংশন অনুসন্ধান () সংজ্ঞায়িত করুন। এটি x, y
      লাগবে
    • তাপ :=0
    • x + 1 থেকে y রেঞ্জে z-এর জন্য
    • করুন
      • temp :=সর্বাধিক (temp, search(x, z) + search(z, y) + কার্ড[x] * কার্ড[z] * কার্ড[y])
    • রিটার্ন টেম্প
  • লিস্ট কার্ডের শুরুতে এবং শেষে যথাক্রমে 1 এবং 1 মান সন্নিবেশ করান
  • রিটার্ন সার্চ (0, কার্ডের আকার - 1)

উদাহরণ

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

def solve(cards):
   def search(x, y):
      temp = 0
      for z in range(x + 1, y):
         temp = max(temp, search(x, z) + search(z, y) + cards[x] * cards[z] * cards[y])
      return temp
   cards = [1] + cards + [1]
   return search(0, len(cards) - 1)

print(solve([7, 5, 9, 10]))

ইনপুট

[7, 5, 9, 10]

আউটপুট

1025

  1. পাইথনের প্রত্যেকের দ্বারা গ্রাফটি অতিক্রম করা যায় কিনা তা খুঁজে বের করার প্রোগ্রাম

  2. পাইথনে অপসারণ থেকে সর্বাধিক পয়েন্ট খুঁজে বের করার জন্য প্রোগ্রাম

  3. পাইথনে অধ্যয়নের কার্যকর উপায় খুঁজে বের করার প্রোগ্রাম

  4. পাইথন প্রোগ্রাম সর্বোচ্চ তিনটি সংখ্যা খুঁজে বের করতে