流れる空の中で数学を。

とある数学好きの「手作りすうがく」と「気ままな雑記」。

【IMO2017】国際数学オリンピックの問題2【解答・解説】

数学関連の絶版本・品切れ本をコチラから購入できます!

2017年国際数学オリンピック(IMO2017)の問題2

前回に引き続き、問題2に挑戦してみた。問題は、次の通り。(http://www.imojp.org/challenge/から引用。)

\mathbb{R}を実数全体からなる集合とする。関数 f: \mathbb{R} \rightarrow \mathbb{R}であって、任意の実数x,yに対して
f(f(x)f(y))+f(x+y)=f(xy)
が成り立つものをすべて求めよ。

 今回はこの問題に半日くらい粘ってみたが、想像以上に手ごわく、残念ながら完答できなかった。完答できていないのに、なんでこの記事を書いてるんだとツッコミをもらいそうだが、これにはちょっとした事情がある。

日本語の解答・解説を求めて

 なかなか解答の糸口をつかめず、「吸収モード」*1に入っていた私は、ヒントや解説をネットで探していた。ところが、解説が英語のものしか見当たらないのである。英語が得意じゃない私は、解答を理解するまでに必要以上の時間を使ってしまった。そこで今回は、解答・解説を日本語に書き直してまとめておくことにした。これで、英語が苦手なみんなも、気軽に数学オリンピックの問題を楽しめるようになるはずだ。*2

今回の解答・解説は、Youtubeに挙げられている次の2つの動画を参考にした。

www.youtube.com

www.youtube.com

これらの動画の解説を、私が理解できた範囲で組み合わせ、まとめ直して翻訳してみた。基本的な解答は1つ目の動画、解答の仕上げの部分は2つ目の動画の方法を使わせていただきました。*3もし私の英語力不足で間違い等があったら、やさしく指摘していただけると助かります。それでは、本題へ。

基本的な観察

 まずは、「f(x)が定数関数であるような解」が存在するか考えてみよう。すべてのxに対し、f(x)=a \in \mathbb{R}とおくと、問題の関数等式より、
a=f(f(x)f(y))=f(xy)-f(x+y)=a-a=0
となる。したがって、f(x)=0は問題の1つの解である。以降、これ以外の解を探すために、f(x)は恒等的に0でないとする。
 次に、x=y=0を代入してみる。*4
f(f(0)f(0))+f(0+0)=f(0 \cdot 0)
\Leftrightarrow f(f(0)^2)=0……①
つまり、f(0)^2というf(x)の零点が存在する。*5
 ここで、f(0)=0であると仮定すると、面白いことが起きる。問題の関数等式にy=0を代入すると、
f(f(x)f(0))=f(0)-f(x)
\Leftrightarrow f(0)=f(0)-f(x)
\Leftrightarrow f(x)=0
f(x)が恒等的に0になってしまうのだ。したがって、恒等的に0でない解を探すため、以後f(0) \ne 0とする。

零点の値を求めて

次に零点の値を調べる。つまり、f(r)=0となる実数rの値を求める。関数等式から、
f(0)=f(f(r)f(x))=f(rx)-f(r+x)
を得るが、f(0)0になってはいけないので、全てのxについて
rx \ne r+x
\Leftrightarrow x(r-1) \ne r
でなければいけない。そして、条件を満たすrは実は1に限る。理由は簡単で、もしr \ne 1ならx=r/(r-1)が上の式の等号を成立させてしまうからだ。
 結局、
f(r)=0 \Rightarrow r=1……②
であることがわかった。*6ここで、f(0)^2が零点であったことを思いだして(①式)、
f(0)^2=1
\Leftrightarrow f(0)= \pm 1
を得る。
 ところで、関数f(x)が問題の関数等式を満たすなら、-f(x)も関数等式を満たす。実際、このことは
f(f(x)f(y))+f(x+y)=f(xy)
\Leftrightarrow -f(f(x)f(y))-f(x+y)=-f(xy)
\Leftrightarrow -f( [-f(x)][-f(y)])-f(x+y)=-f(xy)
と確かめられる。そのため、f(0)=1となる解f(x)から、f(0)=-1となる解を構成することができる。そこで、以降は、
f(0)=1……③
として話を進める。

f(x)単射

 f(x)単射であることを証明する。ここがこの問題の山場であり、本質をつかなければいけない部分に思える。ここで、紹介する証明は、AoPS forumとかいうところ(?)でdnkywinさんが発表した方法らしい。
 ともかく、f(0)=1(③式)としたので、関数等式から
f(f(x)f(1))=f(x)-f(x+1)
\Leftrightarrow f(0)=f(x)-f(x+1) (①、②式より、f(1)=0なので)
\Leftrightarrow 1=f(x)-f(x+1)
\Leftrightarrow f(x+1)=f(x)-1……④

という漸化式のような等式を得る。
 f(x)単射であるというのは、f(a)=f(b)ならばa=bであることを指す。
そこで、f(a)=f(b)とおく。ここで、④式から、f(a)=f(b)の両辺に1を繰り返し足す(または引く)ことで、a \lt 1であるようにできるので、以下記号を適当に置き直してa \lt 1とする。
 ここで、(トリッキーだが)2次方程式
x^2-bx+a-1=0
を考える!すると、a \lt 1より、判別式D=b^2-4(a-1)が正となるので、この2次方程式は2つの実数解r,sを持つ。*7また、解と係数の関係から、
r+s=b
rs=a-1……⑤
である。これで下準備は終わった。満を持して、問題の関数等式でx=r,y=sを代入する!
f(f(r)f(s))=f(rs)-f(r+s)
=f(a-1)-f(b) (⑤式より)
=f(a)+1-f(b) (④式を使った。)
=1 (単射性を証明するときの仮定、f(a)=f(b)より。)
再び、④式を使って、
f(f(r)f(s)+1)=0 
ここで、②式より、
f(r)f(s)+1=1
\Leftrightarrow f(r)f(s)=0
を得る。すなわち、
f(r),f(s)の少なくとも一方が0
\Leftrightarrow r,sの少なくとも一方が1 (②式より)

が言える。ここで、解と係数の関係の式⑤に立ち返ると、
b=1+s
s+1=a
等から、a=bを得る*8。よって、f(a)=f(b) \Rightarrow a=bが言えたので、f(x)単射であることが証明された。

最後の仕上げ

最後の仕上げは、冒頭で挙げた2つ目の動画から紹介させていただきます。*9
 問題の関数等式で、y=-xとおくと、
f(f(x)f(-x))=f(-x^2)-f(0)
\Leftrightarrow f(f(x)f(-x))=f(-x^2)-1 (③式より)
\Leftrightarrow f(f(x)f(-x))=f(1-x^2) (④式より)
ここで、関数f単射性より、
f(x)f(-x)=1-x^2……⑥
を得る。
 同様に、問題の関数等式でy=1-xとおくと、
f(f(x)f(1-x))=f(x(1-x))-f(1)
\Leftrightarrow f(f(x)f(1-x))=f(x(1-x)) (①、②式より、f(1)=0なので)
再び、関数f単射性より、
f(x)f(1-x)=x(1-x)
\Leftrightarrow f(x)(f(-x)-1)=x(1-x) (④式より)
\Leftrightarrow f(x)f(-x)-f(x)=x-x^2
ここで、⑥式を用いると、
1-x^2-f(x)=x-x^2
\Leftrightarrow f(x)=1-x
を得る。よって、③式の上の方で書いたように、f(x)が解なら-f(x)も解である。よって、問題の関数等式を満たす解は、
f(x)=0,1-x,x-1
の3つである。

*1:問題を完全に見なかったことにして諦めるのではなく、さっさと解答を見て、そこから何かを吸収して成長するモードである。

*2:といっても、日本語に直してもなお、今回の問題は手ごわい。

*3:2つ目の動画は、f(x)単射性の証明に飛躍があるように思えたので注意しておきます。

*4:この手の素朴な実験は、問題に取り掛かり始めるときの常套手段だ。

*5:同様に、x=y=2を代入すると、f(2)^2も零点であることがわかる。ところが、こちらの零点は、今回の解答では出番がない。

*6:零点が存在することは、①式で証明されているので、逆にf(1)=0であることも当然言える。

*7:ここで、実数であることが重要だ。すぐ後で、関数fの変数としてr,sをとるからだ!

*8:r=1としたが、s=1としても同様にa=bが示せる。

*9:ここでは、元の動画と異なり、f(0)=1ととってあるので注意してください。