ここではさっきの記事のことを具体的に機械的な計算の仕方について説明します
[1]カスケードからの移行の仕方
9(∞)→2a24kg(∞)をやります
2a24kgの状態は{0,1,3,5,6,9,12,15,18}です
{0,1,3,5,6,9,12,15,18} (←移行先の状態)
{9,8,7,6,5,4, 3, 2, 1} (←9から1まで降順)(ここでの「9」とは↑の数列の要素の個数によるものです)
と並べて足します
{9,9,10,11,11,13,15,17,19}
これをあとはサイトスワップとみなして直すのですが
最初の9はカスケードに含まれるので省略して
9(∞)→abbdfhj→2a24kg(∞)
という答えがでます
ここで移行先の状態の順番を適当に入れ替えてもできるはずです
実際
{9,5,3,1,6,0,18,15,12}
{9,8,7,6,5,4, 3, 2, 1}
を足して
{18,13,10,7,11,4,21,17,13}
よって
9(∞)→ida7b4lhd→2a24kg(∞)
という答えが出てこれも可能です
しかし21とか高い数字が出てくるので少し考えればわかるのですが
はじめにやったように移行先の状態は昇順にするほうが最大の高さが小さくなります
[2]カスケード以外から移行する場合
例えば
2a24kg(∞)→801l6i(∞)
を考えましょう
いきなり重要なのですが移行前と移行後の状態をならべます
{0,1,3,5,6, 9,12,15,18} (移行前の状態)
{0,2,4,5,6,11,12,17,18} (移行後の状態)
そして移行前の状態に注目します
すると{0,1,3,5,・・・のように数字が飛び飛びになっているところがありますね
そこを全部「*」で埋めてしまいます
と同時に下にも同じ位置に「*」を入れます
つまり
{0,1,*,3,*,5,6,*,*, 9,*,*,12,*,*,15,*,*,18}
{0,2,*,4,*,5,6,*,*,11,*,*,12,*,*,17,*,*,18}
ということです
さぁ後は下のものを[1]でやったように処理します
{ 0, 2, *, 4, *, 5, 6, *, *,11,*,*,12,*,*,17,*,*,18}
{19,18,17,16,15,14,13,12,11,10,9,8, 7,6,5, 4,3,2, 1}
ここで足し算をするのですがここで条件があります
*は何を足しても*です
さぁそれを念頭において計算します
{19,20,*,20,*,19,19,*,*,21,*,*,19,*,*,21,*,*,19}
あとはこの「*」を全て0に変えてしまいましょう
{19,20,0,20,0,19,19,0,0,21,0,0,19,0,0,21,0,0,19}
これを綺麗にして
2a24kg(∞)→ jk0k0jj00l00j00l00j →801l6i(∞)
という答えが出ました
ここでもたぶん移行先の順番を入れ替えたら違う答えが得られると思います(予想)
実際自分で計算する時は簡略化してやるのですが説明の便宜上「*」とか使いました
状態も手で計算できたら便利ですが説明が面倒なので割愛
状態出せるソフトあるからまぁいいじゃないですか
あと[2]のほうは結構悠長な移行が多いです
実際741(∞)→714(∞)では5でできるのですが
この計算だと55605と出てきます
だから十分条件がでるというだけで必ずしも効率のいい接続とは限りません
機械的にやろうとするとどうしてもこうなってしまうのでしょうかね
[2]については改善の余地があると思います
[1]カスケードからの移行の仕方
9(∞)→2a24kg(∞)をやります
2a24kgの状態は{0,1,3,5,6,9,12,15,18}です
{0,1,3,5,6,9,12,15,18} (←移行先の状態)
{9,8,7,6,5,4, 3, 2, 1} (←9から1まで降順)(ここでの「9」とは↑の数列の要素の個数によるものです)
と並べて足します
{9,9,10,11,11,13,15,17,19}
これをあとはサイトスワップとみなして直すのですが
最初の9はカスケードに含まれるので省略して
9(∞)→abbdfhj→2a24kg(∞)
という答えがでます
ここで移行先の状態の順番を適当に入れ替えてもできるはずです
実際
{9,5,3,1,6,0,18,15,12}
{9,8,7,6,5,4, 3, 2, 1}
を足して
{18,13,10,7,11,4,21,17,13}
よって
9(∞)→ida7b4lhd→2a24kg(∞)
という答えが出てこれも可能です
しかし21とか高い数字が出てくるので少し考えればわかるのですが
はじめにやったように移行先の状態は昇順にするほうが最大の高さが小さくなります
[2]カスケード以外から移行する場合
例えば
2a24kg(∞)→801l6i(∞)
を考えましょう
いきなり重要なのですが移行前と移行後の状態をならべます
{0,1,3,5,6, 9,12,15,18} (移行前の状態)
{0,2,4,5,6,11,12,17,18} (移行後の状態)
そして移行前の状態に注目します
すると{0,1,3,5,・・・のように数字が飛び飛びになっているところがありますね
そこを全部「*」で埋めてしまいます
と同時に下にも同じ位置に「*」を入れます
つまり
{0,1,*,3,*,5,6,*,*, 9,*,*,12,*,*,15,*,*,18}
{0,2,*,4,*,5,6,*,*,11,*,*,12,*,*,17,*,*,18}
ということです
さぁ後は下のものを[1]でやったように処理します
{ 0, 2, *, 4, *, 5, 6, *, *,11,*,*,12,*,*,17,*,*,18}
{19,18,17,16,15,14,13,12,11,10,9,8, 7,6,5, 4,3,2, 1}
ここで足し算をするのですがここで条件があります
*は何を足しても*です
さぁそれを念頭において計算します
{19,20,*,20,*,19,19,*,*,21,*,*,19,*,*,21,*,*,19}
あとはこの「*」を全て0に変えてしまいましょう
{19,20,0,20,0,19,19,0,0,21,0,0,19,0,0,21,0,0,19}
これを綺麗にして
2a24kg(∞)→ jk0k0jj00l00j00l00j →801l6i(∞)
という答えが出ました
ここでもたぶん移行先の順番を入れ替えたら違う答えが得られると思います(予想)
実際自分で計算する時は簡略化してやるのですが説明の便宜上「*」とか使いました
状態も手で計算できたら便利ですが説明が面倒なので割愛
状態出せるソフトあるからまぁいいじゃないですか
あと[2]のほうは結構悠長な移行が多いです
実際741(∞)→714(∞)では5でできるのですが
この計算だと55605と出てきます
だから十分条件がでるというだけで必ずしも効率のいい接続とは限りません
機械的にやろうとするとどうしてもこうなってしまうのでしょうかね
[2]については改善の余地があると思います