고양이가있는 고층 빌딩에 있다고 상상해보십시오. 고양이는 낮은 이야기 창에서 떨어지더라도 살아남을 수 있지만 높은 층에서 던져지면 죽을 것입니다. 가장 적은 횟수의 시도로 고양이가 생존 할 수있는 가장 긴 방울을 어떻게 알 수 있습니까?
분명히 고양이가 하나뿐이라면 선형으로 만 검색 할 수 있습니다. 먼저 1 층에서 고양이를 던져라. 살아남 으면 두 번째에서 던지십시오. 결국, 층 f에서 던져진 후, 고양이는 죽을 것이다. 그러면 층 f-1이 최대 안전 층임을 알 수 있습니다.
그러나 하나 이상의 고양이가 있다면 어떨까요? 이제 일종의 로그 검색을 시도 할 수 있습니다. 건물의 바닥이 100 개이고 고양이 두 마리가 있다고 가정 해 봅시다. 첫 번째 고양이를 50 층에서 버리고 죽으면 50 개의 층만 선형으로 검색하면됩니다. 첫 번째 시도에서 더 낮은 층을 선택하면 더 잘할 수 있습니다. 한 번에 20 층 문제를 해결하기로 선택하고 첫 번째 치명적인 층이 # 50이라고 가정 해 봅시다. 이 경우 첫 번째 고양이는 60 층에서 죽기 전에 20 층과 40 층에서 비행을 계속합니다. 41 층에서 49 층까지 개별적으로 확인하면됩니다. 그것은 총 12 번의 시도로, 이진 제거를 시도했을 때 필요한 50보다 훨씬 낫습니다.
일반적으로 가장 좋은 전략은 무엇이며 고양이 2 마리가있는 n 층 건물의 경우 최악의 복잡성입니까? n 층과 m 고양이는 어떻습니까?
모든 고양이가 동등하다고 가정하십시오. 모두 주어진 창에서 떨어지면 생존하거나 죽을 것입니다. 또한 모든 시도는 독립적입니다. 고양이가 넘어져도 완전히 무사합니다.
학교 과제로 한 번 해결했지만 숙제는 아닙니다. 그것은 오늘날 내 머리에 떠오른 기발한 문제이며 해결책을 기억하지 못합니다. 이 문제 또는 솔루션 알고리즘의 이름을 아는 사람이라면 보너스 포인트.