Computer Science/Algorithms

🦜 Pigeonhole Principle

metamong 2024. 2. 2.

intro

🦜 총 19개의 ꡬ멍이 μžˆλŠ” λΉ„λ‘˜κΈ°μ§‘μ—μ„œ 20마리의 λΉ„λ‘˜κΈ°κ°€ λ“€μ–΄κ°€λ €κ³  ν•  λ•Œ, 적어도 ν•œ 곳의 λΉ„λ‘˜κΈ°μ§‘μ—λŠ” 적어도 2마리 μ΄μƒμ˜ λΉ„λ‘˜κΈ°κ°€ λ°˜λ“œμ‹œ μžˆμ„ 수 밖에 μ—†λ‹€λŠ” 원리. 

β‘  theorem I: 각 ꡬ멍에 A마리의 λΉ„λ‘˜κΈ°κ°€ ν‰κ· μ μœΌλ‘œ λ“€μ–΄κ°€ μžˆλ‹€λ©΄, Aκ°€ μ •μˆ˜κ°€ μ•„λ‹ˆλΌλ©΄, 적어도 ν•œ κ³³μ—λŠ” ceil(A)마리의 λΉ„λ‘˜κΈ°κ°€ μžˆλ‹€λŠ” 뜻. λ‚˜λ¨Έμ§€ λΉ„λ‘˜κΈ° μ§‘μ—λŠ” μ΅œλŒ€ floor(A)마리의 λΉ„λ‘˜κΈ°κ°€ μžˆλ‹€.

β‘‘ theorem II: n+1개의 물건을 n개의 μƒμžμ— λ„£μœΌλ €κ³  ν•  λ•Œ, 적어도 ν•œ 개 μ΄μƒμ˜ μƒμžμ—λŠ” 2개 μ΄μƒμ˜ 물건을 넣을 수 밖에 μ—†λ‹€.

 

🦜  generalization

β‘ ) λ§Œμ•½ Kn+1마리의 λΉ„λ‘˜κΈ°κ°€ n개의 λΉ„λ‘˜κΈ°μ§‘μ— λ“€μ–΄κ°€λ €κ³  ν•  λ•Œ, (Kn+1)/n은 K + 1/nμ΄λ―€λ‘œ 적어도 ν•œ 곳의 λΉ„λ‘˜κΈ°μ§‘μ—λŠ” K+1마리 μ΄μƒμ˜ λΉ„λ‘˜κΈ°κ°€ μ‘΄μž¬ν•œλ‹€.

 

β‘‘) strong form - theorem III: q1, q2, ... qn을 μžμ—°μˆ˜λΌ ν•˜μž. q1 + q2 + ... + qn - n +1개의 물체λ₯Ό n개의 μƒμžμ— λ„£λŠ”λ‹€κ³  κ°€μ •ν•˜μž. 그러면 첫번째 μƒμžκ°€ μ΅œμ†Œ q1개λ₯Ό κ°–κ±°λ‚˜, λ‘λ²ˆμ§Έ μƒμžκ°€ q2개λ₯Ό κ°–κ±°λ‚˜, μ„Έλ²ˆμ§Έ μƒμžκ°€ q3개λ₯Ό κ°–κ±°λ‚˜ ~ n번째 μƒμžκ°€ qn개λ₯Ό κ°–κ²Œ λœλ‹€. 생각해보면 자λͺ…ν•œ 원리. q1 μƒμžλŠ” q1개 이상이 μžˆμ–΄μ•Ό 쑰건을 μΆ©μ‘±ν•˜λ―€λ‘œ, 쑰건을 μΆ©μ‘±ν•˜μ§€ μ•ŠμœΌλ©΄μ„œ μ΅œλŒ€λ‘œ 넣을 수 μžˆλŠ” 물체의 κ°œμˆ˜λŠ” q1 - 1 / q2λŠ” q2 -1 ~~ / qn은 qn - 1μ΄λ―€λ‘œ, λ‹€ λ”ν•˜λ©΄ q1 + q2 + ... + qn - n이 λœλ‹€. 이 λ•Œ 1만 더 μΆ”κ°€ν•˜λ©΄ μ΅œμ†Œμ˜ 물체 개수둜 μœ„ μƒμž 쑰건 쀑 적어도 ν•œ κ³³ 이상은 쑰건을 λ§Œμ‘±ν•œλ‹€!

application & questions

Questions둜 nκ³Ό K+1을 μ΄μš©ν•΄ μ—­μœΌλ‘œ Kn+1을 κ΅¬ν•˜λŠ” λ¬Έμ œκ°€ 많이 λ“±μž₯.

 

Q1. how many students must be in a class to guarantee that at least 2 student receive the same score on final exam, if the exam is graded on a scale from 0 to 100 points?

A1: n을 100 / K+1을 2라고 ν•œλ‹€λ©΄ Kn+1은 100*1 + 1둜 101. 즉 μ΅œμ†Œ 101λͺ…이 μžˆμ–΄μ•Ό λ˜‘κ°™μ€ 점수λ₯Ό λ°›λŠ” 학생이 μ‘΄μž¬ν•œλ‹€.

 

Q2. A bag contains 10 red marbles, 10 white marbles, and 10 blue marbles. What is the minimum no. of marbles you have to choose randomly from the bag to ensure that we get 4 marbles of same color?

A2: μƒ‰κΉ”μ˜ 개수 n = 3 / ν•œ 곳에 μ΅œμ†Œ 4개 ꡬ슬이 λ“€μ–΄κ°€μ•Ό ν•˜λ―€λ‘œ K + 1 = 4 → λ”°λΌμ„œ Kn+1 = 3*3 + 1 = 10. μ΅œμ†Œ 10λ²ˆμ€ 골라야 ν•œλ‹€.

 

Q3. How many cards must be selected from a standard deck of 52 cards to guarantee that at least 3 cards of same suit chosen?

A3: μΉ΄λ“œ μ’…λ₯˜μ˜ 개수 n = 4(heart, spade, diamonds, clubs - 각각 13κ°œμ”© 쑴재) / ν•œ 곳에 μ΅œμ†Œ 3개의 μΉ΄λ“œκ°€ λ“€μ–΄κ°€μ•Ό ν•˜λ―€λ‘œ K + 1 = 3 → λ”°λΌμ„œ Kn+1=2*4+1=9둜 μ΅œμ†Œ 9개의 μΉ΄λ“œλŠ” 골라야 ν•œλ‹€.

 

Q4. How many cards must be selected from a standard deck of 52 cards to guarantee that at least 3 hearts are selected?

A4: νŠΉμ • λΉ„λ‘˜κΈ°μ§‘μ—μ„œ μ΅œμ†Œ 3개의 μΉ΄λ“œλ₯Ό κ³ λ₯΄κΈ° μœ„ν•œ 문제. 즉 ν•œ 곳만 μ΅œμ†Œ 3개의 μΉ΄λ“œκ°€ λ“€μ–΄κ°€μ•Ό ν•˜κ³  λ‚˜λ¨Έμ§€λŠ” 상관 x / 이 λ•Œ λ‚˜λ¨Έμ§€ λΉ„λ‘˜κΈ°μ§‘μ— λ‹€ λ“€μ–΄κ°€λŠ” 경우의 수 13 + 13 + 13 이후, μΉ΄λ“œ μ’…λ₯˜μ˜ 개수 n = 1 / ν•΄λ‹Ή λΉ„λ‘˜κΈ°μ§‘μ— μ΅œμ†Œ 3개의 μΉ΄λ“œ λ“€μ–΄κ°€μ•Ό ν•˜λ―€λ‘œ K + 1 = 3 λ”°λΌμ„œ Kn+1=2*1+1둜 3. 즉 39 + 3으둜 μ΅œμ†Œ 42개의 μΉ΄λ“œλŠ” 골라야 ν•œλ‹€. νŠΉμ • λΉ„λ‘˜κΈ°μ§‘μ΄ μ•„λ‹Œ λ‹€λ₯Έ 집이 λͺ¨λ‘ λκΉŒμ§€ 골라지고 λ‚œ λ‹€μŒ, νŠΉμ • λΉ„λ‘˜κΈ°μ§‘μ— λŒ€ν•΄μ„œλ§Œ λΉ„λ‘˜κΈ°μ§‘μ˜ 원리 곡식 적용.

 

Q5. In a computer science department, a student club can be formed with either 10 members from first year or 8 members from second year or 6 from third year or 4 from final year. What is the minimum no. of students we have to choose randomly from department to ensure that a student club is formed?

A5: 각 λΉ„λ‘˜κΈ°μ§‘λ³„ λ“€μ–΄κ°€λŠ” μ΅œμ†Œ λΉ„λ‘˜κΈ°μ˜ κ°œμˆ˜κ°€ λ‹€λ₯΄λ‹€. 10 / 8 / 6 / 4의 쑰건을 μ΅œμ†Œ ν•œ 곳의 λΉ„λ‘˜κΈ°μ§‘λ§Œ λ§žμΆ”λ©΄ λ˜λ―€λ‘œ, μœ„ 곡식에 μ˜ν•΄ 10 + 8 + 6 + 4 - 4(n) + 1둜 25λͺ…이 μ •λ‹΅.

 

Q6. A box contains 6 red, 8 green, 10 blue, 12 yellow and 15 white balls. What is the minimum no. of balls we have to choose randomly from the box to ensure that we get 9 balls of same color?

A6: 일단 red와 green은 9개 λ―Έλ§Œμ΄λ―€λ‘œ 적용 λΆˆκ°€λŠ₯ν•˜κΈ°μ— λ¨Όμ € λ‹€ κ³ λ₯΄κ³ (6+8), 이후 3개의 ballμ—μ„œ λΉ„λ‘˜κΈ°μ§‘μ˜ 원리λ₯Ό λΆ€λΆ„μ μœΌλ‘œ μ μš©ν•˜λ©΄ λœλ‹€. n = 3 / K + 1 = 9μ΄λ―€λ‘œ Kn+1=25. λ”°λΌμ„œ 25+14인 39개의 곡 κ³ λ₯΄λ©΄ 끝!

 

Q7. (BOJ 20529 κ°€μž₯ κ°€κΉŒμš΄ μ„Έ μ‚¬λžŒμ˜ 심리적 거리) 

Solution7: MBTI μœ ν˜•μ€ 16개 pigeonhole number. 같은 MBTIκ°€ 3개 이상 μžˆκ²Œλ” ν•˜λ €λ©΄ n = 16 / K+1=3μ΄λ―€λ‘œ nK+1=33. 즉 μ΅œμ†Œ 33개 이상 μžˆλ‹€λ©΄ μ„Έ 개의 같은 MBTI λ“±μž₯. 즉 κ°œμˆ˜κ°€ 33개 이상이라면 μ„Έ μ‚¬λžŒμ˜ 심리적 μ΅œμ†Œ κ±°λ¦¬λŠ” 무쑰건 0 ν™œμš©μœΌλ‘œ μ½”λ“œ μ‹€ν–‰μ‹œκ°„ 단좕


geeksforgeeks

thumbnail

 

 

'Computer Science > Algorithms' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

βž•Merge Sort  (0) 2024.04.06
🍑 Two Pointers  (1) 2024.02.11
πŸ™ƒ Backtracking  (0) 2024.01.18
🧿 Dijkstra's (Shortest Path) Algorithm  (1) 2024.01.14
🍝LIS(Longest Increasing Subsequence) O(n^2)/O(nlogn)  (0) 2024.01.06

λŒ“κΈ€