इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे।
समस्या कथन - हमें दो मैट्रिक्स दिए गए हैं, हमें उन्हें गुणा करना है और परिणाम प्रिंट करना है।
दो मैट्रिक्स को गुणा करने के लिए पहले मैट्रिक्स के कॉलम दूसरे मैट्रिक्स की पंक्तियों के समान होने चाहिए।
हर बार यह स्थिति सही मूल्यांकन होने पर गणना की जाती है।
आइए नीचे कार्यान्वयन में अवधारणा का निरीक्षण करें।
दृष्टिकोण 1 - ब्रूट-फोर्स विधि
उदाहरण
A = [[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]
B = [[5, 3, 3],
[6, 5, 4],
[0, 2, 0]]
result = [[0, 0, 0],
[0, 0, 0],
[0, 0, 0]]
# पंक्ति के अनुसार पुनरावृति
for i in range(len(A)):
# कॉलम के अनुसार पुनरावृति
for j in range(len(B[0])):
# पंक्तियों के अनुसार पुनरावृति
for k in range(len(B)):
result[i][j] += A[i][k] * B[k][j]
for ele in result:
print(ele)
आउटपुट
[17, 19, 11] [50, 49, 32] [83, 79, 53]
दृष्टिकोण 2 - zip फ़ंक्शन का उपयोग करना
उदाहरण
A = [[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]
B = [[5, 3, 3],
[6, 5, 4],
[0, 2, 0]]
# बिल्ट-इन zip फ़ंक्शन का उपयोग करना
result = [[sum(a * b for a, b in zip(A_row, B_col))
for B_col in zip(*B)]
for A_row in A]
for ele in result:
print(ele)
आउटपुट
[17, 19, 11] [50, 49, 32] [83, 79, 53]
निष्कर्ष
इस लेख में, हमने सीखा है कि दो मैट्रिक्स को कैसे गुणा किया जाए।