最小失敗値のバイナリ検索

最小失敗値のバイナリ検索

注文がありますcmdcmd 1成功しましたがcmd 10000000失敗しました。

cmdすべてのn < Xに対しては成功し、すべてのn > Xに対しては失敗します。

X値を見つけるためにバイナリ検索を実行できるツールはありますか?

答え1

find-first-failhttps://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成功します。

これを行うには、バイナリ検索を使用します。まず、終了コードが変更されるまで値を2倍にし、最後の2つの値の間でバイナリ検索を実行します。

関連情報