私はちょうど2つの卵の問題を読んでいました:
二卵問題
2つの卵が与えられ、100階建ての建物にアクセスできます。両方の卵は同一です。目的は、その階から窓から落としたときに卵が壊れない最上階を見つけることです。卵を落としても壊れない場合は、損傷はなく、再び落とすことができます。しかし、卵が壊れたら、それでその卵は終わりです。
卵が床から落とされたときに壊れた場合
n
、それはその上のどの床からも壊れたでしょう。卵が落下を生き残るならば、それはそれより短いどんな落下も生き残るでしょう。問題は、解決策を見つけるために必要な卵滴の数を最小限に抑えるために、どのような戦略を採用する必要があるかということです。。(そして、それが取るドロップの数の最悪のケースは何ですか?)
私は「私が3つできることを見てください」セクションまで続いていました。著者は、最初の卵が壊れた後、それは2卵の問題に分解され、再帰的に解決できると述べています。
それは素晴らしいことですが、2個(最初の卵)ではなく3個の卵を使用する場合は、より大きなステップサイズを選択したいと思いませんか?どの階から最初の卵を投げますか?
卵が1つある場合は、1階から開始する必要があります。
卵が2つある場合は、を解いてn(n+1)/2=k
切り上げます。ここn
で、は開始階であり、k
は階数です。
3で...私は式を思い付くのに苦労しています。
これについてもう少し考えてみると、卵が2つある場合、ドロップの最大数は、最初の卵をドロップするフロア数と同じになります。たとえば、2つの卵と100のフロアがある場合、ソリューションは14です。つまり、最初の卵を14階からドロップし、壊れた場合は、1〜13階でさらに13回ドロップする必要があります。
卵が3個の場合、解は9個になります(グラフに示されているように)。ただし、最初の卵を9階に投げたくはありません。その間に1を繰り返す必要がないため、より高く投げることができます。
14階から再び投げて、それが壊れた場合、私たちは再発します。n(n+1)/2=k
ここk
で現在13です...しかし、それは4.815になります。これを天井にして前のドロップを追加すると、実際のソリューションよりも低い6が得られるため、ここで何かが間違っています...