これは編集距離の質問の一種で、とても簡単です。私はこの問題についてはかなり頭がおかしくて、今のところそれを理解することはできません。
一連の数値が与えられた場合、例えば
[3, 1, 1, 1]
「ムーブ」の数を最小限に抑えて、すべての数値を同じ数値に最も効率的に変換するにはどうすればよいでしょうか。「移動」とは、数値から1を追加または削除することを意味します。
上記の例では、最も効率的な移動は次のとおりです。
[1, 1, 1, 1]
これには2回の移動が必要で、最初の数を2回減らします。
数百の数のはるかに大きな配列を考えると、これを見つけるための最良の方法を見つけることができません。
私は最初に丸められた平均数(長さで割ったすべての合計)を計算してから、計算された平均に減らしましたが、上記の例はこれを壊し、2の代わりに4手を必要としました。
私は理解できると思います:
- 平均、
- モード、
- 中央値
そして、それぞれの編集距離を取得し、最小距離を選択します。ただし、これがすべてのインスタンスで正しいかどうかはわかりません。どうやって知ることが出来ますか?