행렬 멱법을 이용한 피보나치 값 구하기
행렬 멱법이 무엇인지 모르신다면 여기로 이번 포스팅에서는 행렬 멱법을 이용해 $n$ 번째 피보나치 값을 구하는 방법에 대해 말해보고자 합니다. 피보나치 숫자 피보나치 숫자들은 다들 아시다시피 다음과 같은 정수 나열이죠. $$ 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, \dotsc $$ 수식으로 적자면 $F_n$ 는 $n$ 번째 피보나치 숫자라고 정의하겠습니다. 그렇다면, $$F_n = F_{n-1} + F_{n-2}$$ 이 되고, 초기값은 $$F_0 = 0, F_1 = 1$$ 으로 정합니다. 숫자 $n$ 이 정해지면 $n$번째 피보나치 숫자를 출력합니다. 입력값 : n = 2 출력값 : 1 입력값 : n = 9 출력값 : 34 어떤 방법들이 있을까요? 총 4개의 방..
python List 조작법 : Extended Slices
확장된 슬라이스 (Extended Slices) Python 1.4 이후로 부터, list 를 슬라이스할때 syntax 부분에 "step" 또는 "stride" (큰걸음) 이라는 3 번째 옵션을 지원하게 되었습니다. 예를 들어 L[1:10:2],L[:-1:1],L[::-1] 와 같은 syntax를 작성하는것이 가능합니다. 이 "step" 이란것은 무슨 의미일까요? 다음 예제를 통해 바로 이해하실 수 있을겁니다. >>> L = range(10) >>> L[::2] [0, 2, 4, 6, 8] L[:] 은 [0,1,2,3,4,5,6,7,8,9] 를 가지고 있지만 2칸씩 띄어서 List를 만들고자 했으므로 L[::2] 가 되고 [0, 2, 4, 6, 8]가 되네요. 이 "step" 은 음수로도 쓸 수 있습니다..