ধরুন আমাদের m x n এর একটি বাইনারি ম্যাট্রিক্স আছে, আমাদের ম্যাট্রিক্সে বিশেষ অবস্থানের সংখ্যা বের করতে হবে। একটি অবস্থান (i,j) একটি বিশেষ অবস্থান যখন mat[i,j] =1 এবং সারির i এবং কলাম j এর অন্যান্য সমস্ত উপাদান 0 হয়।
সুতরাং, যদি ইনপুট মত হয়
1 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | ৷0 | 0 |
0 | 0 | 0 | 1 | ৷1 | ৷
0 | 1 | ৷0 | 0 | 0 |
তাহলে আউটপুট হবে 3, এখানে বিশেষ অবস্থানগুলি হল (0, 0), (1,2) এবং (3,1)।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
-
বিশেষ :=0
-
ম্যাট্রিক্সের 0 থেকে সারি গণনার রেঞ্জের জন্য, করুন
-
যদি সারি ম্যাট্রিক্স[i]-এ 1s-এর সংখ্যা 1 হয়, তাহলে
-
numOfOne :=0
-
indexOfOne :=ম্যাট্রিক্সে 1 এর অবস্থান[i]
-
ম্যাট্রিক্সের 0 থেকে কলামের আকারের মধ্যে j এর জন্য, করুন
-
যদি ম্যাট্রিক্স[j, indexOfOne] 1 এর মত হয়, তাহলে
-
numOfOne :=numOfOne + 1
-
-
যদি numOfOne> 1 হয়, তাহলে
-
লুপ থেকে বেরিয়ে আসুন
-
-
-
যদি numOfOne 1 এর মত হয়, তাহলে
-
বিশেষ :=বিশেষ + 1
-
-
-
-
রিটার্ন স্পেশাল
উদাহরণ (পাইথন)
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
def solve(matrix):special =0 for i in range(len(matrix)):if matrix[i].count(1) ==1:numOfOne =0 indexOfOne =matrix[i].index(1 ) রেঞ্জে j এর জন্য(len(matrix)):if matrix[j][indexOfOne] ==1:numOfOne +=1 যদি numOfOne> 1:ব্রেক যদি numOfOne ==1:বিশেষ +=1 রিটার্ন স্পেশালম্যাট্রিক্স =[[1 ,0,0,0,0], [0,0,1,0,0], [0,0,0,1,1], [0,1,0,0,0]]মুদ্রণ(সমাধান( ম্যাট্রিক্স))
ইনপুট
<পূর্ব>[[1,0,0,0,0],[0,0,1,0,0],[0,0,0,1,1],[0,1,0,0,0 ]]আউটপুট
3