「brainfuckでn文字のコードでメモリ上に残すことができる最大の自然数」を\(BF(n)\)とする(メモリの個数も大きさも無限大とする)。brainfuckはチューリング完全(いかなる計算可能関数も表現できる)なので、\(BF(n)\)は計算不可能関数であり、\(f_{{\omega}_1^{CK}}(n)\)程度の強さである。
| n | BF(n)の下限 | コード |
|---|---|---|
| 1 | 1 | + |
| 2 | 2 | ++ |
| 3 | 3 | +++ |
| 4 | 4 | ++++ |
| 5 | 5 | +++++ |
| 6 | 6 | ++++++ |
| 7 | 7 | +++++++ |
| 8 | 8 | ++++++++ |
| 9 | 9 | +++++++++ |
| 10 | 10 | ++++++++++ |
| 11 | 11 | +++++++++++ |
| 12 | 12 | ++++++++++++ |
| 13 | 16 | ++++[->++++<] |
| 14 | 20 | +++++[->++++<] |
| 15 | 25 | +++++[->+++++<] |
| 16 | 30 | +++++[->++++++<] |
| 17 | 36 | ++++++[->++++++<] |
| 18 | 42 | +++++++[->++++++<] |
| 19 | 49 | +++++++[->+++++++<] |
| 20 | 56 | ++++++++[->+++++++<] |
| 21 | 121 | ->>>>>+[>[-<+++>]<<+] |
| 22 | 364 | ->>>>>>+[>[-<+++>]<<+] |
| 23 | 1365 | ->>>>>>+[>[-<++++>]<<+] |
| 24 | 5461 | ->>>>>>>+[>[-<++++>]<<+] |
| 25 | 21845 | ->>>>>>>>+[>[-<++++>]<<+] |
乗法
以下のコードは、自然数a,bに対してabを計算する。
a{+}[->b{+}<]
ここで、a{文字列}はa個の文字列(今回はa個の+)を表す。
冪乗
以下のコードは\(\frac{b^{a}-1}{b-1}\)を計算する。
-a{>}+[>[-<b{+}>]<<+]
再帰
\(f(n)\)に対し、\(f^n(n)\)は以下のコードで計算できる。
n{+}[->+>+<<]>[->F<]
ここで、Fはポインタがさしている値nをf(n)に書き換える操作を表す。これを使うと急増化関数はこのように計算できる。
\(f_0(n)\)=
n{+}+
\(f_1(n)\)=
n{+}[->+>+<<]>[->+<]
\(f_2(n)\)=
n{+}[->+>+<<]>[->[->+>+<<]>[->+<]>[-<<+>>]<<<]
\(f_3(n)\)=
n{+}[->+>+<<]>[->[->+>+<<]>[->[->+>+<<]>[->+<]>[-<<+>>]<<<]>[-<<+>>]<<<]
ちなみに短くしようとすれば\(f_3(n)\)はここまで短くなる。
n{+}[->+>+>+<<<]>[->[->[->++<]>[-<+>]<<]>[-<+>]<<]