Computational Thinking

ν”„λ‘œκ·Έλž˜λ°μ˜ μ–΄λ €μš΄ 점 두 가지

  1. ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄ 문법과 라이브러리 μ‚¬μš©

  2. 논리 (Hard Logic)

Soft Logic vs Hard Logic

  • 일상 μƒν™œμ—μ„œλŠ”

    • Soft Logic이 λΉ λ₯΄κΈ° λ•Œλ¬Έμ— 유용

    • λ…Όλ¦¬μ μœΌλ‘œ λΆ€μ €ν™•ν•œ ν‘œν˜„μ„ μ‚¬μš©ν•˜μ§€λ§Œ, μ–΄λ–€ μ˜λ―ΈμΈμ§€ λͺ¨λ“  μ‚¬λžŒμ΄ 이미 μ•Œκ³  μžˆλ‹€λŠ” 가정이 쑴재

  • ν”„λ‘œκ·Έλž˜λ°μ€ Hard Logic을 μ‚¬μš©

    • ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄μ˜ ν‘œν˜„λ“€μ΄ λͺ¨λ‘ λ…Όλ¦¬ν•™μ—μ„œ λ‚˜μ˜¨ 것

    • μ‚¬μš©λ˜λŠ” μˆ˜λ§Žμ€ μ•Œκ³ λ¦¬μ¦˜λ“€μ„ μ΄ν•΄ν•˜κΈ° μœ„ν•΄μ„œλŠ” Hard Logic이 ν•„μš”

1. 논리와 증λͺ…

λͺ…μ œ

  • μ°Έμ΄λ‚˜ 거짓을 μ•Œ 수 μžˆλŠ” μ‹μ΄λ‚˜ λ¬Έμž₯

  • p, q, r ... 둜 ν‘œν˜„

    • p -> qκ°€ 참이면 ~q -> ~p도 참이닀 (λŒ€μš°)

  • ex)

    • μ„œμšΈμ€ λŒ€ν•œλ―Όκ΅­μ˜ μˆ˜λ„λ‹€

    • 1 + 1 = 3

    • 두 λ³€μ˜ 길이가 κ°™λ‹€λ©΄ 이등변 μ‚Όκ°ν˜•μ΄λ‹€.

      -> 이등변 μ‚Όκ°ν˜•μ΄ μ•„λ‹ˆλ©΄ μ–΄λŠ 두 변을 선택해도 두 λ³€μ˜ κΈΈμ΄λŠ” λ‹€λ₯΄λ‹€

진릿값

  • μ°Έμ΄λ‚˜ 거짓을 ν‘œν˜„

  • T, F or 1, 0

항진 λͺ…μ œ

: 진릿값이 항상 μ°Έ

λͺ¨μˆœ λͺ…μ œ

: 진릿값이 항상 거짓

사건 λͺ…μ œ

  • 항진 λͺ…μ œλ„ λͺ¨μˆœ λͺ…μ œλ„ μ•„λ‹Œ λͺ…μ œ

  • 상황에 따라 λ‹¬λΌμ§€λŠ” λͺ…μ œ

쑰건 λͺ…μ œ

  • p, qκ°€ λͺ…μ œμΌ λ•Œ, λͺ…μ œ pκ°€ 쑰건 (λ˜λŠ” 원인), qκ°€ κ²°λ‘  (λ˜λŠ” κ²°κ³Ό) 둜 μ œμ‹œλ˜λŠ” λͺ…μ œ

  • p -> q (p이면 q이닀)

  • pκ°€ True이고, qκ°€ False일 λ•Œλ§Œ False

쌍방 쑰건 λͺ…μ œ

  • p, qκ°€ λͺ…μ œμΌ λ•Œ, λͺ…μ œ p와 qκ°€ λͺ¨λ‘ μ‘°κ±΄μ΄λ©΄μ„œ 결둠인 λͺ…μ œ

  • p <-> q (pλ©΄ qκ³ , qλ©΄ pλ‹€)

  • p와 q의 μ°Έ/거짓이 같을 λ•Œμ— True

λͺ…μ œμ˜ μ—°μ‚° (κ²°ν•©)

  • λΆ€μ • NOT

    • pκ°€ λͺ…μ œμΌ λ•Œ, λͺ…μ œμ˜ 진릿값이 λ°˜λŒ€

    • ~p둜 ν‘œκΈ°

      • not p λ˜λŠ” p의 λΆ€μ •μœΌλ‘œ 읽음

  • 논리곱 AND

    • p, qκ°€ λͺ…μ œμΌ λ•Œ, p, q λͺ¨λ‘ 참일 λ•Œλ§Œ 참이 λ˜λŠ” λͺ…μ œ

    • p ^ q

      • p and q

      • p 그리고 q

  • 논리합 OR

    • p, qκ°€ λͺ…μ œμΌ λ•Œ, p, q λͺ¨λ‘ 거짓일 λ•Œλ§Œ 거짓이 λ˜λŠ” λͺ…μ œ

    • p v q

      • p or q

      • p λ˜λŠ” q

  • 배타적 논리합 XOR

    • p, qκ°€ λͺ…μ œμΌ λ•Œ, p, q 쀑 ν•˜λ‚˜λ§Œ 참일 λ•Œ 참이 λ˜λŠ” λͺ…μ œ

    • p βŠ• q

      • p xor q

μ—°μ‚°μž μš°μ„  μˆœμœ„

  • ~ > v , ^ > -> , <->

증λͺ…

  • 증λͺ…은 λͺ…μ œμ‹μœΌλ‘œ ν‘œν˜„ν•  수 μžˆλŠ” 것이여야 함

  • 보톡은 μ •ν™•ν•œ λͺ…μ œμ‹κΉŒμ§€ μ“°μ§€λŠ” μ•ŠμœΌλ‚˜ κ·Όλ³Έμ μœΌλ‘œλŠ” λͺ…μ œμ‹μœΌλ‘œ λ°”κΏ€ 수 있음

  • 증λͺ…에 λŒ€ν•œ μˆ˜λ§Žμ€ μ˜€ν•΄κ°€ p -> q λ₯Ό p <-> q 와 ν˜Όλˆν•˜λŠ” κ²ƒμ—μ„œ 일어남

μˆ˜ν•™μ  귀납법과 증λͺ…μ˜ μˆ˜μ€€

  • μˆ˜ν•™μ  κ·€λ‚©λ²•μ˜ κΈ°λ³Έν˜•

    • P(1) 이 참이고, P(n) -> P(n+1) 이 참이면 P(n)은 λͺ¨λ“  μžμ—°μˆ˜ n에 λŒ€ν•˜μ—¬ 참이닀

  • μˆ˜ν•™μ  κ·€λ‚©λ²•μ˜ κ°•ν•œ ν˜•νƒœ

    • P(1) 이 참이고, P(1) ^ P(2) ^ ... ^ P(n) -> P(n+1) 이 참이면 (λͺ¨λ“  κ²½μš°κ°€ 참이면), P(n)은 λͺ¨λ“  μžμ—°μˆ˜ n에 λŒ€ν•˜μ—¬ 참이닀

멍청이 (pseudo-proposition) 논리

λ„ˆκ°€ κ²½μ°°μ„œμž₯이면 λ‚œ λŒ€ν†΅λ Ή!

F -> () λŠ” 무쑰건 μ°Έ

  • ν‹€λ¦° λͺ…μ œλ₯Ό 참이라고 κ°€μ •ν•˜λ©΄ μ–΄λ–€ λͺ…μ œλ„ 참이 λœλ‹€

    • ex) 둜또 λ‹Ήμ²¨λ˜λ©΄ μžλ™μ°¨ μ‚¬μ€„κ²Œ

      • λ‘œλ˜μ— λ‹Ήμ²¨λ˜μ§€ μ•ŠμœΌλ©΄ μžλ™μ°¨λ₯Ό 사주지 μ•Šμ•„λ„ 거짓말이 μ•„λ‹ˆλ©°, 미당첨일 κ²½μš°μ— μ‚¬μ€˜λ„ 거짓말은 μ•„λ‹ˆλ‹€

      • 같은 μ›λ¦¬λ‘œ 2κ°€ ν™€μˆ˜λΌκ³  ν•˜λ©΄ 5λŠ” μ§μˆ˜κ±°λ‚˜ ν™€μˆ˜μ—¬λ„ 거짓이 μ•„λ‹ˆλ‹€

T -> F μΌλ•Œλ§Œ ν™•μ‹€ν•˜κ²Œ 거짓이닀

2. μˆ˜μ™€ ν‘œν˜„

  • μ»΄ν“¨ν„°λŠ” 0/1을 ν‘œν˜„ν•  수 μžˆλŠ” λΉ„νŠΈλ“€μ„ λͺ¨μ•„ 수λ₯Ό ν‘œν˜„

  • k개의 λΉ„νŠΈλ₯Ό μ‚¬μš©ν•˜λ©΄ 0λΆ€ν„° 2^k -1 κΉŒμ§€ ν‘œν˜„ κ°€λŠ₯ (1λΆ€ν„° μ‹œμž‘ν•˜λ©΄ 2^k)

    • 사싀, κΌ­ μ € λ²”μœ„μΈ 것은 μ•„λ‹˜!

    • μ•½μ†ν•˜λŠ” 방식에 따라 λ‹€λ₯΄μ§€λ§Œ, μ–΄λ–€ κ²½μš°λ“  μ΅œλŒ€ 2^k κ°€μ§€μ˜ 값을 ν‘œν˜„ν•˜λŠ” 것이 κ°€λŠ₯

      • 10μ§„μˆ˜λ‘œ k자리λ₯Ό μ“°λ©΄ 0λΆ€ν„° 10^k -1κΉŒμ§€ ν‘œν˜„μ΄ κ°€λŠ₯ν•œ 것과 μ™„μ „νžˆ λ™μΌν•œ κ³Όμ •

μ–΄λ–€ κ°’ n을 ν‘œν˜„ν•˜κΈ° μœ„ν•΄μ„œλŠ” λͺ‡ 개의 λΉ„νŠΈκ°€ ν•„μš”ν• κΉŒ?

  • 2^k -1 >= n이 성립해야 함

    • 즉, 2^k >= n+1

    • 같은 의미둜, k >= log(n+1)

      -> μ•½ logn λΉ„νŠΈκ°€ ν•„μš”

    • x = lognκ³Ό 2^x = n 은 같은 것을 가리킴!

+

lognμ΄λž€

  1. 2의 λͺ‡ 승이 n이 λ˜λŠλƒμ˜ λ‹΅

  2. n을 ν‘œν•œν•˜λŠ” 데 λͺ‡ λΉ„νŠΈκ°€ ν•„μš”ν•œκ°€μ˜ λ‹΅

  3. 1둜 μ‹œμž‘ν•΄μ„œ 계속 두 λ°°λ₯Ό ν•  λ•Œ λͺ‡ 번 ν•˜λ©΄ n이 λ˜λŠλƒμ˜ λ‹΅

  4. n을 2둜 계속 λ‚˜λˆŒ λ•Œ λͺ‡ 번 λ‚˜λˆ„λ©΄ 거의 1이 λ˜λŠλƒμ— λŒ€ν•œ λ‹΅

  • x = logn일 λ•Œ x와 n을 λΉ„κ΅ν•˜λ©΄ xκ°€ 더 μž‘κ³ , n이 컀질수둝 μ—„μ²­λ‚˜κ²Œ 달라진닀

    • κΈ‰κ²©ν•˜κ²Œ λ³€ν•˜λŠ” 것을 μž‘κ²Œ λ‚˜νƒ€λ‚΄κ³  싢을 λ•Œ log μ‚¬μš©!

  • 100자리둜 ν‘œν˜„ν•  수 μžˆλŠ” 10μ§„μˆ˜ 값은 읽을 μˆ˜λ„ 없을 μ •λ„λ‘œ 큰 값이닀!

  • 컴퓨터 λΆ„μ•Όμ—μ„œ log의 밑은 항상 2

  • 32λΉ„νŠΈ μ»΄ν“¨ν„°μ˜ μ£Όμ†Œ 곡간은 2^32 = μ•½ 40μ–΅κ°œ μ£Όμ†Œ

    • λ§ˆμ§€λ§‰ (1+1+ ...) 일 λ•Œ

      • n/ 2^k = 1

      • n = 2^k

      • k = logn

    • 총 κ΄„ν˜Έ μˆ˜λŠ” logn개

    • κ·Έλž˜μ„œ 전체 식을 n으둜 묢으면 nlogn

Big-O Complexity

Exercises

  1. 2μ§„μˆ˜ ν‘œν˜„μ—μ„œ logn λΉ„νŠΈλ‘œ ν‘œν˜„ν•  수 μžˆλŠ” 숫자 λ²”μœ„λŠ”?

    • n λΉ„νŠΈ 일 λ•Œ -> 2^n개

    • logn λΉ„νŠΈ 일 λ•Œ -> n개

  2. μŠ€λ¬΄κ³ κ°œκ°€ μ΄μƒμ μœΌλ‘œ μ§„ν–‰λœλ‹€κ³  ν•  λ•Œ, 맞좜 수 μžˆλŠ” λ‹΅μ˜ μ’…λ₯˜λŠ” λͺ‡ 가지인가?

    • 질문 ν•˜λ‚˜λ‹Ή 정닡이 2개 λ‚˜μ˜¬ 수 있음

    • 질문 κ°œμˆ˜λŠ” 총 20개

    • 즉, 맞좜수 μžˆλŠ” λ‹΅μ˜ μ’…λ₯˜λŠ” 2^20 가지

  3. n이 μΆ©λΆ„νžˆ 큰 κ°’ 일 λ•Œ λ‹€μŒμ€‘ μ–΄λŠ 값이 더 큰가?

    1. 2n < n^2

      • μˆ˜κ°€ λ¬΄ν•œλŒ€λ‘œ 클 경우 n μ•žμ˜ μƒμˆ˜λŠ” λ¬΄μ‹œν•  수 있고, n보닀 n^2의 μƒμŠΉλŸ‰μ΄ 훨씬 크기 λ•Œλ¬Έ

    2. 2^(n/2) < √(3^n)

      • √(3^n) = 3^(n/2)

      • 즉, 2^n κ³Ό 3^n을 λΉ„κ΅ν•˜λ©΄ 3^n이 더 크닀

    3. 2^(nlogn) > n!

      • 밑이 2라고 ν•˜λ©΄,

      • n^n > n! 이닀

    4. log2^(2n) < n√n

      • 2n < n√n

  4. x = loga(yz) μΌλ•Œ xλ₯Ό 2λ₯Ό λ°‘μœΌλ‘œ ν•˜λŠ” λ‘œκ·Έλ“€λ‘œ ν‘œν˜„ν•˜μ‹œμ˜€. 단, 둜그 ν•¨μˆ˜μ˜ μΈμžλŠ” λͺ¨λ‘ 문자 ν•˜λ‚˜μ—¬μ•Ό ν•œλ‹€.

  5. λ‹€μŒ ν•¨μˆ˜λ“€μ˜ μ—­ν•¨μˆ˜λ₯Ό κ΅¬ν•˜μ‹œμ˜€

    1. f(x) = log(x-3) -5

      • f^-1(x) = 2^(x+5) +3

    2. f(x) = 3 log(x+3) +1

    3. f(x) = 2 x 3^x -1

집합과 μ‘°ν•©λ‘ 

집합

  • 두 집합 A와 B에 λŒ€ν•΄ Aκ°€ B의 λΆ€λΆ„μ§‘ν•©μž„μ„ 증λͺ…ν•œλ‹€λŠ” 것은 A의 μž„μ˜μ˜ μ›μ†Œκ°€ B에 포함됨을 λ³΄μ΄λŠ” 것과 κ°™λ‹€

    • ex) λͺ¨λ“  4의 λ°°μˆ˜λŠ” 2의 λ°°μˆ˜λΌλŠ” 것을 증λͺ…ν•˜λ €λ©΄, 4k = 2(2k) μž„μ„ 보이면 λ˜λŠ” 것!

  • 두 집합 A와 Bκ°€ κ°™λ‹€λŠ” 것을 증λͺ…ν•˜κΈ° μœ„ν•΄μ„œλŠ” Aκ°€ B의 뢀뢄집합이고 Bκ°€ A의 λΆ€λΆ„μ§‘ν•©μž„μ„ 증λͺ…ν•˜λ©΄ λœλ‹€

μ‘°ν•©

  • 쑰합둠은 경우의 수λ₯Ό λ”°μ§€λŠ” λ¬Έμ œλ“€μ„ 보톡 λ§ν•œλ‹€

  • 쑰합은 κ°œμˆ˜λŠ” Cλ₯Ό μ΄μš©ν•˜μ—¬ ν‘œν˜„ν•˜κΈ°λ„ ν•˜μ§€λ§Œ (5 밑에 2) = 10 κ³Ό 같은 κ΄„ν˜Έ ν‘œν˜„μ„ 더 많이 μ“΄λ‹€

+

μˆ˜ν•™μ  귀납법

μˆ˜ν•™μ˜ 증λͺ… 방법 쀑 ν•˜λ‚˜λ‘œ, 주둜 μ–΄λ– ν•œ λͺ…μ œκ°€ λͺ¨λ“  μžμ—°μˆ˜μ— λŒ€ν•˜μ—¬ 성립함을 보이렀고 ν•  λ•Œ μ΄μš©λœλ‹€.

μˆ˜ν•™μ  귀납법은 두 λ‹¨κ³„λ‘œ 이루어진닀.

λ¨Όμ € 주어진 λͺ…μ œκ°€ 1에 λŒ€ν•˜μ—¬ (일반적으둜 k에 λŒ€ν•˜μ—¬) 성립함을 보인닀.

λ‹€μŒμœΌλ‘œ, κ·Έ λͺ…μ œκ°€ 1 μ΄μƒμ˜ (k μ΄μƒμ˜) μž„μ˜μ˜ μžμ—°μˆ˜ n에 λŒ€ν•˜μ—¬ μ„±λ¦½ν•˜λ©΄, n+1μ—μ„œλ„ 성립함을 보인닀.

그러면 μˆ˜ν•™μ  귀납법에 μ˜ν•˜μ—¬ 주어진 λͺ…μ œκ°€ λͺ¨λ“  μžμ—°μˆ˜μ— (k μ΄μƒμ˜ μžμ—°μˆ˜μ—) λŒ€ν•˜μ—¬ μ„±λ¦½ν•˜κ²Œ λœλ‹€.

+

κ·€λ₯˜λ²•

  • λͺ…μ œλ₯Ό 증λͺ…ν•˜λ €κ³  ν•  λ•Œ, κ·Έ λͺ…μ œμ˜ 뢀정을 참이라고 κ°€μ •

  • κ·Έ 가정이 참이 μ•„λ‹˜(λͺ¨μˆœμž„)을 톡해 μ›λž˜ 가정이 μ°Έμž„μ„ λ³΄μ—¬μ€Œ

Exercises

4. κΈ°μ΄ˆμˆ˜μ‹

master crm

5. μž¬κ·€

  • μž¬κ·€λž€ 자기 μžμ‹ μ„ ν˜ΈμΆœν•˜λŠ” ν•¨μˆ˜

  • (끝날 수 μžˆλŠ” κ°€?)

    • ν•¨μˆ˜λŠ” μž…λ ₯이 있으며, 자기 μžμ‹ μ˜ μž…λ ₯κ³Ό λ™μΌν•œ μž…λ ₯으둜 자기 μžμ‹ μ„ ν˜ΈμΆœν•˜λ©΄ λ‹Ήμ—°νžˆ 끝날 수 μ—†μŒ

    • λ‹€λ₯Έ μž…λ ₯으둜 끝낼 수 μžˆλ‹€!

  • ν•¨μˆ˜λž€ μ–΄λ–€ 문제λ₯Ό ν•΄κ²°ν•˜λŠ” 방법을 μ½”λ”©ν•œ 것

    • μ–΄λ–€ 문제의 단 ν•œ μΌ€μ΄μŠ€λ§Œμ„ ν•΄κ²°ν•˜λŠ” 것이 μ•„λ‹˜!

      • μ œλŒ€λ‘œ μ½”λ”© 된 것이라면 ν•΄κ²°ν•˜λŠ” 문제의 λͺ¨λ“  μΌ€μ΄μŠ€λ“€μ„ ν•΄κ²°ν•΄μ•Ό 함

  • μˆ˜ν•™μ  귀납법 증λͺ… μ‚¬μš© κ°€λŠ₯

    1. n이 0일 λ•Œ 문제λ₯Ό ν’€ 수 있음

    2. n-1μ—μ„œ 문제λ₯Ό ν’€ 수 있으면 nμ—μ„œλ„ 문제λ₯Ό ν’€ 수 μžˆλ‹€

      • μœ„ 두 가지가 사싀이면 λͺ¨λ“  κ°€λŠ₯ν•œ n에 λŒ€ν•΄ 문제λ₯Ό ν’€ 수 μžˆλ‹€λŠ” 것이 사싀

Last updated

Was this helpful?