전체 글
-
[그래프 이론] 그래프 정의 및 성질수학 2024. 6. 14. 18:43
그래프의 역사그래프 이론은 저명한 수학자 레온하르트 오일러(Leonhard Euler)에 의해 고안되었습니다. 오일러는 '쾨니히스베르크의 다리 문제'를 해결하기 위해 처음으로 그래프 이론을 사용했다고 합니다. 쾨니히스베르크의 다리 문제는 다음과 같습니다. 당시 쾨니히스베르크에는 7개의 다리가 있었습니다. 모든 다리를 한 번씩만 건너서 처음 출발했던 장소로 되돌아 오는 게 가능한지에 대한 문제가 '쾨니히스베르크의 다리 문제' 입니다. 오일러는 이 문제를 해결하면서 그래프의 개념을 도입했습니다. 위 문제의 답은 불가능하다입니다. 각 정점에서 들어오는 간선과 나가는 간선의 수가 동일해야 , 즉 모든 정점의 차수가 짝수여야 처음 출발했던 정점으로 되돌아 올 수 있습니다. 그래프 정의 및 성질 그래프(Grap..
-
유클리드 호제법(Euclidean algorithm)알고리즘 2024. 6. 9. 14:53
유클리드 호제법은 두 정수의 최대공약수(Greatest common divisor: GCD)를 구하는 효율적이고 간단한 알고리즘입니다. 기원전 300년경 그리스 수학자 유클리드(Euclid)가 편찬한 유클리드 원론(기하학 원론)에서 처음 소개돼었습니다. 가장 오래된 알고리즘으로 알려져 있습니다.두 정수 \(a\)와 \(b\)가 주어졌고 \(a\)는 \(b\)보다 크다고 하겠습니다. \(\left(a, b\in \mathbb{Z}이고\;\;a \gt b\right)\). \(a\)를 \(b\)로 나누면 \(a \div b = q\)이고 이는 \(a = bq + r\) 이렇게 다시 쓸 수 있습니다. 여기서 \(q\)는 몫(quotient)이고 \(r\)은 나머지(remainder)입니다. 여기서 \(a\)와..
-
검사 범위 최소화하여 약수 구하기알고리즘 2024. 6. 8. 22:22
자연수 \(N\)의 약수를 구해보자.먼저 \(i=1,2,3,4\cdots\left \lfloor \sqrt N \right \rfloor\)일 때, \(N\)을 \(i\)로 나눕니다. 만약 \(N\;mod\;i = 0\) 이라면 \(i\)는 \(N\)의 약수. $$i\;|\;N$$ \(i\)가 약수라면 \(N/i\)도 약수입니다. $$\frac{N}{i}\;|\;N$$ 그 이유는 \(N\)의 약수들은 항상 쌍으로 존재하기 때문입니다. 예를 들어 \(12\)가 \(3\)로 나누어 떨어지면 \(3\)도 \(12\)의 약수이고, \(\frac{12}{3}\)도 \(N\)의 약수입니다. 이 두 약수는 곱해서 \(12\)이 됩니다. $$ i\times \frac{N}{i} = N $$ 범위가 \(\left \l..
-
위치적 기수법(Positional Numeral System)과 진법 변환수학 2024. 6. 7. 15:55
기수법(記數法, Numeral System)은 수를 기호나 숫자로 표현하는 방법이나 체계를 의미하고 한자를 풀어보면 기록할 기(記), 셈 수(數), 법 법(法)입니다. 말 그대로 숫자를 기록하는 방법이며 현대에 쓰이는 아라비아 숫자 1, 2, 3과 로마 숫자, 그리스 숫자, 이집트 숫자 모두 기수법에 해당합니다. 위치값 기수법(Positional Number System)은 기수법에 포함되는 개념입니다. 위치값 기수법에서는 수의 각 자리가 위치에 따라 다른 자릿수를 가지며, 이를 통해 숫자의 위치와 크기를 결정합니다. 위치값 기수법의 핵심은 나열된 숫자들은 위치에 따라 크기가 정해진다는 것입니다. 위치값 기수법이 아닌 기수법 중에서 대표적인 로마 숫자는 숫자의 위치는 크기에 영향을 미치지 않고 기호 ..
-
푸리에 급수 정의와 푸리에 계수 유도수학 2024. 6. 1. 17:51
푸리에 급수는 프랑스의 수학자 장 바티스트 조제프 푸리에(Jean-Baptiste Joseph Fourier)가 발견하고 개발한 급수입니다. 푸리에는 그의 연구를 통해 열전도 문제를 해결하려고 하였고, 그 과정에서 임의의 주기 함수가 삼각 함수(사인과 코사인)의 합으로 표현될 수 있음을 보였습니다. 이 결과는 1822년에 출판된 그의 저서 "열의 해석이론"(Théorie analytique de la chaleur)에서 처음 발표되었습니다. 여기서 급수란 수열 {\(a_{n} \)}의 각 항을 이렇게 차례대로 + 기호로 연결한 식을 말합니다.$$a_{1} + a_{2} + a_{3} + \cdots + a_{n}$$항의 개수가 유한한 급수를 유한급수, 항의 개수가 무한한 급수를 무한급수라 합니다. 아래 ..
-
벡터의 선형결합(linear combination)수학 2024. 5. 16. 11:42
단위벡터선형결합을 설명하기에 앞서 우선 단위벡터에 대해 설명하겠습니다. (1, 0)과 (0, 1) 좌표로 표현되고 길이가 1인 벡터를 2차원 공간의 단위벡터 또는 기본벡터라고 부릅니다.x축에 위에 놓여있는 단위벡터를 e₁ 혹은 î(i햇)이라 표현합니다.y축에 위에 놓여있는 단위벡터를 e₂ 혹은 ĵ(j햇)이라 표현합니다. 3차원 공간상의 단위벡터는 e₁ = (1, 0, 0), e₂ = (0, 1, 0), e₃ = (0, 0, 1) 입니다. 선형결합(linear combination)일차결합이라고도 불리는 선형결합을 설명하겠습니다. 우선 위키백과에 적혀있는 설명을 그대로 복사붙여넣기 해볼게요 선형 결합(線型 結合, linear combination) 또는 일차 결합(一次 結合)은 수학에서 각 항에 상..
-
[JAVA] 람다(Lambda)와 함수형 인터페이스(FunctionalInterface)자바 2022. 10. 12. 21:57
1. 람다(Lambda) 무엇일까 1-1 람다란? 람다 표현식은 메서드로 전달할 수 있는 익명 함수를 단순화한 것이라고 할 수 있다. 람다 표현식에는 이름은 없지만, 파라미터, 함수 본문, 반환 타입, 발생할 수 있는 예외 리스트는 가질 수 있다. (int a, int b) -> a + b 람다 파라미터 : 함수나 메서드의 파라미터에 해당한다. 화살표 : 화살표(->)는 람다의 파라미터와 바디를 구분한다. 람다 바디 : 함수나 메서드의 바디에 해당한다. 1-2 람다의 특징 익명 : 보통 메서드와 달리 이름이 없으므로 익명이라 표현한다. 함수 : 람다는 함수처럼 특정 클래스에 종속되지 않는다. 전달 : 람다 표현식을 메서드 파라미터에 전달하거나 변수에 저장할 수 있다. 간결성 : 익명 클래스처럼 자질구레한..
-
AOP(Aspect-Oriented Programming)란? - 스프링 AOP와 프록시스프링 2022. 9. 7. 15:30
안녕하세요! 이번 포스트에서는 AOP의 개념과 스프링의 AOP 방식에 대해서 작성해보겠습니다. AOP란? AOP는 흔히 스프링의 3대 프로그래밍 모델(DI, AOP, PSA) 중 하나로 알려져있으며 Aspect-Oriented Programming 약자입니다. 이걸 그대로 번역하면 관점 지향 프로그래밍입니다. 그럼 관점(Ascpect)란 무엇일까요?! 어플리케이션 코드에서는 로깅, 보안, 트랜잭션 등 비즈니스 로직과는 상관없이 반복적으로 등장하는 부가적은 코드들이 존재합니다. 객체지향적으로 잘 설계된 코드들도 이런 부가적인 코드들을 완벽히 독립시키기에는 부족한 부분이 있었습니다. 이런 부가기능들을 어떻게 모듈화할 것인지 생각해온 사람들은 기존의 전통적인 객체지향 설계 패러다임으로는 한계가 있다고 생각했었..