これは、アルゴリズム クラスの追加クレジット用です。問題の状態
王は N 本のワインセラーを持っており、1 本のボトルが毒されています。
毒が効くまでに約1ヶ月かかります。王様は、1 か月以内にできるだけ少ないテスターを使用して正確なボトルを識別したいと考えています。
私の解決策は
N
ボトルをロットに分割し、M
「M テスター」を使用します最初のテスターは、最初と最後のロットの両方を試飲します
2 番目のテスターは、最初のロットと 2 番目のロットの両方を試飲します。
3 番目のテスターは、2 番目と 3 番目のロットの両方を試飲します。
テスターがロットをオーバーラップさせて、M ロットについて続行します。
汚染されたワインを試飲した2人のテスターが病気になったとき、ロットが特定されました. テスターは、汚染されたロットから 1本
M-2
ずつ味見をし、病気になった 3 番目のテスターが汚染されたボトルを識別します。
ただし、このアルゴリズムは作業に割り当てられた時間の 2 倍を必要とします。つまり、汚染されたロットを特定するのに 1 か月、汚染されたボトルを特定するのに 2 か月かかります。より効率的なアルゴリズムはありますか?