주문이 있어요 cmd
. cmd 1
성공했지만 cmd 10000000
실패했습니다.
cmd
모든 n < X에 대해서는 성공하고 모든 n > X에 대해서는 실패합니다.
X 값을 찾기 위해 이진 검색을 수행할 수 있는 도구가 있습니까?
답변1
find-first-fail
(https://gitlab.com/ole.tange/tangetools/-/blob/master/find-first-fail/find-first-fail)은 에서 구현됩니다 bash
. 다음과 같은 명령으로 호출할 수 있습니다.
find-first-fail cmd
또는 얻을 수 있습니다. 이 경우 cmd
함수가 될 수 있습니다.
. $(which find-first-fail)
find-first-fail cmd
find-first-fail
먼저 실행하십시오 cmd 1
. 실패하면 성공하는 최소값을 찾습니다 cmd
. 그렇지 않으면 실패한 최소값을 찾습니다 cmd
.
cmd 1
따라서 실패하면 X도 찾아 cmd 1000000
성공합니다.
이를 수행하기 위해 이진 검색을 사용합니다. 먼저 종료 코드가 변경될 때까지 값을 두 배로 늘린 다음 마지막 두 값 사이에서 이진 검색을 수행합니다.