두 개 이상의 요소로 구성된 정수 배열이 주어지면 배열의 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]
좋은 트릭