プログラマ行列の積
10912 ワード
問題の説明
2つのマトリクスが与えられます.2つのマトリックスの積とマトリックスを求めます
アイデア
解行列法に従って複文を用いただけである.
コードcpp
#include <string>
#include <vector>
using namespace std;
int calc_line(vector<vector<int>> &arr1, vector<vector<int>> &arr2,int a, int b,int m){
int res=0;
for(int i =0;i<m;i++){
res+=arr1[a][i]*arr2[i][b];
}
return res;
}
vector<vector<int>> solution(vector<vector<int>> arr1, vector<vector<int>> arr2) {
vector<vector<int>> answer;
int n = arr1.size(),m=arr2.size(),r=arr2[0].size();
for(int i = 0;i<n;i++){
answer.push_back(vector<int>());
}
for(int i = 0;i<n;i++){
for(int j = 0;j<r;j++){
answer[i].push_back(calc_line(arr1,arr2,i,j,m));
}
}
return answer;
}
Pythonコード
def calc_line(arr1,arr2,i,j,m):
ret =0
for ctr in range(m):
ret+=arr1[i][ctr]*arr2[ctr][j]
return ret
def solution(arr1, arr2):
n = len(arr1)
m = len(arr2)
r = len(arr2[0])
answer = [[] for i in range(n)]
print(answer)
for i in range(n):
for j in range(r):
answer[i].append(calc_line(arr1,arr2,i,j,m))
return answer
Reference
この問題について(プログラマ行列の積), 我々は、より多くの情報をここで見つけました https://velog.io/@coding3392/프로그래머스-행렬의-곱셈テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol