[ 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 천재
  • 공지사항

    • 배고픕니다
  • 인기 글

  • 태그

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

  • 최근 글

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

티스토리툴바