목록내 개인적인 공부/수학 (6)
그냥 게임개발자

등비수열이란? 한 항과 다음 항의 비율이 같은 수열을 등비수열이라고 합니다. 예를 들어 4, 12, 36, 108 ...이라는 숫자가 있다고 보았을 때 12라는 숫자는 4로 나누었을 때 3이라는 숫자가 나옵니다. 36은 12라는 숫자로 나누었을 때 3이라는 숫자가 나오구요. 그러면 다시 4에서 3을 곱하면 12가나오죠 12에서 3을 곱하면 36이나오죠. 이렇 듯 공통비율을 가진 것들을 등비수열이라고 합니다. 모두 3배씩 증가하기 때문에 3을 공비라 하며, 첫번째 항을 초항이라고 합니다. 그렇다면 공비가 3이고 초항이 4인 등비수열이라고 표현할 수 있습니다. 등비수열에는 2개의 공식이 있습니다. 우리가 위에서 예를 들은 것을 넣어보죠. 만약 더할 숫자가 108까지 4, 12, 36, 108 이렇게 4개라고..

등차수열이란 1부터 n까지의 합을 구하는 공식이다. 시그마라 하죠. 이 등차수열을 예를들어 n = 5라고 치게 되면 5(5 + 1) / 2 = 30 / 2 = 15라는 값이 나온다. 1 + 2 + 3 + 4 + 5 = 15가 나오죠. 정확하죠? 그러면 코드로 확인해봅시다. #include using namespace std; int main() { int n = 5; int ret = 0; // 그냥 for문을 돌려 사용한 등차수열 for (int i = 1; i

에라토스테네스의 체 이분은 아주 대단하신 분이에요. 지구의 크기를 처음으로 계산하신 분이며 소수를 걸러내는 에라토스테네스의 체를 고안한 사람이기도 합니다. 그래서 우리는 에라토스테네스의 체를 배울 건데 소수가 아닌 값들에 대한 bool 배열을 만들어서 소수만을 걸러낼 수 있는 방법이 있습니다. 어우 저게 뭔소리냐. 우리가 아는 소수는 3.141592 뭐 이런거지만 소수 2를 나누었을 때 1과 2밖에 없죠? 3의 약수는요? 3도 똑같죠 1과 3 53의 약수는요? 똑같습니다 1과 53 이런 것들을 소수라고 합니다. #include #include using namespace std; const int MAX = 40; bool che[MAX + 1]; vector Eratosthenes(int max) { ..
모듈러 연산이란 a랑 b라는 숫자가 있을 때 a를 b로 나누었을 때 나머지만 필요할 때가 있습니다. 이러한 경우를 위해 우리는 % 즉 modular를 사용하게 되져 이것을 줄여서mod라고 불리는 연산자인데 a ≡ b mod n과 b ≡ c mod n은 a ≡ c mod n을 의미한다. ≡는 합동관계는 똑같다라는 소리입니다. a mod n 과 b mod n이 같다면 a ≡ b mod n이라는 소리죠. 그렇다면 아래와 같이 설명할 수 있겠죠. [ (a mod n) + (b mod n) ] mod n = (a+b) mod n과 같다라는 이야기입니다. [ (a mod n) - (b mod n) ] mod n = (a-b) mod n [ (a mod n) * (b mod n) ] mod n = (a*b) mod ..

이제 순열을 배웠기 때문에 조합을 알아봅시다. 순열은 "순서"가 있었죠? 조합은 "순서가 없습니다! 그저 n개에서 r개를 뽑는게 다입니다. 순서를 지킬 필요가 없죠. 순서를 지킨다면 nPr(Permutation) 즉 순열을 사용하면 되며, 그게 아니라면 nCr(Combination)을 사용하면됩니다. n개중에 순서없이 r을 뽑는다. 할 때, 예를 들어 3개중에 2개를 뽑는다라고 하면 n은 3이되며 r은 2가됩니다. 3! / 2!(3-2)!가 되며 3 * 2 * 1 / 2 * 1(1)이 됩니다. 그러면 분자에 2 * 1과 분모의 2 * 1은 나뉘어지어 사라지고 3 / 1 이되어 3개가 나온다라는 소리입니다. 쉽네요. 코드로 해볼까요? #include #include using namespace std; i..

요새 바빠가지구 포스팅을 잘 못했네요 호호.. 피곤에 쪄들었어요. 그래도 다시 마음잡고 열심히 공부해야죠! 사람이 12명씩 서로 2명씩 인사하면 몇 가지의 경우의 수가 나오나요? 바로 66가지의 경우의 수가 나옵니다. 경우의 수를 구할 때 보통 순열과 조합을 이용합니다. 먼저 순열부터 알아보시죠. 순열(Permutation)이란 순서가 정해진 임의의 집합을 다른 순서로 섞는 연산을 말합니다. 예를 들어 1, 2, 3이 있으면 1, 3, 2 2, 1, 3 뭐 이런식으로 말이죠. 그리고 n개의 집합 중에서 n개를 고르는 순열의 개수는 n!(팩토리얼)이라는 특징을 가지고 있습니다. 그러면 위에 예시처럼 1, 2, 3을 통해 만들 수 있는 3자리는 과연 몇 개 일까요? 123, 132, 213, 231, 312..