지능 테스트 문제는 용량이 다른 컵 여러 개를 주고, 물을 얼마나 부으라고 묻는 비슷한 논리 문제에 자주 등장합니다.
안드로이드에는 Water Logic이라는 게임이 있습니다.
이 게임을 설치하고 수십 개의 레벨을 플레이했는데, 이 게임의 레벨 디자인이 매우 열악한 것 같습니다. .
프로그래머로서 우리는 이러한 유형의 문제를 해결하는 데 문제가 없어야 합니다. 10단계 이내에 문제를 해결할 수도 있지만, 최소 단계에 쉽게 도달하지 못할 수도 있습니다. 단계.
강박 장애 3성 플레이어이자 프로그래머가 이런 작은 자동 해결 프로그램을 작성했는데, 이 문제는 앞으로 더 이상 문제가 되지 않을 것입니다.
컵 따르기 문제를 자동으로 해결하려면 여기를 클릭하세요
알고리즘의 기본 논리:
각 컵에는 채우고 비우고 다른 컵에 붓는 작업이 있으므로 총계는 컵 수 * (컵 수 - 1 2)
3개의 컵이 있는 경우 각 단계마다 12개의 선택 작업이 있습니다. 2개의 컵이 있는 경우 각 단계마다 6개의 선택 작업이 있습니다.
각 작업을 순회하고, 작업이 완료된 후 각 컵에 담긴 물의 양을 기록하고, 물의 양에 따라 키를 계산하여 지도를 만듭니다.
다양한 타설 작업을 순회하는 과정에서 키가 이미 존재하고 현재 단계 수가 이전에 기록된 단계 수보다 큰 경우 작업이 삭제됩니다.
이 작은 프로그램은 2~3컵에 물을 붓는 문제만 해결할 수 있습니다. N컵에 보편적으로 사용하도록 작성된 코드는 아닙니다.