본문 바로가기
카테고리 없음

[Programming] The Infinite Hotel 2 - #n+1, #2n, #prime numbers

by Henry Cho 2021. 2. 9.
728x90

www.youtube.com/watch?v=Uj3_KqkI9Zo

 

저번 포스트에서는 The Infinite Hotel에 대한 기본 컨셉에 대해서 살펴보았다.

이번 포스트에서는 The Infinite Hotel를 활용하여 Infinite numbers를 어떻게 다루는지에 대해서 살펴볼 예정이다.

저번 포스트가 맛보기이었다면 이제는 본격적인 The Infinite Hotel에 대해서 알아보도록 하자.

whoishoo.tistory.com/89

 

[Programming] The Infinite Hotel

www.youtube.com/watch?v=faQBrAQ87l4 The Infinite Hotel이란, 끝을 알 수 없는 결과에 대한 프로그래밍 알고리즘 구현을 어떻게 해야 할지 알 수 있는 기본적이 개념이다. 위의 영상은 The Infinite Hotel에 대..

whoishoo.tistory.com

참고로 저번 포스트에서 "뭐야 쉽네"라고 생각했다면 이번에 조금 머리가 아플 수 있다.

위에 영상은 The Infinite Hotel에 대한 전반적인 내용을 담고 있어서 참고하여 살펴보는 걸 추천한다.

 

The Infinite Hotel n+1

The Infinite Hotel의 조건은 항상 만실 기준이다.

그래야 다음 손님이 방문했을때 무한의 수를 어떻게 다룰지를 알 수 있기 때문이다.

첫번째로 The Infinite Hotel이 만실일때 손님 1명이 찾아왔다고 가정해보자.

The Infinite Hotel의 무한개의 방이 무한의 손님으로 꽉 차 있는데 새로운 손님을 어떻게 받을까?

바로 기존 손님들을 다음 방으로 한 칸씩 이동시키면 1번째 방이 비어진다.

그러면 기존과 같이 The Infinite Hotel은 만실이면서도 새로운 손님이 묵을 수 있는 방이 생긴다.

이것을 The Infinite Hotel에서는 n+1로 이동한다고 한다.

 

The Infinite Hotel 2n

The Infinite Hotel에 새로운 상황이 발생했다.

The Infinite Hotel은 만실인 가운데 Countable이 가능한 무한대의 손님이 찾아왔다고 가정해보자.

돈을 벌어야 하는 지배인은 새로운 손님들을 받고 싶어하기에 새로운 방을 마련해야 한다.

이 경우, The Infinite Hotel의 만실인 방의 수도 무한이며, 새로운 손님도 무한이다.

(물론 셀 수 있는 무한이다.)

따라서 2개의 무한의 수가 있기 때문에 2n으로 새로운 방을 만들 수 있다.

예를 들어 1번방에 있는 사람은 2n으로 계산할 경우 2번째 방으로 이동한다.

2번방에 있는 사람은 4번방으로 이동한다.

이런식으로 이동하다보면 홀수번 방이 비어있게 되기에 새로운 무한대의 손님은 홀수 방에 묵을 수 있게 된다.

 

The Infinite Hotel Prime powers method

그렇다면 조금 더 복잡한 상황으로 가보자.

무한의 사람이 타 있는 버스 2대가 The Infinite Hotel에 도착했다.

그렇다면 이 경우에는 어떻게 방 배정을 해야 할까?

기존 방 객실 손님을 2^i 방으로 이동시킨다.

다음으로 1번째 버스에 타 있는 손님들을 3^n 방을 묵게 하고

2번째 버스에 타 있는 손님들은 5^n 방을 묵게 한다.

바로 Prime numbers를 활용하여 겹치는 방이 없게끔 방 배정을 하는 방식이다.

하지만 이전 방식과 다르게 해당 방식은 빈 방이 생길 수 있다.

심지어 빈 방의 갯수는 손님이 묵는 방 갯수와 같을 수도 있다는 것이다.

결국 완벽히 꽉 채운 The Infinite Hotel이 아닌 형태이지만 무한의 손님이 중복되지 않게끔 방 배정이 가능하다.

 

728x90

댓글