Post

๐ŸฆŠ 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(AB) = P(BA) 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)

์ž…์„ ์—ด๋ผ

์ˆ˜์ˆ˜๊ป˜๊ธฐ ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ๋งŒ๋‚˜๋„ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋ฌธ์ œ๋ฅผ ์–ด๋–ป๊ฒŒ ๊ณต๋žตํ•ด ๋‚˜๊ฐ€๋Š”์ง€ ๋ฉด์ ‘๊ด€๋“ค์—๊ฒŒ ๋ณด์—ฌ์ฃผ๋ผ

๊ทœ์น™๊ณผ ํŒจํ„ด์„ ์ฐพ์œผ๋ผ

๋ฌธ์ œ๋ฅผ ํ’€๋‹ค๊ฐ€ ๋ฐœ๊ฒฌํ•˜๋Š” ๊ทœ์น™์ด๋‚˜ ํŒจํ„ด์„ ๋”ฐ๋กœ ์ ์–ด๋‘๋ฉด ๋„์›€์ด ๋œ๋‹ค

์ตœ์•…์˜ ๊ฒฝ์šฐ๋Š”?

์ˆ˜์ˆ˜๊ป˜๋ผ์˜ ๋งŽ์€ ์ˆ˜๊ฐ€ ์ตœ์•…์˜ ๊ฒฝ์šฐ๋ฅผ ์ตœ์†Œํ™”ํ•˜๋Š” ๊ฒƒ๊ณผ ์—ฐ๊ด€์ด ์žˆ๋‹ค.

์–ด๋–ค ํ–‰๋™์„ ์ตœ์†Œํ™”ํ•˜๊ฑฐ๋‚˜, ์ง€์ •๋œ ํšŸ์ˆ˜ ์•ˆ์— ์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ์ผ ์ˆ˜๋„ ์žˆ๋‹ค.

๊ทธ๋Ÿด ๋•Œ ์ตœ์•…์˜ ์ƒํ™ฉ์„ ๊ท ํ˜• ๋งž์ถ”๋„๋ก ํ•˜๋ฉด ๋„์›€์ด ๋œ๋‹ค

์•Œ๊ณ ๋ฆฌ์ฆ˜์  ์ ‘๊ทผ๋ฒ•

์ˆ˜์ˆ˜๊ป˜๋ผ์ฒ˜๋Ÿผ ๋ณด์ด๋Š” ๋ฌธ์ œ๋“ค ์ค‘ ์ƒ๋‹น์ˆ˜๋Š” ๊ธฐ์ˆ ์ ์ธ ์ธก๋ฉด์„ ์ œ๊ฑฐํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ์ธ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค.

์ดˆ๊ธฐ ์‚ฌ๋ ˆ๋กœ๋ถ€ํ„ฐ ํ™•์žฅ๋ฒ•, ์Šค์Šค๋กœ ํ’€์–ด๋ณด๊ธฐ๊ฐ€ ์œ ์šฉํ•˜๊ฒŒ ์“ฐ์ผ ์ˆ˜ ์žˆ๋‹ค.

This post is licensed under CC BY 4.0 by the author.