nが1000未満なので1000以下から計算をして見ます。・f(163)=f(f(168))=f(165)=998(1)〜(14)までの計算の結果f(n)のnが奇数の場合は998、偶数の場合は997であることが推測できます。上記の計算によると986≦n<1000の間で正しいと分かります。1000未満の偶数だからf(a)=f(f(a+5))=f(a+2)=998となります。aが偶数ならばa+5は1000未満の奇数だからf(a)=f(f(a+5))=f(a+2)=997となります。従ってn=aに対しても推測は正しいと判断します。以上によりすべてのn<1000なるものにこの推測が正しいと判断します。問題のnは163(奇数)なのでf(163)=f(f(168))=f(165)=998答えは998となります。998f(1000)から追いかけると、f<1000においてnが奇数のとき、f(n)=998nが偶数のとき、f(n)=997となります。)をm回施したものを下記の様に表す。fm(n)のように、まとめて書くようにします。(n<1000)・・・(2)と番号をつけておきます。(n<1000)とできることを意味します。「引数の値を変えずに合成された関数の数を2個減らすことが出来る」ことがわかります。(m>3)という制限がつきます。f[p](n)と記すことができるものとする。・・・(2)と表せる。(2)より、n+5<1000のときf(n+5)=f(f(n+10))=f[2](n+10)なので、これを(2)の右辺に代入してf(n)はf(n)=f(f(f(n+10)))=f[3](n+10)となる。・・・(3)と表すことができる。ここで、f(997)=f[2](1002)=f(999)=f[2](1004)=f(1001)=998f(998)=f[2](1003)=f(1000)=997となるので、これらを(4)に代入して、f(163)=f[167](997)=f[166](998)=f[165](997)=f[164](998)・・・・・=f[3](997)=f[2](998)=f[1](997)=998よって、解は998と求まる。nが1000以上の場合は、直ぐに関数の値が分かります。nが1000より小さい場合、直ぐには値は分かりません。f(999)からf(995)について、調べてみます。f(999)=f(f(1004))=f(1001)=998f(998)=f(f(1003))=f(1000)=997f(997)=f(f(1002))=f(999)=998(上の結果より)f(996)=f(f(1001))=f(998)=997(上の結果より)f(995)=f(f(1000))=f(997)=998(上の結果より)次に、f(994)からf(990)について、調べてみます。その際、上の5つの結果を使います。f(994)=f(f(999))=f(998)=997f(993)=f(f(998))=f(997)=998f(992)=f(f(997))=f(998)=997f(991)=f(f(996))=f(997)=998f(990)=f(f(995))=f(998)=997nの値を10少なくした場合を考えます。989から985の場合は、994から990の部分を参照します。f(986)=f(f(991))=f(998)=997984から990の場合は、989から985の部分を参照します。f(983)=f(f(988))=f(997)=998これらの結果を表にすると、次のようになります。nを下げていくとき同じ仕組みが繰り返されます。nが偶数の場合は997、奇数の場合は998となります。あたりから小さい方に計算してみる。