数学ゴルフ 15両
この前のやつから。問題はhttp://www.jmuk.org/diary/2007/09/10/2に載ってます。答えは続きを読むでどうぞ。
0z xb y(xz 0a b(ab +a yz))
で、書くためのコストが13両、変数のコストが2両で合計15両。
適当に説明すると
0a b(ab +a)
でデクリメント(b = b - 1)。ただし b = 0 ならそのままxb y(0a b(ab +a))
で引き算(b = x - y)。ただし x < y なら b = 0- x < y なら最後の y によるループのときに b = 0 なので、代入を埋め込んで
xb y(xz 0a b(ab +a yz))
- y = 0 のときに上手くいかないので
0z
を加えて完成
でもhttp://d.hatena.ne.jp/shinichiro_h/20070911#1189441524の18両は気づかなかったなぁ。