「ディリクレ関数」という病的な関数があります。こんなのです。
「」とは「に関する関数ですよ」ってことです。すなわちディリクレ関数とは、「に有理数を入力すると1が、無理数を入力すると0が出てくる関数ですよ」ということを意味しています。
あ、「ディリクレ」は人名です。こういう関数を考えた人がいたよってことです。
なんか便利そう
それ自体の有用性はいろいろあるとは思うし、この関数は「いたるところで不連続」というかなり面白い特徴を持つ関数なんですが、今回の話はそこではありません。
「有理数のとき1、無理数のとき0」っていう定義、なんか便宜的っぽいですよね。あぁたしかにそんな関数あったらなんかに使えそうだし、定義しといてもいいよね、って感じで。しかしなんとこの関数、一つの閉じた式として表せるのです。それがこちら。
n,kは整数とします。なかなかビックリじゃないですか? 有理数と無理数との場合分けを表すのにコサインや階乗が出てきて、しかもそれでちゃんと場合分けが表せているなんて。今回の記事はこれの解説です。読んだ後にはきっとコサインや階乗が出てくる意味に納得できているはずです。
①内側の極限 ─それぞれの役割─
とりあえずなんかよくわからん「リム」とか「2ケーじょう」とか「エヌ!」とかは置いといて、まずは 「とはどんな関数か?」ということを考えます。こんな関数です。
がだんだん大きくなっていくときのの値を想像するとわかりやすいのですが、とにかく周期2(横)で1と-1の間を行ったり来たりする(縦)ことを繰り返す関数なわけです。があるのは周期を整数にするためです。このに、
①1を足して、
②縦に半分にして、
③横に半分にすると、
「周期1で、1と0の間を行ったり来たりする関数」になります。確認してみましょう。
なってますね。
というか、考えの順番としては実は逆で、「周期1で、1と0の間を行ったり来たりする関数」がとにかく欲しいわけなので、それを得るにはをどう変形させればいいかな? と考えてこの変形をしたみたいな感じです(もっというと、本当は「入力が整数のとき1で、入力が整数でないとき0」がほしいのです。今のはその前段階です)。
ところで、三角関数の公式の一つに「半角公式」というのがあり、それをあてはめるとさっきの式は
となります(「あてはめる」というか、これがその半角公式そのものです)。のままでも別にいいのですが、これは式の表示をより簡潔にするためです。
上記の「周期1で、1と0の間を行ったり来たりする関数」は、のときなので、のときも、のときも…となって、これはつまり「入力が整数のとき1で、入力が整数でないとき、0以上で1より小さい値を出力する関数」ともいえます。グラフを見ると明らかですね。
これを「入力が整数のとき1で、入力が整数でないとき0」にしたいのです。つまり「0以上で1より小さい値」の部分を全部「0」にしちゃいたい、というわけです。どうすればよいか。
そうだね。めちゃくちゃべき乗していけばいいね。
「0以上で1より小さい値」は、どんどんべき乗の値を増やしていくことによって0に限りなく近づきます。例えばの2乗は「の」、3乗は「のの」なわけです。0にぐんぐん近づいてますよね。これが「0.999999」とかでも、べき乗を繰り返せば0に近づくことは変わりません。
それに対して、1は何乗しても1のままです。
というわけで、「入力が整数のとき1で、入力が整数でないとき、0以上で1より小さい値を出力する関数」であるは、べき乗しまくることにより「入力が整数のとき1で、入力が整数でないとき0」にぐんぐん近づいていくことがわかりました。
視覚化するとこんな感じです。
これが、内側の極限がやっていた仕事だったわけです(についてはこのあとすぐ)。というのがつまり「kを限りなく大きくしていいよ」ってことなんですね。
「」は、周期的な関数を実現するため。
「」「」は、周期を整数にするため。
「」「」は、1と0にくっきり分けるため。
それぞれが果たしていた役割がおわかりいただけたでしょうか。
ここまでのまとめ
今手にしているものを確認します。それは「入力が整数のとき1で、入力が整数でないとき0」という関数でした。コサインと極限にがんばってもらいました。そして最終的な目標は何だったか? というと、それは「入力が有理数のとき1で、入力が有理数でない(無理数の)とき0」という関数でした。
つまり、「有理数⇒1」と「無理数⇒0」という構造が欲しいのです。ここまでで手に入ったのは「整数⇒1」「非整数⇒0」でした。これに加えて、「有理数⇒整数」「無理数⇒非整数」が手に入ればおいしいわけです。この二つが揃えば、「有理数⇒整数⇒1」「無理数⇒非整数⇒0」になって「有理数⇒1」「無理数⇒0」が手に入るという寸法です(推移律)。
②外側の極限 ─なぜ階乗か─
天下り的に言ってしまうと、は、がじゅうぶん大きければ、が有理数のときは整数になり、無理数のときは非整数になります。それはなぜか。
xが無理数のとき
まずが無理数のときを考えます。「」の「」とは階乗のことで、例えばを意味します。は整数でした(そう定義した)。整数×整数=整数なので、も整数になります。なので、は「0でない整数」ということになります。0でない整数×無理数=無理数なので、が無理数のとき、「」はがなんであれ無理数であり、どうあがいても整数にはなれません。これで、「無理数⇒非整数」が手に入りました。
xが有理数のとき
もう一つの、「が有理数ならは整数」を考えます。
そもそも有理数とは、(整数ぶんの整数)と表すことができる数のことでした。そんな有理数に対して、がじゅうぶん大きいをかければ、は必ず整数になります。
はい。意味わかりませんね。つまりはこういうことです。
ある有理数を例えばでとしてみます。これにをかけるわけですが、まずが、この有理数の分母である以上ならば、はその因数に必ずを含んでいることになります。例えばはその途中に「」という部分があります。実際のの値はデカイので計算は面倒ですが、少なくともそれは「がかかっている数である」ということは確実なわけです。これにより、という計算をすると、分子の因数によって分母のが「払われて」、分母が1になるということが分かります。分子は整数×整数で整数なので、これはつまり全体としても整数になったことを意味します。
の分母がどんな整数でも、つまりがどんな有理数でも、のをじゅうぶん大きく取れば、 分子の因数の中のどこかに必ず分母の数が現れるので、を整数にすることができる。ということです。これこそが階乗を使った意味だったのです。なんというか、まるで魔法のようです。
ということで、「有理数⇒整数」が手に入りました。
2つを統合する
ここまで来たところで、最初の式を見返してみます。
内側の極限は、「整数のとき1で非整数のとき0」という働きをしていたわけです。そのために「」「」「」などを使ったのでした。その旨を書いてみると、こんな感じになります。
整数のとき1で非整数のとき0を返す関数
「整数のとき1で非整数のとき0を返す関数」に「」が入力されている、という表示だと思って下さい。が有理数のときを考えると、さっきの解説の通り、によって有理数が整数になるので、関数はこうなります。
整数のとき1で非整数のとき0を返す関数(整数)
やった!ちゃんと1が出てきた! 無理数のときは省略しますが明らかですね。
まとめ
・「有理数⇒1」「無理数⇒0」という場合分け関数が一つの式で表せる。でもどうやって?
・「」「」「」「」を使って、「整数⇒1」「非整数⇒0」が実現できる
・「」「」を使って、「有理数⇒整数」「無理数⇒非整数」が実現できる
・二つを組み合わせれば、「有理数⇒1」「無理数⇒0」が実現できる!
意外と長い道のりでした。ディリクレ関数について、おわかりいただけたでしょうか。ここまで読んでから最初の式を見返すと、きっと違った見え方がしてくるはずです。
この方法(2重極限のやつ)で有理数と無理数の場合分けが表現できることを示したのはディリクレ本人だそうです。やっぱりただ単に「有理数と無理数の場合分けするような関数を考えたよ!」ってだけでは数学用語に名前を残せたりはしないみたいですね。がんばりましょう。どんなオチだよ。