次の問題には解答が付いていました

例題
非負整数から非負整数への関数f(x)で次の条件を満たすものを全て求めよ
条件: f(m+f(n))=f(f(m))+f(n)…(1)が全ての非負整数m, nに対してなりたつ。


解答例
(1)でm=n=0とするとf(f(0))=f(f(0))+f(0)よらf(0)=0となる。
(1)でm=0とするとf(f(n))=f(n)…(2)
(2)は任意のnに対してf(n)がfの不動点であることを示す。すると
(1)⇔f(0)=0かつf(m+f(n))=f(m)+f(n)…(3)である。
関数f(n)=0…(4)は(3)を満たす。
(4)以外の関数について考える。fの最小の不動点をbとする。bはb>0の整数。
(3)においてm=n=bとすると
f(2b)=2f(b)
m=b, n=2bとするとf(3b)=3b
これによりf(nb)=nb…(5)が導かれる。(nは非負整数)
(5)でb=1とするとf(n)=n…(6)となる
(6)は(3)を満たすので(3)の解である。
b≥2とする。任意の不動点cは
c=kb+r、0≤r≤b-1、kは非負整数
とおける
c=f(c)=f(kb+r)=f(f(kb))+f(r)=kb+f(r)
よってf(r)=r
bは正で最小の不動点なのでr=0
よって全ての太う点cはc=kbという形をしている
f(f(i))=f(i)ならばf(i)=bn(i)とおける
ここでn(i)は非負整数値を取る数列、0≤i≤b-1
n=kb+i、0≤i≤b-1、
f(n)=f(kb+i)=kb+f(i)=kb+n(i)b
f(n)=([n/b]+n(i))b (b≥2)