รับอาร์เรย์จำนวนเต็มอย่างน้อยสององค์ประกอบเอาท์พุทMatrix-Vector (กำหนดไว้ด้านล่าง) ของอาร์เรย์
ในการคำนวณMatrix-Vector ขั้นแรกให้หมุนn
อาร์เรย์ขนาดอินพุตเพื่อสร้างเมทริกซ์ขนาดn x n
โดยองค์ประกอบแรกของอาร์เรย์จะตามด้วยเส้นทแยงมุมหลัก นี่เป็นส่วนเมทริกซ์ สำหรับเวกเตอร์ให้พลิกอาร์เรย์อินพุตในแนวตั้ง จากนั้นทำการคูณเมทริกซ์ปกติ ผลลัพธ์ของเวกเตอร์เป็นผลลัพธ์
ตัวอย่างเช่น,
a = [1, 2, 3]
ก่อนอื่นให้หมุนอาร์เรย์สองครั้งไปทางขวาเพื่อรับ[3, 1, 2]
และ[2, 3, 1]
จากนั้นจัดเรียงให้เป็น3x3
เมทริกซ์
[[1, 2, 3]
[3, 1, 2]
[2, 3, 1]]
จากนั้นพลิกอาร์เรย์ในแนวตั้งเพื่อสร้างเวกเตอร์
[[1, 2, 3] [[1]
[3, 1, 2] x [2]
[2, 3, 1]] [3]]
ดำเนินการคูณเมทริกซ์ปกติ
[[1, 2, 3] [[1] [[1+4+9] [[14]
[3, 1, 2] x [2] = [3+2+6] = [11]
[2, 3, 1]] [3]] [2+6+3]] [11]]
และผลลัพธ์คือ[14, 11, 11]
หรือ[[14], [11], [11]]
(คุณเลือกได้ว่าจะแบนหรือไม่)
ตัวอย่างที่ 2
a = [2, 5, 8, 3]
[[2, 5, 8, 3] [[2] [[4+25+64+9] [[102]
[3, 2, 5, 8] x [5] = [6+10+40+24] = [80]
[8, 3, 2, 5] [8] [16+15+16+15] [62]
[5, 8, 3, 2]] [3]] [10+40+24+6]] [80]]
[102, 80, 62, 80]
กฎระเบียบ
- อินพุตและเอาต์พุตสามารถสันนิษฐานว่าเหมาะสมกับชนิดจำนวนเต็มดั้งเดิมของภาษาของคุณ
- สามารถกำหนดอินพุตและเอาต์พุตในรูปแบบที่สะดวกในรูปแบบที่สะดวกใด
- ยอมรับได้ทั้งโปรแกรมหรือฟังก์ชั่น หากฟังก์ชั่นคุณสามารถส่งคืนผลลัพธ์มากกว่าการพิมพ์
- หากเป็นไปได้โปรดรวมลิงค์ไปยังสภาพแวดล้อมการทดสอบออนไลน์เพื่อให้ผู้อื่นสามารถลองใช้รหัสของคุณได้!
- ช่องโหว่มาตรฐานเป็นสิ่งต้องห้าม
- นี่คือรหัส - กอล์ฟเพื่อให้ใช้กฎการเล่นกอล์ฟตามปกติทั้งหมดและรหัสที่สั้นที่สุด (เป็นไบต์) ชนะ
(v*2)[i+j]
เคล็ดลับดี