今回はこちらの問題を解いていきます.
すべての実数\(x\)で定義された関数\(f(x)\)はすべての整数\(n\)に対して,
$$
f(nx)=\left\{f(x)\right\}^n
$$が成り立ち, さらに\(f(1)=2\)である. ただし, \(f(x)\)のとりうる値は\(0\)を除く実数とする.
このとき, 以下の問いに答えよ.
(1) \(f(n)<100\)を満たす最大の整数\(n\)を求めよ.
(2) すべての実数\(x\)に対して, \(f(x)>0\)であることを証明せよ.
(3) \(f(0.25)\)の値を求めよ.
(4) \(a\)が有理数のとき, \(f(a)\)を\(a\)の式で表せ.
(2025 北海道大学 文系[4])
こちらの問題は高校数学のテキスト, 問題集ではあまり見かけないタイプの問題です. パズルのような感じで, 解法のアイディアが思いつけば簡単に解け, 思いつかなかったら解くことが難しいです.
関数の形を決定する問題ですが, 肝となるのは,
$$
f(nx)=\left\{f(x)\right\}^n
$$の関係式です. この形から, 指数関数を思い付きます. 実際, 指数関数\( \displaystyle f(x)=a^x\)は, \( \displaystyle f(nx)=a^{nx}=(a^x)^n=\left\{f(x)\right\}^n\)を満たしいます. そして, \(f(1)=2\)であることから, \(f(x)=2^x\)になると予想できます. そしてこの予想は半分正しいです. 解答の後にこちらについて補足しますが, このように関数の形をある程度予想しておくと解きやすいかと思います.
それでは解いていきましょう.
(1) 整数\(n\)に対して,
$$
f(n)=f(n\cdot 1)=\left\{f(1)\right\}^n=2^n
$$となるので,
$$
f(n)=2^n<100
$$を解けば良い. \(2^n\)は\(n\)に関して単調に増え, \(2^6=64<100\), \(2^7=128>100\)より, この不等式を満たす最大の整数は\(6\)である.
(2) \(2\)は整数だから, 実数\(x\)に対して,
$$
f(x)=f\left(2\cdot\frac{x}{2}\right)=\left\{f\left(\frac{x}{2}\right)\right\}^2
$$となり, \(\displaystyle f\left(\frac{x}{2}\right)\)は\(0\)でない実数なので\(2\)乗すると正となる. よって,
$$
f(x)=\left\{f\left(\frac{x}{2}\right)\right\}^2>0
$$がわかる.
(3) \(\displaystyle 0.25=\frac{1}{4}\)に注意して,
$$
2=f(1)=f\left(4\cdot \frac{1}{4}\right)=\left\{f\left(\frac{1}{4}\right)\right\}^4=\left\{f\left(0.25\right)\right\}^4
$$であるから, \(f(0.25)\)は\(4\)乗すると\(2\)になる実数である. そして(2)より\(f(0.25)>0\)だから,
$$
f(0.25)=2^{\frac{1}{4}}
$$がわかる.
(4) \(a\)を有理数とすると, 正の整数\(p\)と, 整数\(q\)が存在して,
$$
a=\frac{q}{p}
$$と表せる.
$$
f(q)=f(p\cdot a)=\left\{f\left(a\right)\right\}^p
$$であり, (1)の議論より, 整数\(q\)に対して\( \displaystyle f(q)=2^q\)であるから,
$$
\left\{f\left(a\right)\right\}^p=2^q
$$となり, (2)から\( \displaystyle f\left(a\right)>0\)なので,
$$
f(a)=\left(2^q\right)^{\frac{1}{p}}=2^{\frac{q}{p}}=2^a
$$がわかる.
当初予想した通り, 少なくとも有理数\(a\)に対しては, \(f(a)=2^a\)がわかりました. それでは実数\(x\)に対して, \(f(x)=2^x\)となるかと問われれば, 答えは「ノー」です.
例えば, \(f(x)\)を
$$f(x)=\left\{
\begin{array}{ll}
2^x & (xが有理数の時) \\[1.5ex]
3^x & (xが無理数の時)
\end{array}
\right.$$で定義すると, これは\(f(x)\)が満たすべき条件を全て満たします.
実際, \(f(1)=2\), \(f(x)>0\)はすぐにわかります. \(x\)が有理数のとき, 整数\(n\)に対して\(nx\)もまた有理数なので,
$$
f(nx)=2^{nx}=\left(2^x\right)^n=\left\{f(x)\right\}^n
$$となり, 条件式を満たします. さらに, \(x\)が無理数のとき, \(n\)を\(0\)でない整数とすると, \(nx\)もまた無理数なので,
$$
f(nx)=3^{nx}=\left(3^x\right)^n=\left\{f(x)\right\}^n
$$となり, こちらも条件式を満たします. また, \(x\)が無理数で, \(n=0\)のときは, \(nx=0\cdot x=0\)は有理数なので,
$$
f(n\cdot x)=f(0)=2^0=1=\left(3^x\right)^0=\left\{f(x)\right\}^0=\left\{f(x)\right\}^n
$$となり, やはりこの場合も条件式を満たします.
このように有理数\(x\)に対しては, \( \displaystyle f(x)=2^x\)が確定しますが, 無理数\(x\)については, \(a\)を\(0\)ではない実数として, \( \displaystyle f(x)=a^x\)としても良いことがわかります. 特に\(a=1\)とすれば, 無理数に対して常に\(1\)を返す関数でも条件を満たすことがわかるのです.
無理数に関しても\( \displaystyle f(x)=2^x\)が確定するようにしたい場合は, 「\(f(x)\)は連続関数である」という条件を加えれば良いです. この辺りは大学の微積の授業で, 指数関数を厳密に定義する際に詳しく学びます.
youtubeでも解説しています.