행렬 A의 2 * 2의 제곱은 단지 5 배의 곱이 필요하다는 것을 보여줌으로써 O (n^log5)임을 알 수 있습니다. 지금까지는 아무런 문제가 없었지만 이후에 왜 다른 제곱 경우 (다른 n * n 크기)로 일반화 할 수 없는지 2 가지 이유를 설명하고자 할 때 다음과 같이 하나만 만들 수 있습니다.행렬의 제곱과 실행 시간
첫 번째 그 이유는 내가 예를 들어 3 * 3 행렬을 곱해서 최소한 6 배의 곱셈을한다고 결론 내렸다. 따라서 실행 시간은 적어도 O (n^log6)이고, n^epsalon은 O (n^log5) 따라서 모든 경우에 대해 O (n^log5)를 일반화 할 수는 없습니다. 이제 다른 이유가 필요하지만 두 번째 이유를 설명하는 방법을 알아낼 수 없습니다 (아이디어를 제시하기위한 힌트가 필요합니다).
고정 된 크기의 행렬을 Squaring하는 것은 고정 된 수의 곱셈 만 필요하기 때문에 시간 O (1)을 취합니다. 런타임이 O (n^log 5)라고 말하면 기술적으로는 올바르지 만 결론을 내리는 것은 잘못된 것입니다. – templatetypedef
고마워요, strassen 분해에 의해 모든 행렬 곱셈은 T (n) = 7T (n/2) + n^2이고 또한 2 * 2 행렬을 제곱함으로써 알고 있습니다. O (n^log5) 다른 경우는 T (n)> = 6T (n/2) + n^2이므로 O (n^log5)를 일반화 할 수 없음을 나타냅니다. 이제 좀 더 설명해 주시겠습니까? –
"2x2 행렬을 제곱 한 것은 O (n^log 5)임을 알고 있습니까?" 로그 5는 어디에서 왔습니까? – templatetypedef