일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 냥코 센세
- mnist
- 소인수분해
- Autoencoder
- 베이지안
- backpropagation
- 수달
- 합성곱 신경망
- 소수
- CNN
- deep learning
- SQL
- 딥러닝
- project euler
- 오토인코더
- Python
- bayesian
- 전처리
- Gram matrix
- 오일러 프로젝트
- 신경망
- c#
- 자전거 여행
- A Neural Algorithm of Artistic Style
- 비샤몬당
- neural network
- 히토요시
- Convolutional Neural Network
- 역전파
- 역전파법
- Today
- Total
목록오일러 프로젝트 (52)
통계, IT, AI
1. 47번 개요 문제는 이곳에서 확인할 수 있다. 연속한 두개의 정수 중 두개의 서로 다른 소인수를 갖는 최초의 수는 \(14=2 \times 7\), \(15=3 \times 5\)이다. 연속한 세개의 정수 중 세개의 서로 다른 소인수를 갖는 최초의 수는 \(644=2^2\times 7 \times 23 \), \(645=3\times 5 \times 43 \), \(646=2 \times 7 \times 19 \)이다. 마찬가지로 연속한 네개의 정수 중 네개의 서로 다른소인수를 갖는 최초의 수에서 가장 처음 수를 구하는 것이 문제의 목표이다. 2. 47번 구현 에라스토테네스의 체를 사용하여 소수를 구하고 그것을 사용하여 소인수분해를 하는 방법을 사용한다. # -*- coding: utf-8 -*- ..
1. 개요 문제는 이곳에서 확인할 수 있다. odd composite number는 소수가 아닌 홀수인데, 골든바흐는 odd composite number를 아래와 같이 어떤 소수 \(p\)와 어떤 수 \(k\)의 제곱의 두배의 합으로 표현할 수 있을 것이라고 추측하였다. \(9=7+2\times 1^2\)\(15=7+2\times 2^2\)\(21=3+2\times 3^2\)\(25=7+2\times 3^2\)\(27=19+2\times 2^2\)\(33=31+2\times 1^2\) 하지만 이 추측은 틀렸다. 이 추측에 맞지 않는 가장 작은 odd composite number를 찾는 것이 문제의 목표이다. 2. 구현 앞선 문제와 마찬가지로 에라스토테네스의 체를 사용하여 소수를 구한다. # -*- c..
1. 개요 문제는 이곳에서 확인할 수 있다. 양의 정수 \(n\)에 대하여 Triangle, pentagonal 그리고 hexagonal number는 다음과 같이 정의된다. Triangle \(T_n=n(n+1)/2\) 1, 3, 6, 10, 15, ... Pentagonal \(P_n=n(3n-1)/2\) 1, 5, 12, 22, 35, ... Hexagonal \(H_n=n(2n-1)\) 1, 6, 15, 28, 45, ... 이 세가지 수열은 서로 같은 수를 가질 수도 있다. 즉, \(40755=T_{285}=P_{165}=H_{143}\)이다. 40755보다 크면서 Triangle, pentagonal 그리고 hexagonal number인 수를 찾는 것이 목표이다. 2. 구현 문제의 범위를 좁..
1. 개요 문제는 이곳에서 확인할 수 있다. pentagonal number \(p_n\)은 \(n(3n-1)/2\)로 정의되며 처음 10개는 다음과 같다. 1, 5, 12, 22, 35, 51, 70, 92, 117, 145, ... 합과 차가 pentagonal number인 어떤 두 pentagonal number가 존재할때, 가장 작은 차 \(D=|P_k-P_j|\)를 구하는 것이 문제의 목표이다. 2. 구현 합은 \(P_l=P_k+P_j\)로 차는 \(P_i=P_k-P_j\)로 정의하자. 또한 \(i
1. 개요 문제는 이곳에서 확인할 수 있다. 1406357289는 0부터 9까지의 수가 한번씩 등장하는 수(0 to 9 pandigital)이다. 그리고 \(d_n\)을 \(n\)번째 자리의 수라고 하면 이 숫자의 sub-string은 다음과 같은 특징이 있다. \(d_{2}d_{3}d_{4}=406\)은 2로 나누어 떨어진다. \(d_{3}d_{4}d_{5}=063\)은 3으로 나누어 떨어진다. \(d_{4}d_{5}d_{6}=635\)은 5로 나누어 떨어진다. \(d_{5}d_{6}d_{7}=357\)은 7로 나누어 떨어진다. \(d_{6}d_{7}d_{8}=572\)은 11로 나누어 떨어진다. \(d_{7}d_{8}d_{9}=728\)은 13으로 나누어 떨어진다. \(d_{8}d_{9}d_{10}=..
1. 개요 문제는 이곳에서 확인할 수 있다. \(n\)번째 triangle number는 \(t_n=n(n+1)/2\)으로 정의된다. 그리고 어떤 단어의 각 알파벳의 순서의 합이 triangle number일때 그 단어를 triangle word라고 한다. 예를 들어 SKY의 각 알파벳의 순서의 합은 19 + 11 + 25 = 55=\(t_{10}\)이므로 SKY는 triangle word이다. 주어진 텍스트 파일에서 triangle word의 개수를 찾는 것이 목표이다. 2. 구현 어떤 수가 \(K\)가 triangle number인지 파악하기 위해서는 \(K=n(n+1)/2\)의 해 \(n\)이 정수인지 확인하면 된다. 이때, round error 등을 방지하기 위하여 sqrt 함수를 사용하지 않고 ..
1. 개요 문제는 이곳에서 확인할 수 있다. 어떤 수의 각 자리수가 1부터 \(n\)까지의 정수가 한번만 등장할 때 이 숫자를 \(n\) pandigital이라고 한다. 예를 들어 2143은 4 pandigital인데 소수이기도 하다. 이와 같이 pandigital이면서 소수인 \(n\) panditial 중 가장 큰 수를 구하는 것이 문제의 목표이다. 2. 구현 \(n\) pandigital의 정의상 확인해야 할 가장 큰 수는 987654321이다. 그런데 9 pandigital과 8 pandigital 각각은 그 자리 수의 합이 3의 배수이기 때문에 소수가 아니다. 따라서 7654321부터 문제의 조건을 확인하면 된다. 이를 이용하여 구현한다. # -*- coding: utf-8 -*- import ..
1. 개요 문제는 이곳에서 확인할 수 있다. 순환하지 않는 무한소수를 만드는 방법 중에 \(0.1234567891011\cdots\)과 같이 양의 정수를 무한히 붙여나가는 방법이 있다. \(d_n\)을 이 소수의 \(n\)번째 수라고 하자. 예를 들어 \(d_{12}=1\)이다. \(d_1 \times d_{10} \times d_{100} \times d_{1000} \times d_{10000} \times d_{100000} \times d_{1000000}\)을 구하는 것이 문제의 목표이다. 2. 구현 가장 간단한 방법은 \(i=1\)부터 적당히 큰 \(i\)까지 한번에 연결한 후 \(d_n\)을 찾는 것이다. 하지만 그 방법은 불필요한 자원의 낭비가 있으므로 \(i\)를 순차적으로 늘려가면서 \..
1. 개요 문제는 이곳에서 확인할 수 있다. 어떤 직사각형의 둘레의 길이가 \(p\)이며 각 변의 길이를 \(a, b, c\)라고 하자. 단, 모든 길이는 정수이며 \(a
1. 개요 문제는 이곳에서 확인할 수 있다. 192를 1, 2 그리고 3과 곱하면 각각 192, 384, 567이고 이 숫자들을 순서대로 연결하면 192384567이 된다. 192384567는 1부터 9까지의 숫자가 한번씩만 나오는 pandigital이며 이 숫자를 192, (1,2,3)으로 표현하자. 이와 같은 방식으로 918273645는 9, (1,2,3,4,5)로 표현할 수 있다. 1부터 9까지의 pandigital 중에 \(x\), \((1,2,\dots, n)\)으로 표현할 수 있는 가장 큰 수를 구하는 것이 목표이다. 단, \(n>1\)이다. 2. 구현 \(x\)에는 하한선과 상한선이 존재한다. 하한선은 1이며, \(n\)은 1보다 큰 정수이므로 상한선은 4자리 숫자이다. # -*- codin..