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

(বেস, নম্বর) পেয়ার অ্যারেতে মিল থাকা জোড়ার সংখ্যা বের করা

কईটি (x, y) পেয়ার দেওয়া আছে। x = বেস, y = সে বেসে নম্বর। লিস্টে কিছু পেয়ার একই মান নির্দেশ করতে পারে। কতগুলো মিলমান পেয়ার আছে সেটা বের করতে হবে। অবৈধ বেস-নম্বর কম্বিনেশনও থাকতে পারে।

ইনপুট: num_inputs = 2, input_arr = [(10, 15), (8, 17)] → আউটপুট: 1। ১৫ (বেস ১০) = ১৭ (বেস ৮)। একটা মিল পাওয়া গেল।

সমাধানের ধাপসমূহ

  • temp_dict := ডিফল্টডিক্ট(int)

  • প্রতিটি পেয়ারের জন্য: মান = int(str(num_val), int(num_base)); temp_dict[মান]++

  • প্রতিটি ফ্রিকোয়েন্সি value-এর জন্য: count += value * (value - 1) // 2 (nC2)

  • count রিটার্ন করুন

উদাহরণ (Python)

from collections import defaultdict

def solve(num_inputs, input_arr):
    temp_dict = defaultdict(int)
    for i in range(num_inputs):
        num_base, num_val = str(input_arr[i][0]), str(input_arr[i][1])
        temp_dict[int(num_val, int(num_base))] += 1
    cnt = 0
    for value in temp_dict.values():
        cnt += value * (value - 1) // 2
    return cnt

print(solve(2, [(10, 15), (8, 17)]))

ইনপুট

2, [(10, 15), (8, 17)]

আউটপুট

1
  1. পাইথন প্রোগ্রামে অ্যারের যোগফল বের করা

  2. পাইথন প্রোগ্রাম লিস্টে সবচেয়ে ছোট সংখ্যা বের করা

  3. পাইথন প্রোগ্রাম অ্যারেতে সবচেয়ে বড় এলিমেন্ট বের করা

  4. পাইথনে অ্যারের যোগফল বের করা