[ Python ] 파이썬 행렬의 곱셈 코드 | 파이썬 정방행렬 곱셈

2021. 1. 7. 17:04·Archive/Develop
728x90
반응형

 

 

이 포스팅은 구름edu 의 파이썬으로 배우는 알고리즘 강의를 기반으로 코드를 작성했음을 밝힙니다.

edu.goorm.io/learn/lecture/22654/%ED%8C%8C%EC%9D%B4%EC%8D%AC%EC%9C%BC%EB%A1%9C-%EB%B0%B0%EC%9A%B0%EB%8A%94-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EA%B8%B0%EC%B4%88

 

파이썬으로 배우는 알고리즘 기초 - 구름EDU

실행 가능한 파이썬 소스 코드로 실용적으로 배우는 알고리즘

edu.goorm.io

 

 

 

 

 

문제 : 두 n X n 행렬의 곱을 구하시오. ( 정방행렬 곱셈)

  - A = [[2,3],[4,1]]

  - B = [[5,7],[6,8]]

  - C = AxB

 

출력 사례 : [[28,38],[26,36]]

 

 

 

 

 

-----------------------------------------------------------------------

 

 

 

알고리즘에 대해 생각 하기 전,

 

 

C=[[0]*n for _ in range(n)]

 

 

 

파이썬을 접한지 얼마 되지 않으신 분들은 위의 코드가 해석이 조금 힘들 수도 있다고 생각해,

저 코드부터 설명드리겠습니다.

 

 

만약 n 이 2 라면, 코드의 빨간색 부분이 2번 반복되어 [0,0] 이라는 리스트를 만들 것입니다.

그리고 이것을 for _ in range(n) 이 2번 반복하게 되어 마침내 [[0,0],[0,0]] 이라는 행렬을 만듭니다.

 

 

 

 

행렬의 곱셈 문제를 풀 때는 당연히 행렬의 곱셈이 어떤 식으로 이루어지는지 알아야겠죠?

 

 

 

행렬의 곱은 다음과 같이 이루어집니다.

 

 

 

 

사진 출처 : https://m.blog.naver.com/PostView.nhn?blogId=dhkdwnddml&logNo=220277510428&proxyReferer=https:%2F%2Fwww.google.com%2F

 

 

 

 

 

 

본격적으로 코드를 작성하려면, 아까 제가 위에서 설명한 코드로 C 를 초기화 해주며 시작하면 됩니다.

 

 

 

 

 

def matrixmult(A,B):
    n = len(A)
    C=[[0]*n for _ in range(n)]
    for i in range(n):
        for j in range(n):
            for k in range(n):
                C[i][j]+=A[i][k]*B[k][j]
    return C


A = [[2,3],[4,1]]
B = [[5,7],[6,8]]

print('A = ',A)
print('B = ',B)
C=matrixmult(A,B)
print('C = ',C)
728x90
반응형

'Archive > Develop' 카테고리의 다른 글

[ Python ] 파이썬 피보나치 수열(Fibonacci)코드  (0) 2021.01.07
[ Python ] 파이썬 이분 검색(Binary Search) 코드 | 순차 탐색 vs 이분 검색  (0) 2021.01.07
[ Python ] 파이썬 교환정렬 코드 | 파이썬에서 swap 하기  (0) 2021.01.07
[ Python ] 파이썬 순차 탐색 문제 코드 | 순차 탐색 알고리즘 | 파이썬 알고리즘  (0) 2021.01.07
포스팅 할 주제들  (0) 2021.01.03
'Archive/Develop' 카테고리의 다른 글
  • [ Python ] 파이썬 피보나치 수열(Fibonacci)코드
  • [ Python ] 파이썬 이분 검색(Binary Search) 코드 | 순차 탐색 vs 이분 검색
  • [ Python ] 파이썬 교환정렬 코드 | 파이썬에서 swap 하기
  • [ Python ] 파이썬 순차 탐색 문제 코드 | 순차 탐색 알고리즘 | 파이썬 알고리즘
코뮤(commu)
코뮤(commu)
코딩으로 커뮤니케이션하는 코뮤입니다 😎
  • 코뮤(commu)
    코뮤(COMMU)
    코뮤(commu)
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Archive
        • Hacking
        • Develop
        • ETC
      • Algorithm
      • DB&Infra
      • ETC
      • Node
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • IT지식보따리
    • IT가 맛있다
    • IT 천재
  • 공지사항

    • 배고픕니다
  • 인기 글

  • 태그

    백준 파이썬
    비박스
    파이썬 기초 문제
    javascript
    코드업 기초
    코드업 파이썬 기초 100제
    파이썬 기초
    파이썬 백준
    자바스크립트
    docker
    보안뉴스
    Django
    oracle db
    Oracle
    백준 풀이
    파이썬
    C++
    자바스크립트 객체
    Python
    카카오 100일 프로젝트
    장고
    오라클
    자바스크립트 API
    Codeup
    Git
    백준 문제풀이
    백준
    코드업
    파이썬 알고리즘
    파이썬 문제
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
코뮤(commu)
[ Python ] 파이썬 행렬의 곱셈 코드 | 파이썬 정방행렬 곱셈
상단으로

티스토리툴바