কম্পিউটার

পাইথনে প্রদত্ত সেকেন্ড যোগ বা বিয়োগ করে শুধুমাত্র 12 O-clock এ ফিরে আসা সম্ভব কিনা তা পরীক্ষা করে দেখুন


ধরুন আমাদের n ভিন্ন সেকেন্ড মানের একটি অ্যারে আছে। 12'O ঘড়ি থেকে শুরু করা এবং শুধুমাত্র প্রদত্ত সেকেন্ড যোগ বা বিয়োগ করে 12 এ ফিরে যাওয়া সম্ভব কিনা তা আমাদের পরীক্ষা করতে হবে। আমরা প্রদত্ত সমস্ত সেকেন্ড ঠিক একবার ব্যবহার করতে পারি, আমরা হয় সেকেন্ড যোগ করতে পারি বা বিয়োগ করতে পারি।

সুতরাং, যদি ইনপুটটি সেকেন্ড =[40,90,50] এর মত হয়, তাহলে আউটপুটটি True হবে কারণ এটি 40 যোগ করতে পারে তারপর 90 বিয়োগ করতে পারে তারপর আবার 50 যোগ করতে পারে।

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

  • আকার :=2^(সেকেন্ড অ্যারের দৈর্ঘ্য)
  • 0 থেকে সাইজ - 1 এর মধ্যে c এর জন্য, করুন
    • যোগ করুন :=0
    • j-এর জন্য 0 থেকে সেকেন্ডের আকার - 1, করুন
      • যদি c AND (2^j) অ-শূন্য হয়, তাহলে
        • যোগ করুন :=যোগ করুন + সেকেন্ড[j]
      • অন্যথায়,
        • add :=add - সেকেন্ড[j]
    • যদি যোগ (24 * 60) দ্বারা বিভাজ্য হয়, তাহলে
      • সত্য ফেরান
  • মিথ্যে ফেরত দিন

উদাহরণ

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

def solve(seconds):
   size = 2**len(seconds)
   for c in range(size):
      add = 0
      for j in range(len(seconds)) :
         if c & (1 << j):
            add += seconds[j]
         else:
            add -= seconds[j]
      if add % (24 * 60) == 0:
         return True
   return False
seconds = [40,90,50]
print(solve(seconds))

ইনপুট

[40,90,50]

আউটপুট

True

  1. পাইথনে দ্বীপে বেঁচে থাকা সম্ভব কিনা তা পরীক্ষা করুন

  2. পাইথনে ভেক্টর এ ঘুরিয়ে এবং ভেক্টর সি যোগ করে ভেক্টর বি-তে পৌঁছানো সম্ভব কিনা তা পরীক্ষা করুন

  3. আরেকটি পাইথন স্ট্রিং যোগ করুন

  4. Python-এ N তালিকার সমস্ত সম্ভাব্য স্থানান্তর