কম্পিউটার

সমস্ত কাজ পরীক্ষা করার জন্য প্রোগ্রাম প্রদত্ত সার্ভার কোর ব্যবহার করে চালানো যেতে পারে বা পাইথনে নয়


ধরুন আমাদের দুটি তালিকা আছে, সেগুলো হল কোর এবং টাস্ক। কোর[i] ith সার্ভারে উপলব্ধ কোরের সংখ্যা নির্দেশ করে। এবং কার্যগুলি [i] সেই কার্য সম্পাদনের জন্য প্রয়োজনীয় কোরের সংখ্যা নির্দেশ করে। প্রতিটি কাজ শুধুমাত্র একটি সার্ভারে চালানো আবশ্যক। এবং একটি সার্ভার চালানোর জন্য একাধিক কাজ থাকতে পারে। প্রদত্ত কোর দিয়ে সমস্ত কাজ চালানো সম্ভব কিনা তা আমাদের পরীক্ষা করতে হবে।

সুতরাং, যদি ইনপুটটি কোর =[10, 7] টাস্ক =[7, 3, 2, 2, 1] এর মতো হয়, তবে আউটপুটটি সত্য হবে, কারণ আমরা প্রথমে টাস্ক[0] এবং কাজগুলি[1] রাখতে পারি কোর 10 সহ সার্ভার, এবং কোর 7 সহ দ্বিতীয় সার্ভারে অবশিষ্ট কাজ।

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

  • একটি ফাংশন সংজ্ঞায়িত করুন solve()। এটি কোর, কাজগুলি গ্রহণ করবে
  • যদি টাস্ক সেট খালি থাকে, তাহলে
    • সত্য ফেরান
  • আমি রেঞ্জ 0 থেকে কোরের আকার - 1 এর জন্য, কর
    • যদি কোর[i]>=টাস্ক[0], তাহলে
      • কোর[i] :=কোর[i] - কাজ[0]
    • যদি সমাধান (কোর, প্রথম টাস্ক ছাড়া কাজের তালিকা) সত্য হয়, তাহলে
      • সত্য ফেরান
    • কোর[i] :=কোর[i] + কাজ[0]
  • মিথ্যে ফেরত দিন

উদাহরণ

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

def solve(cores, tasks):
   if not tasks:
      return True

   for i in range(len(cores)):
      if cores[i] >= tasks[0]:
         cores[i] -= tasks[0]
         if solve(cores, tasks[1:]):
            return True
         cores[i] += tasks[0]
   return False

cores = [10, 7]
tasks = [7, 3, 2, 2, 1]
print(solve(cores, tasks))

ইনপুট

[10, 7], [7, 3, 2, 2, 1]

আউটপুট

True

  1. প্রদত্ত গ্রাফটি পাইথনে দ্বিপক্ষীয় কি না তা পরীক্ষা করার জন্য প্রোগ্রাম

  2. প্রদত্ত ম্যাট্রিক্স Toeplitz ম্যাট্রিক্স কি পাইথনে নয় তা পরীক্ষা করার জন্য প্রোগ্রাম

  3. একটি প্রদত্ত স্ট্রিং কীওয়ার্ড কিনা তা পরীক্ষা করার জন্য পাইথন প্রোগ্রাম

  4. একটি প্রদত্ত স্ট্রিং Heterogram কিনা তা পরীক্ষা করার জন্য পাইথন প্রোগ্রাম