Collatz 予想は、良く知られているように
(C) 正整数に対し、偶数ならば2で割り、奇数ならば3倍して1を足す
なる操作を繰り返すと、全ての正整数は1に到達する。というものである。この操作を
(C2) 正整数を2進数として見て、1の位が0ならば1桁下位にシフトし、1の位が0でないならば1桁上位にシフトしたものを足して1の位を繰り上げて0にする
と読み替える。これの3進数類似を考える。「1の位を繰り上げ」るのは丸め方の指示だと思うと、同様に全て繰り上げる方法の他に近い方に丸めるという方法もある。
(C3-ceilling) 正整数を3進数として見て、1の位が0ならば1桁下位にシフトし、1の位が0でないならば1桁上位にシフトしたものを足して1の位を繰り上げて0にする
(C3-round) 正整数を3進数として見て、1の位が0ならば1桁下位にシフトし、1の位が0でないならば1桁上位にシフトしたものを足して1の位を丸めて一番近い3の倍数にする
この二つの規則を考えてみよう。
C3-ceilling
まずは計算しよう。
1→6→2→9→3→1
4→18→6...
5→21→7→30→10→42→14→57→19→78→26→105→35→141→47→189→63→21(ループ)
8→33→11→45→15→5...
12→4...
13→54→18...
16→66→22→90→30...
17→69→23→93→31→126→42...
... は既出の列に合流した、という意味。 1を含むループに落ち込むケースと7を含むループに落ち込むケースがあるようだ。
C3-round
こちらも計算してみよう。
1→3→1
2→9→3...
4→15→5→21→7→27→9...
6→2...
8→33→11→45→15...
10→39→13→51→17→69→23→93→31→123→41→165→55→219→73→291→97→387→129→43→171→57→19→75→25→99→33...
12→4...
14→57...
16→63→21...
18→6...
ここまで全て1への流れに合流している。 もっと先まで計算してみても全部合流する、つまり全ての正整数がやがて1に到達するようだ。 Collatz 予想と同様にこれが成り立つと予想して、「3進丸め Collatz 予想」と呼んでおこう。 既に誰かが扱っている気がしなくもないが。 普通な述べ方でも書いておこう。
3進丸め Collatz 予想: 正整数 n に対し「n = 0 mod 3 なら 3 で割る。n = 1 mod 3 なら 4 倍して 1 を引く。n = 2 mod 3 なら 4 倍して 1 を足す」 なる操作を繰り返すと、全ての正整数は1に到達する。
4,5,6,...
3進数でできるなら、その先がどうなるかももちろん気になる。 4進数では2で1回だけ割り切れるパターンの扱いが新しい悩みだが、素直に1回割っておくことにして、残りの剰余は近い方へ丸める、とすると、1→4→2→1のループの他に7→36→9→44→11→56→7というループが生まれる。 5進数でも近い方に丸める戦略で考えると、1→5→1はともかく2→10→2も別のループなので多分面白くない。 6進数は4進数と同じく6の約数で割り切れるときをどう扱うかという問題も出てくるのだが、たとえば2で割り切れるなら2で割って3で割り切れるなら3で割るという、できる限り割ってしまおう戦略で考えて余り1を切り捨て余り5を切り上げ、と決めると
1→6→1
5→36→1
7→48→1
11→78→13→90→5...
17→120→5...
19→132→11...
23→162→1
25→174→29→204→17...
31→216→1
35→246→41→288→1
37→258→43→300→25...
全て1に到達する流れに合流しているし、この先も1に到達しそう。つまり6進丸め Collatz 予想もありそうということだ。
7進数以降は5進数と同じで切り捨てる方の剰余からそれぞれ一つのループができてしまって全てが1に到達するようにはならない。