ในวิชาคณิตศาสตร์การคูณเมทริกซ์หรือผลิตภัณฑ์เมทริกซ์เป็นการดำเนินการแบบไบนารีที่สร้างเมทริกซ์จากสองเมทริกซ์ คำจำกัดความถูกกระตุ้นด้วยสมการเชิงเส้นและการแปลงเชิงเส้นบนเวกเตอร์ซึ่งมีการใช้งานมากมายในคณิตศาสตร์ประยุกต์ฟิสิกส์และวิศวกรรม รายละเอียดเพิ่มเติมหาก A คือเมทริกซ์ n × m และ B เป็นเมทริกซ์ m × p ผลิตภัณฑ์เมทริกซ์ AB ของพวกเขาคือเมทริกซ์× n ซึ่ง m รายการข้ามแถว A ถูกคูณด้วยรายการ m ลง a คอลัมน์ของ B และสรุปเพื่อสร้างรายการของ AB เมื่อการแปลงเชิงเส้นสองครั้งแสดงด้วยเมทริกซ์ดังนั้นผลิตภัณฑ์เมทริกซ์จะแสดงองค์ประกอบของการแปลงสองครั้ง
ที่มา: Wikipedia
กล่าวอีกนัยหนึ่งคือการคูณเมทริกซ์สองตัวอย่างเช่น:
1 2 3 1 4
2 3 4 × 3 1 =
3 4 5 4 6
ก่อนจะแถวจำนวน 1 ในเมทริกซ์ครั้งแรกจำนวน 1 คอลัมน์ในเมทริกซ์ที่สองและคูณ1
โดย1
, 2
โดย3
และโดย3
4
1 × 1 = 1
2 × 3 = 6
3 × 4 = 12
ตอนนี้เพิ่มเข้าด้วยกันเพื่อรับรายการแรกของคุณ:
1 2 3 1 4 19
2 3 4 × 3 1 =
3 4 5 4 6
สำหรับหมายเลขที่สองในคอลัมน์แรกของผลลัพธ์คุณจะต้องใช้หมายเลขแถว 2 แทนหมายเลขแถว 1 และทำสิ่งเดียวกัน
1 × 2 = 2
3 × 3 = 9
4 × 4 = 16
= 27
หลังจากที่คุณทำทั้งคอลัมน์แรกผลลัพธ์จะเป็นดังนี้:
1 2 3 1 4 19
2 3 4 × 3 1 = 27
3 4 5 4 6 35
ตอนนี้ทำสิ่งเดียวกันซ้ำอีกครั้ง แต่นำคอลัมน์ที่สองมาแทนที่คอลัมน์แรกทำให้:
1 2 3 1 4 19 24
2 3 4 × 3 1 = 27 35
3 4 5 4 6 35 46
งานของคุณ
กำหนดเมทริกซ์สองตัว (ขนาดสูงสุด 200x200) ซึ่งมีตัวเลขอยู่ในช่วง -10000 ถึง 10,000 โดยที่จำนวนคอลัมน์ในคอลัมน์แรกเท่ากับจำนวนแถวในวินาทีคูณหนึ่งโดยหนึ่ง (การคูณเมทริกซ์ไม่ใช่แบบสลับ)
คุณอาจรับอินพุตและให้เอาต์พุตเป็นอาร์เรย์ของอาร์เรย์ (หรือเทียบเท่า), เมทริกซ์ (หากภาษาของคุณมีรูปแบบนั้น) หรือสตริงหลายบรรทัด
คุณไม่สามารถใช้บิวด์อินใด ๆ สำหรับการคูณเมทริกซ์
กรณีทดสอบ
1 2 1 2 3 4 5 13 16 19 22 25
3 4 × 6 7 8 9 10 = 27 34 41 48 55
5 6 41 52 63 74 85
2 3 3 5 15 13
3 4 × 3 1 = 21 19
5 3 11 27
1 3 1 3 7 15
9 3 × 2 4 = 15 39
1 -1000 -1999 -3997
จำไว้ว่านี่คือcode-golfดังนั้นโค้ดที่มีจำนวนไบต์น้อยที่สุดจะเป็นผู้ชนะ