2022. 12. 22. 06:18ㆍOther Maths
근래 다시 출시하여 뭇 어린이와 어른이를 미치게 했던 포켓몬 빵을 기억하는가?
스티커만 가지고 빵을 버리는 사람, 편의점에서 산 빵을 개당 3000원에 되팔이하는 사람은 양반이었다. 빵 공장에서 일하는 사람이 수백 장의 스티커를 되팔 작정으로 횡령했다 뉴스에도 나왔지.
포켓몬 빵이 처음 나왔을 때도 지금도, 관건은 모든 스티커를 모을 때 필요한 빵의 갯수였다. n종류의 스티커를 모을 때 필요한 빵의 갯수는 몇 개인가?
어라... 어디서 많이 본 문제 아니던기? 그렇다, 26217번 문제에서 한 번 다루었던 쿠폰 수집가 문제이다.
해당 포스트에서 한 증명은 사실 엄밀하지 않다.
여기서 완벽하게 한 번 짚고, 그 다음 원래 하려고 했던 조화수 근사를 하도록 하자.
성공할 때까지 성공률 p인 시행을 하면, 한 시행 횟수의 기대값이 얼마가 될까.
한 번 시행을 할 확률은 p일 것이고, 두 번 시행할 확률은 첫 번째 실패하고 두 번째에 성공할 확률 (1-p)p일 것이고...
따라서 n+1번째에 성공할 확률은, q=1-p로 간략히 표기할 때
그렇다면 기댓값은? 시행 횟수×확률의 합이기 때문에,
양 변에 q를 곱해 보자. 그러면
따라서,
따라서 기댓값이 확률의 역수인 1/p가 되는 것이다. 이로부터 n장의 쿠폰을 얻으려면 평균적으로
그 다음으로, 이제 본편으로 들어가 보자.
이 증명과정은 Donald E. Knuth의 《The Art of Computer Programming》 vol.1의 111~115페이지에 아주 큰 도움을 받았다.
여기서 두 가지 표기법을 정립하고 가자.
그렇다면, 정수 k에 대해서
그렇다면 부분적분을 이용해 다음 식을 얻을 수 있다.
이제 이 식의 양변을
여기서,
베르누이 다항식이 나왔으니 베르누이 수가 빠질 수 없다. 고차의 베르누이 다항식을 이용하기 위해서는 반드시 필요하다.
베르누이 수란,
우선,
B(z)를 테일러 전개하였을 때 3차항 이상의 홀수차항은 계수가 모조리 0이 된다는 것이다.
곧,
또한, 양 변에
이제 베르누이 다항식으로 돌아와 보자. 갈 길이 멀다!
베르누이 다항식을 그대로 대입한 다음 양 변을 미분해버린다면, 다음과 같은 관계식이 얻어진다.
따라서, m이 1 이상일 때, 부분적분을 통해서 똑같이 이 식을 얻어낼 수 있다.
이 식에 반복적분을 적용시켜 보면,
이 식을 함수열
베르누이 수는
그리고, 조화수열임을 이용하기 위해서
이제 n을 무한으로 보내게 되면
마지막으로! 정리된 식은 따라서 다음과 같다.
이를 통해서 조화수를 근사하게 근사할 수 있다.
완전히 같은 논리로
이번 포스트에서는 조화수의 근사한 근사와 쿠폰 수집가 문제를 주로 다루었다.
이것들이 특정한 상황 아래에서 stable matching을 구하는 알고리즘의 수행 시간을 개선하는데 쓰인다고 하는데, 그것들에 대해서는 아직 아는 바가 없다.
그럼에도 알아두어 나쁠 것은 없다. 그렇지 않은가?

'Other Maths' 카테고리의 다른 글
10. 자연수를 네 개 이하 제곱수의 합으로 나타내기 (下) (0) | 2023.03.15 |
---|---|
9. 자연수를 네 개 이하 제곱수의 합으로 나타내기 (上) (0) | 2023.03.04 |
7. 피보나치 수에 관한 (거의) 모든 것 2 (0) | 2022.12.08 |
6. 피보나치 수에 관한 (거의) 모든 것 1 (0) | 2022.12.01 |
5. 밀러-라빈 소수판정법과 폴라드-로 소인수분해 (1) | 2022.11.30 |