しばらく前、私は夜遅くに洗濯をしていました。洗濯物を寮に持ち帰ると、片付け始めました。
私のワードローブは次のように設定されています:
- 私の引き出しは、持っている衣類の種類によって分類されており、私はそのことに非常にこだわっています。これは、パンツの引き出しにTシャツを入れられないことを意味します(それ以外の場合は、毛羽立ちすぎて寝ることができません)。もちろん、私はこの分類を知っており、暗闇の中でもどの引き出しがどれであるかを知っています。
- 私はきれいな洗濯物を個持っており、引き出しが縦に並んでいます(引き出しの一番上が)
- 引き出しは開閉可能ですが、引き出しが開いていると、衣類を引き出し入れることができません(ブロックされているため)。
- 部屋に入ると、引き出しはすべて閉じています。
- 終了したら、開いている引き出しをすべて閉じなければなりません。
私は思いやりのある紳士で、ルームメイトを起こしたくありません(これは大学の寮だったので、同じ部屋で寝ていました)。私はライトをオンにしないで、できるだけノイズを少なくすることにしました。
これは、以下の制約の下で洗濯物を片付けなければならないことを意味します。
- 洗濯物が見えないので、引っ張った瞬間に何を掴んでいるか分からない。
- 引き出しを開閉すると音がします。ランドリーバッグからアイテムを引き出したり、実際に引き出しに入れたりしても、そうはいきません。
- 一度に片方の衣類しか片付けることができません。床が汚れすぎて手が届かない家具のスペースがないので、私は服のように折りたたんで積み重ねることができません(それからそれらの積み重ねを置きません)。
- 衣類をバッグに入れて別のアイテムを取り出すことはできますが、次に取り出すのは、入れたばかりのアイテムである可能性があります(バッグから何を取り出すかは制御できません)。
このことから、3つの質問があります。
- 引き出しの開閉をできる限り少なくするために、洗濯物をどのように片付けることができますか?
- 他の誰かがこの問題または同様のことを考えましたか?
- この問題には実用的な用途がありますか?
アイテムを洗濯バッグに静かに詰め込んで別のものを抽出できますか、それともスタックとして扱う必要がありますか?
—
カイルジョーンズ
これを変数として考えたことはありません。アイテムを元に戻して別のものを引き出すことができるとしましょう(ただし、もう一度引き出すアイテムは、元に戻したばかりのアイテムである可能性があります)。
—
JesseTG 2015年
@KyleJonesその戦略では、ジェシーは高い確率で睡眠をとらないかもしれません。
—
ラファエル
もちろん、いくつかの実用的な答えがあります。1)ルーミーが眠っている間は行わないでください。2)事前に並べ替えて折りたたむためのクリーンな領域を作成します。3)種類別に洗います。4)洗濯機からアイテムを引き出しながら、ランドリールームの引き出しで事前に並べ替えます。(そこにクリーンスペースがない場合は、引き出しごとに1つのバッグを取得します。)
—
ラファエル
コンピュータサイエンスの質問に関しては、興味深い。それは主に確率論の演習だと思います。次に取得するアイテムをある程度制御できない限り、アルゴリズムはほとんど機能しません。
—
ラファエル