ぐらんこ。の部屋(るーるるー♪)

執筆活動とたこ虹家族&鯛員&モノノフ活動とその他もろもろ

答えになっていない答えFor【アルゴリズム】連続した数字の並びの固まりがいくつかあるとします。

10個前後っていうことなので、奇数始まりの数、偶数始まりの数、奇数終わりの数、偶数終わりの数のチェックからですかね。
偶数終わりと奇数始まり、奇数終わりと偶数終わりが同数ならばよいのですが、そうじゃないと始め、終わりを調整しないといけませんし。

 

でも、並び替えアルゴリズム作ったところで……ってのもあります。

 

わたしなら、全通りの並べ方を試してみて、条件を満たしているかどうかを判定し、合致しているものについては初めの並び順と近いかどうかを比べて行くと思います。
さて、どういったアルゴリズムになるか……ですが、『できるだけ近い並び順』という要件ではなかなか評価しづらいです。
例えば5通りの並び順、ABCDEがあったとします。
これがEABCDに並び変わったのと、ABCEDに並び変わったのと、どちらが元に近いか。
前者は一個ずつずれているだけとも言えるし、すべて順序が変わってしまった、ともとれる。
後者は入れ替わりが一か所だけなので直感的に近いと感じられる。
後者なんだろうなーとは思うのですが、であれば、元の位置との差を求めてしまって、差の合計で評価するって感じでしょうかね。
前者だったら-4,+1,+1,+1,+1で差は8(プラスであろうがマイナスであろうがずれはずれ)
後者だったら0,0,0,-1,+1で差は2。
自前で並べ替えアルゴリズムを組んだところで、出てきた答えが最適解なのかどうかわかりづらいので全通りやっちゃったほうが良い気がします。