Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- project euler
- neural network
- 전처리
- bayesian
- deep learning
- A Neural Algorithm of Artistic Style
- Gram matrix
- 베이지안
- 소인수분해
- 역전파
- 히토요시
- Python
- 수달
- 소수
- backpropagation
- 오일러 프로젝트
- 신경망
- 자전거 여행
- SQL
- 냥코 센세
- 비샤몬당
- Autoencoder
- 오토인코더
- c#
- Convolutional Neural Network
- 합성곱 신경망
- 딥러닝
- 역전파법
- CNN
- mnist
Archives
- Today
- Total
통계, IT, AI
2. Even Fibonacci numbers 본문
문제에 대한 설명은 이곳에서 확인할 수 있다.
먼저 직관적으로 떠오르는 방식으로 구현하고 이를 ver 1.0이라고 하자.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | # ver 1.0 a_n2 = 1 a_n1 = 2 answer = a_n1 # since 2 is even while True : a_n = a_n1 + a_n2 if a_n > 4000000 : break if a_n % 2 = = 0 : answer + = a_n a_n1, a_n2 = a_n, a_n1 print answer |
문제를 풀고 사람들의 풀이를 보니 더 나은 방법이 있다는 것을 알게 되었다. 이를 소개한다.
먼저 수열의 시작을 1, 1로 바꾸자. 이렇게 바꾸면 매 3번째 수가 짝수가 되어 계산을 줄일 수 있다. 1
1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144,...
위의 식을 이용한 방법을 ver 2.0이라고 하자.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | # ver 2.0 a = 2 b = 8 answer = a + b c = 4 * b + a while c < 4000000 : answer + = c a, b = b, c c = 4 * b + a print answer |
답은 4613732이다. 사람들의 생각이 놀랍다.
- 이렇게 바꾸어도 문제의 답은 바뀌지 않는다. 왜냐하면 수의 크기에만 관심이 있기 때문이다. [본문으로]
'IT > PROJECT_EULER' 카테고리의 다른 글
5. Smallest multiple (0) | 2016.01.07 |
---|---|
4. Largest palindrome product (0) | 2016.01.04 |
3. Largest prime factor (0) | 2016.01.04 |
1. Multiples of 3 and 5 (0) | 2015.12.21 |
Project Euler를 시작하다. (2) | 2015.12.20 |
Comments