18/07/18 22:16:47.18 6M2SJbed.net
手順としては
(1) まずmin(f(a),f(b),f(c))=sとなるまで、fの値の小さい2つを対象に操作Xを行う
(2) min(f(a),f(b),f(c))=sとなったら、fの値の大きい方から2つが一致してない場合は
fの値の一番大きいものと一番小さいものを対象に
fの値の大きい方から2つが一致するまで操作Xを繰り返す。
(3) fの値の大きい方から2つが一致していたら、
その2つを対象に操作Xを行う。この結果fの値の上から2番目が1増える。
(4) (2)(3)を繰り返す
この流れのどこかで、必ずa,b,cのいずれかが0になる。
たとえば、
(a,b,c)=(13,42,69)からスタートする。このとき
[f(a),f(b),f(c)]=[0,1,0]であり、
S=a+b+c=124、s=f(S)=2
手順(1)
(13,42,69)[0,1,0]
→(26,42,56)[1,1,3]
→(52,16,56)[2,4,3]
手順(2)
→(36,32,56)[2,5,3]
→(4,64,56)[2,6,3]
→(8,60,56)[3,2,3]
手順(3)
→(16,60,48)[4,2,4]
手順(3)
→(32,60,32)[5,2,5]
手順(3)
→(64,60,0)[6,2,-]