나는 인터뷰에서 다음과 같은 문제를 . (예 : )이 숫자는 이진 표현으로 변환되고 은 설정된 비트 수입니다 . (예 : , )A 0 = 1234 N 1 A 0 = b 100 1101 0010 N = 5
플레이어 1 은 보다 작은 선택합니다 . 비트는 1로 설정해야합니다 (예 : . . (예 ). 이동이 유효한 경우 설정 비트 수를 만족 이전 제한하고있는 경우 여전히 N 동일 .A 0 B 0 B 0 = b 10 0000 0000 = 512 A 1 = A 0 − B 0 A 1 = 1234 − 512 = 722 = b 10 1101 0010 B 0 A 1
플레이어 2 는 유효한 을 선택하여 에서 계속 한 다음 플레이어 1 은 등에서 계속 됩니다. 왼쪽으로 유효한 움직임이 없으면 플레이어가 패배합니다.B 1 A 2
두 선수가 모두 최적으로 플레이한다고 가정하면 합리적으로 효율적인 방법으로 승리 한 선수를 결정하십시오. (내 문제 정의에서 이것에 대한 제약은 프로그램이 부호있는 32 비트 정수에 맞는 수백만 개의 입력 번호에 대한 솔루션을 제공 할 수 있어야한다는 것입니다.), 솔루션은 필요하지 않습니다. 완전히 분석적입니다.
제가 개인적으로 관심을 갖는 것은 제가받은 120 분 동안 정확성에 대한 피드백을 전혀 얻지 않고 올바른 솔루션을 찾고 구현할 것이라는 기대가 합리적 이었는지 알아내는 것입니다. 또는 이것이 "그들이 전에이 퍼즐을 본 적이 있는지 보자"라는 질문 중 하나 였다면.
나는 합리적인 전략처럼 보이는 것을 구현하기로 선택했기 때문에 실패했습니다. 내 시간이 다했을 때 전체 출력.
돌이켜 보면 나는 무차별 대입 검색을 구현하고 작은 시작 번호에 대한 부분 솔루션을 암기해야했지만 가늠자는 항상 20/20입니다. 그러나 나는 플루 키로 나를 피하는 다른 일반적인 접근법이 있는지 궁금합니다.