๐ฆ 9. Math & Logic puzzles
9. Math & Logic puzzles
์์
๋ชจ๋ ์์ฐ์๋ ์์์ ๊ณฑ์ผ๋ก ๋ํ๋ผ ์ ์๋ค๋ ๊ท์น์ด ์๋ค.
๊ฐ๋ถ์ฑ(divisibility)
์ด๋ค ์ x๋ก y๋ฅผ ๋๋ ์ ์์ผ๋ฉด x๋ฅผ ์์์ ๊ณฑ์ผ๋ก ๋ถํ ํ์์ ๋ ๋์ด๋๋ ๋ชจ๋ ์์๋ y๋ฅผ ์์์ ๊ณฑ์ผ๋ก ๋ถํ ํ์์ ๋ ๋์ด๋๋ ๋ชจ๋ ์์๋ค์ ๋ถ๋ถ์งํฉ์ด์ด์ผ ํ๋ค.
์์ํ๋ณ
- 2์์ n-1๊น์ง ๋ฃจํ๋ฅผ ๋๋ฉด์ ๋๋์ด์ง๋ ๊ฒฝ์ฐ๊ฐ ์๋์ง ํ์ธํด๋ณด๋ ๊ฒ
1
2
3
4
5
6
7
8
9
10
11
boolean primeNaive(int n) {
if (n < 2) {
return false;
}
for (int i = 2; i < n; i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
- ๋ฃจํ๋ฅผ n์ ์ ๊ณฑ๊ทผ๊น์ง๋ง ๋๋ ๊ฒฝ์ฐ
1
2
3
4
5
6
7
8
9
10
11
12
boolean primeNaive(int n) {
if (n < 2) {
return false;
}
int sqrt = (int) Math.sqrt(n);
for (int i = 2; i < sqrt; i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
- ์๋ผํ ์คํ ๋ค์ค์ ์ฒด
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
boolean[] sieveOfEratosthenes(int max) {
boolean[] flags = new boolean[max+1];
int count = 0;
init(flags);
int prime = 2;
while (prime <= Math.sqrt(max)) {
crossOff(flags, prime);
prime = getNextPrime(flags, prime);
}
return flags;
}
void crossOff(boolean[] flags, int prime) {
for (int i = prime * prime; i < flags.length; i += prime) {
flags[i] = false;
}
}
int getNextPrime(boolean[] flags, int prime) {
int next = prime + 1;
while (next < flags.length && !flags[next]) {
next++;
}
return next;
}
1๋ถํฐ max๊น์ง์ ๋ฆฌ์คํธ์์ 2,3,5,7,11 ๋ฑ ์์๋ก ๋๋๋ ๋ชจ๋ ์๋ค์ ๋ฆฌ์คํธ์์ ์ญ์ ํด ๋๊ฐ๋ฉด
๊ตฌ๊ฐ ๋ด์ ์๋ ๋ชจ๋ ์์ ๋ฆฌ์คํธ๊ฐ ๋ง๋ค์ด์ง๋ค.
ํ๋ฅ
A โฉ B ์ ํ๋ฅ
- ๋ฒ ์ด์ฆ ์ ๋ฆฌ(Bayesโ Theorem)
P(A | B) = P(B | A) P(A) / P(B) |
A โช B ์ ํ๋ฅ
P(A โช B) = P(A) + P(B) - P(A โฉ B)
๋ ๋ฆฝ์ฑ
A์ B๊ฐ ๋ ๋ฆฝ์ฌ๊ฑด์ด๋ผ๋ฉด, A๊ฐ B์ ์๋ฌด๋ฐ ์ํฅ์ ๋ผ์น์ง ์์ผ๋ฏ๋ก
P(A โฉ B) = P(A) P(B)
์ํธ ๋ฐฐํ์ฑ
A์ B๊ฐ ์ํธ ๋ฐฐํ์ ์ด๋ผ๋ฉด P(A โฉ B) = 0 ์ด ๋๋ฏ๋ก
P(A โช B) = P(A) + P(B)
์ ์ ์ด๋ผ
์์๊ป๊ธฐ ๊ฐ์ ๋ฌธ์ ๋ฅผ ๋ง๋๋ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ์ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ฌธ์ ๋ฅผ ์ด๋ป๊ฒ ๊ณต๋ตํด ๋๊ฐ๋์ง ๋ฉด์ ๊ด๋ค์๊ฒ ๋ณด์ฌ์ฃผ๋ผ
๊ท์น๊ณผ ํจํด์ ์ฐพ์ผ๋ผ
๋ฌธ์ ๋ฅผ ํ๋ค๊ฐ ๋ฐ๊ฒฌํ๋ ๊ท์น์ด๋ ํจํด์ ๋ฐ๋ก ์ ์ด๋๋ฉด ๋์์ด ๋๋ค
์ต์ ์ ๊ฒฝ์ฐ๋?
์์๊ป๋ผ์ ๋ง์ ์๊ฐ ์ต์ ์ ๊ฒฝ์ฐ๋ฅผ ์ต์ํํ๋ ๊ฒ๊ณผ ์ฐ๊ด์ด ์๋ค.
์ด๋ค ํ๋์ ์ต์ํํ๊ฑฐ๋, ์ง์ ๋ ํ์ ์์ ์ฒ๋ฆฌํด์ผ ํ๋ ๋ฌธ์ ์ผ ์๋ ์๋ค.
๊ทธ๋ด ๋ ์ต์ ์ ์ํฉ์ ๊ท ํ ๋ง์ถ๋๋ก ํ๋ฉด ๋์์ด ๋๋ค
์๊ณ ๋ฆฌ์ฆ์ ์ ๊ทผ๋ฒ
์์๊ป๋ผ์ฒ๋ผ ๋ณด์ด๋ ๋ฌธ์ ๋ค ์ค ์๋น์๋ ๊ธฐ์ ์ ์ธ ์ธก๋ฉด์ ์ ๊ฑฐํ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ์ธ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค.
์ด๊ธฐ ์ฌ๋ ๋ก๋ถํฐ ํ์ฅ๋ฒ, ์ค์ค๋ก ํ์ด๋ณด๊ธฐ๊ฐ ์ ์ฉํ๊ฒ ์ฐ์ผ ์ ์๋ค.