inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

파이썬으로 배우는 알고리즘 기초

분할정복에서 큰 정수 곱셈 다른 계산법?

319

딥워터

작성한 질문수 1

1

안녕하세요! 이제 분할정복 파트를 완강했습니다. 

재밌게 잘 설명해 주셔서 너무 흥미롭게 듣고 있습니다.

큰 정수 곱셈 부분을 듣다가 문득 떠오른 생각인데

이러한 문제를 행렬로 해결할 수 있을지 의문점이 들었습니다.

혹시 행렬을 이용해서 더 빠르게 풀수 있는 방법이 있을까요? 

algorithm

답변 1

0

주니온

아주 재미있는 발상을 해 보셨네요.

관련 논문을 좀 더 찾아봐야겠지만, 즉답을 드리자면, 
행렬을 이용하는 방법으로는 더 빠르게 풀 수 있을 것 같지 않습니다.

But, 

이 질문을 보니 알고리즘을 제대로 공부할 수 있는 탁월한 자질을 가지셨습니다.
발상의 전환을 해보는 것에서 알고리즘의 진정한 묘미를 느끼실 수 있으실 겁니다.

1. 아이디어

큰 정수의 곱셈을 행렬을 이용해서 더 빠르게 풀 수 있을까?

2. 전개

큰 정수의 곱셈은 두 개의 1차원 벡터의 곱셈(내적 또는 외적)을 확장한 것과 같다.
큰 정수의 표현을 행렬로 바꾸면 행렬 곱셈으로 치환할 수 있지 않을까?

4. 시도

일반적인 행렬 곱셈은 n^3이지만, 쉬트라센 알고리즘에 의해 n^2.5 이하로 단축될 수 있다.
큰 정수의 곱셈과 시간 복잡도를 비교해 보면 더 나은 것 같기도 하지만,
큰 정수 곱셈 알고리즘보다 빠를 것 같지 않지만, 한 번 시도해 보자.

5. 검증

직접 해보니 시간 복잡도는 이렇게 나오고, 실행 속도는 이렇게 나오네?
실패다. 하지만, 이 방식을 다른 문제에 적용해 볼 수 있지 않을까?

요렇게 공부를 해 보시면, 대학원 수준의 논문을 쓸 수 있게 되실 것 같습니다.
꼭 한 번 도전해 보시길 응원하겠습니다!

문제 생각 몇분정도가 좋을까요

0

256

1

self

2

640

1

Two sum

2

336

1

Test_queue 출력 오류

1

547

2

int 범위

2

323

1

시간복잡도

1

1373

1

심화 과정 커리큘럼 질문

1

526

1

Algorithm 3.5 : Print Shortest Path 관련 질문 (플로이드 알고리즘)

0

274

0

코드 중간에 오류 보고 합니다!

1

236

1

쉽지 않네요 ㅠ

0

335

1

분기 한정법과 배낭 문제

0

392

1

배낭문제와 동적계획법

0

511

1

최적 이진검색트리 관계식

0

412

1

플로이드 알고리즘

0

426

2

n-Queens

0

223

1

큰정수의 계산법 강의에서 몫과 나머지

0

228

1

퀵정렬

0

206

1

1.1알고리즘 이란 에서 교환정렬 파이썬으로 바꿀때

0

303

1

마지막 matrixmult 파라미터 값

0

258

2

내장함수에 언더스코프의 의미

0

648

2

def mergesort(S) 부분이 이해가 가지 않습니다.

0

281

3

이진탐색 vs 합병정렬

1

450

2

0번째 왜 자꾸 버리시는건가요?

2

341

1

리스트의 합

0

181

1