최소 실패 값에 대한 이진 검색

최소 실패 값에 대한 이진 검색

주문이 있어요 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성공합니다.

이를 수행하기 위해 이진 검색을 사용합니다. 먼저 종료 코드가 변경될 때까지 값을 두 배로 늘린 다음 마지막 두 값 사이에서 이진 검색을 수행합니다.

관련 정보