1 분 소요

1. 최대공약수와 최소공배수

1) 최대공약수 (Greatest Common Denominator)

[약수]

해당 수를 나누었을때 나머지가 없는 수.

\[\begin{aligned} 8~&-> 1, 2, 4, 8\\ 12~ &-> 1, 2, 3, 4, 6, 12 \end{aligned}\]

*약수 중 가장 큰 수는 해당 수를 2로 나눈 값이기 때문에 for문을 돌 때는 끝까지 다 돌 필요 없음

[공약수]

두 수의 공통된 약수.

\[8과~~12의~~공약수~~-> 1, 2, 4\]

[최대공약수]

공약수 중 가장 큰 수.

\[8과~~12의~최대공약수~~->~ 4\]

*for문을 돌아도 되나, 유클리드 호제법을 사용한 재귀함수로 구할수 있음

2) 최소공배수 (Lowest Common Multiple)

[배수]

해당 수를 2, 3, 4… 순차적으로 배한 수.

\[\begin{aligned} 8 ~&-> 8, 16, 24, ...\\ 12~ &-> 12, 24, 36, ... \end{aligned}\]

*약수 중 가장 큰 수는 해당 수를 2로 나눈 값이기 때문에 for문을 돌 때는 끝까지 다 돌 필요 없음

[공배수]

두 수의 공통된 배수.

\[8과~~ 12의~~ 공배수 ~~-> 24, 48, ...\]

[최소공배수]

공배수 중 가장 작은 수. \(8과~~ 12의~~ 최소공배수 ~~-> 24\\24 ~= ~8~ X~ 12~ /~ 4\)

*최소공배수 = 수1 X 수2 / 최대공약수


2. 순열

1) 팩토리얼 (Factorial)

1부터 n까지를 곱한 수 \(n! = n(n-1)(n-2)...1~~(n은 자연수)\)

for(int i = n; i >= 1; i--) {
	result *= i;
}

2) 순열 (Permutation)

서로 다른 n개 중 r 개를 선택하여 나열하는 경우의 수 (순서O, 중복X) \(nPr = n! / (n-r)! = n(n-1)(n-2)...(n-r+1) ~~(단, 0<r<=n)\)

for(int i = n; i >= n - r + 1; i--) {
    result *= i;
}

2-1) 중복순열

서로 다른 n개 중 r 개를 선택하는 경우의 수 (순열과 같지만, 중복이 있는 경우)

\[n^r\]
for(int i = 1; i <= r; i++) {
	result *= n;
}
// Math 함수 활용
result = Math.pow(n, r);

2-2) 원 순열

원으로 나열하는 경우의 수 \(n! / n = (n-1)!\)

for(int i = n-1; i>=1; i--) {
    result *= i;
}

3. 조합

1) 조합 (Combination)

서로 다른 n개 중 r 개를 선택하는 경우의 수 (순서 X, 중복 X) \(nCr = n! / (n-r)! r! = nPr/r!\) *순서가 없는 것이 순열과 다른점이라 순서를 없애주기 위해 분모에 r!

1-1) 중복 조합

서로 다른 n개 중 r 개를 선택하는 경우의 수 (순서 X, 중복 O) \(nHr = n+r-1Cr = (n+r-1)!/(n-1)!r!\)


4. 지수와 로그

1) 제곱과 지수

[n제곱]

같은 수를 n번 곱함

[제곱근]

루트. a를 제곱하여 b가 되면, a는 b의 제곱근.

[지수]

\[a^x =>~ ~a: 밑,~~ x: 지수\]

2) 로그

지수의 반대. \(log_{a}b => a가~~b가~~되기~~위해~~제곱해야~~하는~~수\)


마지막 수정일시: 2022-08-25 15:17

댓글남기기