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

Python-এ নির্দিষ্ট যোগফল (N) দিয়ে K-দৈর্ঘ্যের গ্রুপ বের করা

একটি লিস্ট থেকে K দৈর্ঘ্যের সকল অর্ডার্ড পেয়ার (রিপিটিশন সহ) বের করে যেসবের যোগফল N, সেগুলো খুঁজে বের করতে itertools.product ব্যবহার করা হয়।

উদাহরণ কোড

from itertools import product

my_list = [45, 32, 67, 11, 88, 90, 87, 33, 45, 32]
print("The list is:")
print(my_list)

N = 77
K = 2
print(f"The value of N is {N}")
print(f"The value of K is {K}")

my_result = []
for sub in product(my_list, repeat=K):
    if sum(sub) == N:
        my_result.append(sub)

print("The result is:")
print(my_result)

আউটপুট

The list is: [45, 32, 67, 11, 88, 90, 87, 33, 45, 32]
The value of N is 77
The value of K is 2
The result is:
[(45, 32), (45, 32), (32, 45), (32, 45), (45, 32), (45, 32), (32, 45), (32, 45)]

ব্যাখ্যা

  • product(my_list, repeat=K) — লিস্টের এলিমেন্টগুলো নিয়ে K-দৈর্ঘ্যের কার্টেশিয়ান প্রোডাক্ট (রিপিটিশন সহ) তৈরি করে।
  • যেহেতু লিস্টে 45 এবং 32 দুবার করে আছে, তাই (45, 32) এবং (32, 45) একাধিকবার আসছে।
  • sum(sub) == N — যোগফল চেক করে ফিল্টার।

দ্রষ্টব্য

যদি ইউনিক পেয়ার চান, তবে itertools.combinations_with_replacement বা সেট ব্যবহার করুন। product অর্ডার ম্যানেজ করে (45,32) এবং (32,45) আলাদা গণনা করে।

  1. C++ প্রোগ্রামে ডায়াগোনাল দৈর্ঘ্য দিয়ে হেক্সাগনের ক্ষেত্রফল

  2. পাইথনে দেওয়া ইনডেক্স অনুযায়ী স্ট্রিং শাফল করার প্রোগ্রাম

  3. পাইথন প্রোগ্রাম সেটের দেওয়া সাইজের সব সাবসেট বের করা

  4. পাইথনে অ্যারে গ্রুপ অনুযায়ী উল্টে ফেলার প্রোগ্রাম