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

পাইথনে ম্যাট্রিক্সের সকল সারির সাধারণ স্বতন্ত্র উপাদান খুঁজে বের করা

মানে cuadrado একটি m x m আকারের ম্যাট্রিক্স দেওয়া থাকলে, আমাদের সেই ম্যাট্রিক্সের সকল সারিতে সাধারণ উপাদানগুলো খুঁজে বের করতে হবে।

উদাহরণ

ইনপুট যদি নিচের ম্যাট্রিক্সের মত হয়:

13215417
1532436
15215412
1526432
21942215

আউটপুট হবে: [2, 4, 15]

সমাধানের পদ্ধতি

  1. প্রথমে প্রতিটি সারি সাজানো (sort) করা হয়।
  2. তারপর একটি পয়েন্টার অ্যারে ব্যবহার করে প্রতিটি সারির বর্তমান অবস্থান ট্র্যাক করা হয়।
  3. প্রথম সারির উপাদানগুলো একেক করে নিয়ে বাকি সারিগুলোতে খুঁজা হয়।
  4. যদি কোন উপাদান সকল সারিতে পাওয়া যায়, তবে সেটি আউটপুট করা হয়।

পাইথন কোড

def sortRows(matrix):
    n = len(matrix)
    for i in range(n):
        matrix[i].sort()

def find_common(matrix):
    n = len(matrix)
    sortRows(matrix)
    current_idx = [0] * n
    f = 0
    
    while current_idx[0] < n:
        value = matrix[0][current_idx[0]]
        present = True
        
        for i in range(1, n):
            while current_idx[i] < n and matrix[i][current_idx[i]] <= value:
                current_idx[i] += 1
            if matrix[i][current_idx[i] - 1] != value:
                present = False
            if current_idx[i] == n:
                f = 1
                break
        
        if present:
            print(value, end=", ")
        if f == 1:
            break
        current_idx[0] += 1

mat = [
    [13, 2, 15, 4, 17],
    [15, 3, 2, 4, 36],
    [15, 2, 15, 4, 12],
    [15, 26, 4, 3, 2],
    [2, 19, 4, 22, 15]
]
find_common(mat)

ইনপুট

[[13, 2, 15, 4, 17], [15, 3, 2, 4, 36], [15, 2, 15, 4, 12], [15, 26, 4, 3, 2], [2, 19, 4, 22, 15]]

আউটপুট

2, 4, 15,
  1. পাইথনে বাইনারি ট্রির সব নোডের মান যোগফল বের করা

  2. পাইথনে intersection_update() দিয়ে n সংখ্যক অ্যারেতে কমন এলিমেন্ট বের করা

  3. পাইথন প্রোগ্রাম: বাইনারি ম্যাট্রিক্সে ডুপ্লিকেট সারি খুঁজে বের করা

  4. পাইথনে পূর্ণসংখ্যা অ্যারে থেকে স্বতন্ত্র (distinct) উপাদান প্রিন্ট করার প্রোগ্রাম