Loading...

컴퓨터가 실수를 연분수 표현(continued fraction)으로 나타내는 방법

1. 유리수의 continued fraction continued fraction은 실수를 수렴하는 유리수의 수열로 표현하는 것이다. 이는 problem solving에서 유용할 수 있는데, 쉽게 계산될 수 있으며, 실수의 최적 유리수 근사를 찾는데 효과적으로 사용될 수 있어서 그렇다. 게다가 정수론에서 유용하게 사용되는 유클리드 알고리즘과 연관되어있다. 어떤 정수 $a_{0}, a_{1}, ..., a_{k}$에 대하여, $a_{1}, a_{2}, ... , a_{k}$가 1이상의 자연수일때, $$r = a_{0} + \frac{1}{a_{1} + \frac{1}{... + \frac{1}{a_{k}}}}$$를 유리수 r의 연분수 표현(continued fraction)이라고 부른다. 이를 r을 간단하..

C++ 알고리즘 기초9 -사칙연산 배우기-

1. 사칙연산 C++에서 사용되는 사칙연산 덧셈, 뺄셈, 곱셈, 나눗셈은 각각 +,-,*,/으로 구할 수 있다. #include using namespace std; int main() { int a = 9, b = 4; cout

2022. 12. 9. 03:55

인공신경망 Perceptron 효과적으로 출력값을 계산하는 방법은?

1. 문제 25341번: 인공 신경망 (acmicpc.net) 25341번: 인공 신경망 첫째 줄에 입력층의 입력 크기 $N$, 은닉층의 인공 신경 개수 $M$, 출력값을 계산해야 하는 횟수 $Q$가 공백으로 구분되어 주어진다. $(1 \leq N,M,Q \leq 2\,000)$ 둘째 줄부터 $M$번째 줄에 걸쳐 은닉층의 www.acmicpc.net 인공 신경망의 가중치와 편향이 주어지고 입력값이 주어질때 출력값을 계산하면 되는 문제 2. 풀이 이게 어렵나? 생각하고 덤볐는데 엄청 어렵네..? 처음에는 그냥 문제에서 주어진대로... 정직하게 구현했다 인공신경망 m줄을 입력받고... 입력되는 가중치 개수, 입력값 순서들, 가중치들, 편향으로 주어지니까 이걸 짤라서 리스트에 나눠 담았지 from sys im..

100번할 것을 1번만에 하는 나눗셈 연산 -시험 감독-

1. 문제 13458번: 시험 감독 (acmicpc.net) 13458번: 시험 감독 첫째 줄에 시험장의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 각 시험장에 있는 응시자의 수 Ai (1 ≤ Ai ≤ 1,000,000)가 주어진다. 셋째 줄에는 B와 C가 주어진다. (1 ≤ B, C ≤ 1,000,000) www.acmicpc.net 각 시험장의 응시자 수가 주어지고, 총 감독관은 b명, 부 감독관은 c명만큼 감시가 가능하다. 모든 시험장의 응시자들을 감시할 수 있는 필요한 감독관의 최솟값을 구하는 프로그램을 작성 2. 풀이 문제 설명이 아쉽긴한데 총 감독관은 필수로 1명을 배치해야하고, 부 감독관은 0명 이상을 배치해야한다 총 감독관 1명을 배치하면, b명을 감시할 수 있으니..

2022. 8. 22. 20:33

중위표기법을 후위표기법으로 바꾸고 이를 계산하는 알고리즘 2편

1. 후위표기식 계산 중위표기식을 알고리즘에 의해 후위표기식으로 바꾼 뒤에 이를 계산하는 방법은? 앞에서부터 차례로 읽어나가다가, 연산자를 만난다면, 바로 앞에 있는 두개의 피연산자를 해당 연산자로 계산하면 된다 특히 주의할 점이 -와 /인데, 먼저 꺼낸 피연산자가 오른쪽에 위치해야한다. 2. 알고리즘 후위표기식을 앞에서부터 차례로 읽어나간다. 2-1) 피연산자를 만나면 스택에 push 2-2) 연산자를 만나면 피연산자를 스택에서 차례로 pop하여 2개를 pop하면 연산을 수행하고, 결과를 다시 스택에 push한다. 2-3) 수식을 전부 읽으면 마지막에 남은 스택을 pop하여 출력 3. 예시를 통한 설명 피연산자 6,5,2,8을 읽어들이면 차례로 stack에 push합니다 피연산자 -를 읽으면, 스택에서..

2022. 8. 22. 20:07

사칙연산 중위표기법을 후위표기법으로 바꾸는 알고리즘 1편

1. 문자열로 된 수식 문자열로 된 계산 수식은 어떻게 계산할까? eval()함수는 문자열 수식을 받으면 계산해주는데 어떻게 계산하는 것일까? 스택을 이용하면 이러한 문자열 수식을 계산할 수 있다 1-1) 중위표기법의 수식을 후위표기법으로 변경 1-2) 후위표기법 수식을 스택을 이용하여 계산 2. 중위표기법과 후위표기법 중위표기법(infix)은 연산자를 피연산자의 가운데 표기하는 방식 예) A + B 후위표기법(postfix)은 연산자를 피연산자 뒤에 표기하는 방식 예) AB+ 컴퓨터가 후위표기법으로 계산을 한다고한다 중위표기법은 계산을 위해서는 앞에서부터 끝까지 읽으면서 왔다갔다해야 수식을 다 계산할 수 있음 왜냐하면 괄호, 사칙연산의 우선순위 때문에 반대로 후위표기법은 한번만 앞에서 끝까지 읽으면 계..