ধরুন আমাদের একটি বাইনারি ম্যাট্রিক্স আছে; আমাদের ম্যাট্রিক্সের উপাদানগুলির সংখ্যা খুঁজে বের করতে হবে যা নিম্নলিখিত নিয়মগুলি অনুসরণ করে −
-
ম্যাট্রিক্স[r, c] =1
-
ম্যাট্রিক্স[r, j] =0 প্রতিটি j এর জন্য যখন j c এর সমান নয় এবং ম্যাট্রিক্স[i, c] =0 প্রতিটি i এর জন্য যখন i r এর সমান নয়।
সুতরাং, যদি ইনপুট মত হয়
0 | 0 | 1 |
1 | 0 | 0 |
0 | 1 | 0 |
তাহলে আউটপুট হবে 3, কারণ আমাদের সেল আছে (0,2), (1,0) এবং (2,1) যেগুলো মানদণ্ড পূরণ করে।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
-
যদি ম্যাট্রিক্স খালি হয়, তাহলে
-
রিটার্ন 0
-
-
সারি :=ম্যাট্রিক্সে সমস্ত সারি এন্ট্রির যোগফলের একটি তালিকা
-
col :=ম্যাট্রিক্সে সমস্ত কলাম এন্ট্রির যোগফলের একটি তালিকা
-
m :=ম্যাট্রিক্সের সারি গণনা
-
n :=ম্যাট্রিক্সের কলাম গণনা
-
res :=0
-
0 থেকে m - 1 রেঞ্জের জন্য, করুন
-
0 থেকে n - 1 পরিসরে c এর জন্য, করুন
-
যদি ম্যাট্রিক্স[r, c] 1 হয় এবং সারি[r] 1 হয় এবং col[c]ও 1 হয়, তাহলে
-
res :=res + 1
-
-
-
-
রিটার্ন রিটার্ন
উদাহরণ
আরও ভালোভাবে বোঝার জন্য আসুন নিম্নলিখিত বাস্তবায়ন দেখি
def solve(matrix): if not matrix: return 0 row = [sum(r) for r in matrix] col = [sum(c) for c in zip(*matrix)] m, n = len(matrix), len(matrix[0]) res = 0 for r in range(m): for c in range(n): if matrix[r][c] == 1 and row[r] == 1 and col[c] == 1: res += 1 return res matrix = [ [0, 0, 1], [1, 0, 0], [0, 1, 0] ] print(solve(matrix))
ইনপুট
[[0, 0, 1],[1, 0, 0],[0, 1, 0]]
আউটপুট
3