কম্পিউটার

পাইথনে উপসেট


ধরুন আমাদের সংখ্যার একটি সেট আছে; আমাদের সেই সেটের সমস্ত সম্ভাব্য উপসেট তৈরি করতে হবে। এটি পাওয়ার সেট নামেও পরিচিত। সুতরাং সেটটি যদি [1,2,3] এর মতো হয় তবে পাওয়ার সেটটি হবে [[], [1], [2], [3], [1,2], [1,3], [2] ,3], [1,2,3]]

আসুন ধাপগুলো দেখি -

  • আমরা পুনরাবৃত্তিমূলক পদ্ধতি ব্যবহার করে এটি সমাধান করব। তাই যদি পুনরাবৃত্ত পদ্ধতির নাম বলা হয় solve(), এবং এটি সংখ্যার সেট (সংখ্যা), অস্থায়ী সেট (টেম্প), রেস এবং ইনডেক্স নেয়
  • সলভ() ফাংশন নিচের মত কাজ করবে -
  • যদি সূচী =সংখ্যার দৈর্ঘ্য, তাহলে টেম্পের মতো একটি তালিকা তৈরি করুন এবং রেস-এ ঢুকিয়ে রিটার্ন করুন
  • temp[সূচক] :=0
  • সমাধান করুন(সংখ্যা, তাপমাত্রা, রেস, সূচক + 1)
  • temp[সূচক] :=1
  • সমাধান করুন(সংখ্যা, তাপমাত্রা, রেস, সূচক + 1)
  • প্রধান ফাংশনটি নিচের মত হবে -
  • res :=একটি খালি তালিকা
  • সংখ্যার মতোই আকারের অস্থায়ী তালিকা তৈরি করুন এবং এটি 0 দিয়ে পূরণ করুন
  • কল সমাধান (সংখ্যা, তাপমাত্রা, রেস, 0)
  • main_res :=একটি খালি তালিকা
  • temp_res
      -এ সমস্ত তালিকার জন্য
    • temp :=খালি তালিকা
    • এর জন্য i :=0 থেকে তালিকার দৈর্ঘ্য
      • যদি তালিকা[i] =1 হয়, তাহলে temp-এ nums[i] ঢোকান
    • মেইন_রেস এ টেম্প ঢোকান
  • প্রধান ফলাফল ফেরত দিন

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

উদাহরণ

শ্রেণীর সমাধান(অবজেক্ট):def সাবসেট(self, nums):temp_result =[] self.subsets_util(nums,[0 for i in range(len(nums))],temp_result,0) main_result =[] এর জন্য temp_result-এ তালিকা:temp =[] i in range(len(lists)):if lists[i] ==1:temp.append(nums[i]) main_result.append(temp) main_result def subsets_util(self, nums,temp,result,index):if index ==len(nums):result.append([i for i in temp]) #print(temp) রিটার্ন temp[index] =0 self.subset_util(nums,temp, ফলাফল, সূচী + 1) টেম্প প্রাক> 

ইনপুট

[1,2,3,4]

আউটপুট

<প্রে>[[], [৪], [৩], [৩, ৪], [২], [২, ৪], [২, ৩], [২, ৩, ৪], [১], [ 1, 4], [1, 3], [1, 3, 4], [1, 2], [1, 2, 4], [1, 2, 3], [1, 2, 3, 4]

  1. পাইথনে বাইনারি গাছের সর্বোচ্চ গভীরতা

  2. পাইথনে Sqrt(x)

  3. issuperset() পাইথনে

  4. কলযোগ্য() পাইথনে