일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 소수
- Python
- 신경망
- A Neural Algorithm of Artistic Style
- 소인수분해
- Convolutional Neural Network
- 합성곱 신경망
- 히토요시
- deep learning
- Gram matrix
- CNN
- 수달
- SQL
- Autoencoder
- 역전파
- backpropagation
- mnist
- c#
- 역전파법
- 냥코 센세
- bayesian
- neural network
- 전처리
- project euler
- 비샤몬당
- 오토인코더
- 오일러 프로젝트
- 베이지안
- 딥러닝
- 자전거 여행
- Today
- Total
목록분류 전체보기 (94)
통계, IT, AI
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. 개요 Autoenoder를 실습하기 위하여 두가지 주제를 진행하였다. 첫번째는 의 그림 5-6을 재연하는 것이고 두번째는 Autoencoder로 사전학습을 하여 신경망의 학습이 잘 이루어지는지 확인하는 것이다. 즉, 신경망의 층이 많아지면 학습이 잘 이루어지지 않는 현상인 Gradient vanishing을 Autoencoder로 해결할 수 있는지 알아보고자 하였다. 재연을 위한 모든 코드는 깃허브의 deeplearning 폴더에 올려두었다. 실행을 위해서는 data/mnist 폴더의 mnist_loader.py를 실행하여 pkl 파일을 생성해야 한다. 2. 그림 5-6 재연 의 그림 5-6은 자기부호화기의 파라미터가 시각적으로 어떠한 경향을 갖는지 표현한 것으로 아래 그림 1과 같다. 입력층의 노..
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..
1. 개요 문제는 이곳에서 확인할 수 있다. 3797은 재미있는 수인데, 그 자체로 소수일 뿐만 아니라 왼쪽 또는 오른쪽으로 한자리씩 지워나가도 모두 소수이다. 즉, 왼쪽으로 한자리씩 지워나갈 때 각각 379, 37, 3이 되는데 모두 소수이다. 마찬가지로 오른쪽으로 지워나갈 때 각각 797, 97, 7이되며 모두 소수이다. 이와 같은 특성을 지닌 소수를 truncatable prime이라고 하며 11개만 존재한다고 한다. truncatable prime의 합을 구하는 것이 목표이다. 단, 2, 3, 5, 7, 9는 truncatable prime가 아니다. 2. 구현 ver 1.0 에라스토테네스의 체를 사용하여 소수를 찾는다. # -*- coding: utf-8 -*- import math class ..