浅葱色の計算用紙

数学(広義)を扱っています。

全ての有理数が整数であることの証明

\( \newcommand \degree {^\circ} \)

問題:

全ての有理数が整数であることを証明せよ。

 

解答:

(論証上重要な主張を太字で示した)

 

有理数を任意に取り\( \frac{q}{p} \) (ただし\( q \)は整数、\( p \)は正の整数)とおくと、これが整数であることを示せばよい。

まず、連続する3つの数\( 57, 58, 59 \)に注目する。

任意の連続する3つの数には必ず\( 2 \)の倍数と\( 3 \)の倍数が含まれる。

\( 57 \)と\( 59 \)はともに\( 2 \)とも\( 3 \)とも異なる素数であるから、\( 57 \)も\( 59 \)も\( 2 \)の倍数でも\( 3 \)の倍数でもない。

したがって、\( 58 \)が\( 2 \)の倍数かつ\( 3 \)の倍数である。すなわち、\( 58 \)は\( 6 \)の倍数である。

ここで、\( 60 \)は\( 6 \)の倍数であるから、\( 60-58=2 \)は\( 6 \)の倍数同士の差なので\( 6 \)の倍数である。

したがって、ある整数\( k \)を用いて\( 2 = 6k \)と書くことができる。よって、\( 3k = 1 \)が成り立つ

また、この\( k \)は明らかに正であり、かつ奇数と掛けて奇数になる整数なので奇数である。

すなわち、\( k \)は正の奇数である

よって、\( p^k \)は\( p \)の倍数であるから、\( \frac{p^k}{p} = p^{k -1} \)は整数である。

ここで、\( k \)は奇数であるから、\( k -1 \)は偶数であり、よって\( p^{k -1} \)は平方数である。

したがって、\( \sqrt{p^{k -1}} \)は整数であるから、この値を\( u \)とする。

すると、

\( \begin{align*} &u^3p \\ &= p^{\frac{3}{2}(k -1)}p \\ &= p^{\frac{3k -3}{2}+1} \\ &= p^{\frac{3k -1}{2}} \\ &= p^{\frac{1-1}{2}} \\ &= p^0 \\ &= 1 \end{align*} \)

であるから、\( u^3 \)は\( p \)の逆数\( \frac{1}{p} \)であり、したがって\( u \)が整数であることから\( \frac{1}{p} = u^3 \)も整数であることが分かる。

最後に、整数と整数の積は明らかに整数であるから、

\( \frac{q}{p} = \frac{1}{p} \cdot q \)

は整数である。(Q.E.D.)

 

おまけ:

\( \tan{1 \degree} \)は有理数か。

 

解答:

上の議論から、整数は加減乗除で閉じている(体である)ことがわかる。

また、\( \frac{1}{2} \)は正整数であるから、任意の整数\( n \)に対し\( \sqrt{n} = n^{\frac{1}{2}} \)は整数の正整数乗なので整数である。よって、整数は平方根(のうち正のものを取る演算)に関して閉じている

同様に、整数は立方根(のうち実数のものを取る演算)に関して閉じている

 

ここで、

\( \sin{15 \degree} = \frac{\sqrt{6} - \sqrt{2}}{4}, \cos{15 \degree} = \frac{\sqrt{6} + \sqrt{2}}{4}, \sin{18 \degree} = \frac{-1 + \sqrt{5}}{4}, \cos{18 \degree} = \frac{\sqrt{10+2\sqrt{5}}}{4}\)

であり、これらは全て整数の四則演算と平方根によって構成されているから、整数である。

よって、

\( \sin{3 \degree} = \sin{18 \degree} \cos{15 \degree} - \cos{18 \degree} \sin{15 \degree} \)

\( \cos{3 \degree} = \cos{18 \degree} \cos{15 \degree} + \sin{18 \degree} \sin{15 \degree} \)

は整数の加減算および乗算によって構成されているから、整数である。

また、明らかに\( \cos{3 \degree} \neq 0\)であるから、

\( \tan{3 \degree} = \frac{\sin{3 \degree}}{\cos{3 \degree}} \)

は、整数と\( 0 \)でない整数の商なので整数である。

 

ここで、タンジェントの3倍角の公式を思い出すと、

 \( \tan{3\theta} = \frac{3 \tan \theta - \tan^3 \theta}{1 - 3 \tan^2 \theta} \)

であったから、\( \theta = 1 \degree \)を代入し、\( \tan 1 \degree = x \)と置くと、

 \( \tan{3 \degree} = \frac{3x - x^3}{1 - 3x^2} \)

すなわち

\( x^3 - 3\tan{3 \degree} x^2 - 3x + \tan{3 \degree} = 0 \)

が成り立つ。

これは\( x \)についての整数係数の3次方程式であるから、3次方程式の解の公式により、この方程式の解\( x_0 \)は整数の四則演算と平方根と立方根で書き表すことができる。

整数は四則演算と平方根と立方根で閉じているから、\( x_0 \)は(3つある可能性全てで)整数である。

よって、\( x = \tan{1 \degree} \)は整数であり、任意の整数は有理数であるから、\( \tan{1 \degree} \)が有理数であることが示された。

離心率の一般化

突然ですが、円の曲率を求めるにはどうすればよいでしょうか?

半径の逆数を取ればよいですね。簡単です。

 

では、円とは限らない曲線の曲率を求めるにはどうすればよいでしょうか?

曲線上の微小距離離れた3点を取って、その3点を通る円の曲率を求めればよいですね。いわゆる微分の考え方です。

 

 

突然ですが、二次曲線の離心率を求めるにはどうすればよいでしょうか?

曲線を回転させて、標準形に変換して、数Ⅲで習った離心率の公式に代入すればよいですね。簡単です。

 

では、二次曲線とは限らない曲線の離心率を求めるにはどうすればよいでしょうか?

5点あれば二次曲線を決定できるので、曲線上の微小距離離れた5点を取って、その5点を通る二次曲線の離心率を求めればよいですね。いわゆる微分の考え方です。

しかし、私が調べた限り誰もこのことに気づいていませんでした。

 

 

そこで、私はこのことをpdfに書いてTwitterで公開しました。

もちろん、できるだけ多くの人に知ってほしいので英語で書きました。

こちらがそのpdfです。

 

drive.google.com

と言われても、英語だとわかりにくいですね。

そこで、この記事では、上のpdfに基づいてその内容を解説しようと思います。

 

上のpdfでは、任意の2次元曲線に対し、その離心率を定義し、\( y=f(x) \)に対する離心率を近似するプログラムを示し、実際にそのプログラムで\( y=x^3-3x \)の離心率を求めた結果を示しています。

 

定義

\( C \)を2次元曲線、\( P \)をその上の点とする。このとき、\( C \)の\( P \)における離心率\( e(C,P) \)を次で定義する:

\( C \)上に\( N, O, P, Q, R \)がこの順に並ぶように4点\( N, O, P, Q \)をとる。このとき、\( N, O, P, Q, R \)を通る二次曲線の離心率を\( E \)とする。\( N, O, P, Q \)を独立に\( P \)に近づけたとき、\( E \)がある値に収束するならば、その値を\( e(C,P) \)とする。

プログラム

説明はコメントでしているので、改めてここで説明する必要はないと思います。

# -*- coding: utf-8 -*-

import numpy
import sympy
import math
import matplotlib.pyplot as plt

# finds the eccentricity of the conic curve that goes through all of the following:
# (x-2e, f(x-2e)), (x-e, f(x-e)), (x, f(x)), (x+e, f(x+e)), (x+2e, f(x+2e))
def eccentricity(f, x, e):
    # Solve for the coefficients
    left = []
    right = []
    for i in [-2,-1,0,2,4]:
        local_x = x + i * e
        local_y = f(x + i * e)
        left_eq = [local_x ** 2 , local_x * local_y, local_y ** 2,
                   local_x, local_y, 1]
        left.append(left_eq)
        right.append(0)
    left.append([1,0,0,0,0,0])
    right.append(1)
    
    #print(left)
    #print(right)
    coef = numpy.linalg.solve(left, right)
    #print(coef)
   
    # Diagonalize the quadratic form
    q_form = numpy.array([[coef[0], coef[1]/2],[coef[1]/2, coef[2]]])
    # p is already orthogonal
    l, p = numpy.linalg.eig(q_form)
    pinv = numpy.linalg.inv(p)

    #print(q_form)
    #print(p)
    #print(pinv)
    #print(numpy.dot(numpy.dot(pinv, q_form), p))
    
    x1 = sympy.Symbol('x1')
    y1 = sympy.Symbol('y1')
    x2 = sympy.Symbol('x2')
    y2 = sympy.Symbol('y2')
    
    curve = numpy.dot(coef, [x1**2, x1*y1, y1**2, x1, y1, 1])
    curve_straight = curve.subs([(x1, pinv[0, 0]*x2+pinv[1, 0]*y2),
                                 (y1, pinv[0, 1]*x2+pinv[1, 1]*y2)])
    curve_straight = sympy.expand(curve_straight)
    #print(curve)
    #print(curve_straight)
    
    # Change it to "standard" form
    # s(x-a)^2 + t(y-b)^2 = 1
    x3 = sympy.Symbol('x3')
    y3 = sympy.Symbol('y3')
    x2_sq = sympy.diff(curve_straight, x2, 2).subs([(x2, 0), (y2, 0)]) / 2
    x2_li = sympy.diff(curve_straight, x2, 1).subs([(x2, 0), (y2, 0)])
    y2_sq = sympy.diff(curve_straight, y2, 2).subs([(x2, 0), (y2, 0)]) / 2
    y2_li = sympy.diff(curve_straight, y2, 1).subs([(x2, 0), (y2, 0)])
    
    #print(x2_sq, x2_li, y2_sq, y2_li)
    
    if x2_sq != 0 and y2_sq != 0: # ellipse, two lines, or hyperbola
        curve_standard = curve_straight.subs([(x2, x3 - x2_li / (x2_sq * 2)),
                                              (y2, y3 - y2_li / (y2_sq * 2))])
        curve_standard = sympy.expand(curve_standard)
        #print(curve_standard)
        
        c = curve_standard.subs([(x3, 0), (y3, 0)])
        
        if c == 0: # two lines
            return float('inf')
        else:
            curve_standard /= -c
            #print(curve_standard)
            x3_sq = sympy.diff(curve_standard, x3, 2).subs([(x3, 0), (y3, 0)]) / 2
            y3_sq = sympy.diff(curve_standard, y3, 2).subs([(x3, 0), (y3, 0)]) / 2
            #print(y3_sq, x3_sq)
            if x3_sq < 0 and y3_sq < 0: # impossible
                return float('nan')
            elif x3_sq < 0 and y3_sq > 0: # upways hyperbola
                return math.sqrt(1 - y3_sq / x3_sq)
            elif x3_sq > 0 and y3_sq < 0: # sideways hyperbola
                return math.sqrt(1 - x3_sq / y3_sq)
            else: # ellipse
                if x3_sq < y3_sq:
                    return math.sqrt(1 - x3_sq / y3_sq)
                else:
                    return math.sqrt(1 - y3_sq / x3_sq)
            
    elif x2_sq == 0 and y2_sq == 0: # line
        return float('inf')
    elif y2_sq == 0: # laid parabola
        return 1
    else: # stand parabola
        return 1

x = numpy.arange(-3, 3, 0.05)
y = []

for a in x:
    e = eccentricity(lambda x: x**3-3*x, a, 0.001)
    y.append(e)
    print(a, e)

y = numpy.array(y)

plt.plot(x, y)
plt.ylim([0,5])
plt.show()

実行結果

\( y = x^3-3x \)の、\( -3 \leq x \leq 3\)での曲率のグラフを以下に示します。

f:id:asangi_a4ac:20200219150040p:plain

y=x^3-3xの離心率のグラフ

\( x=0 \)の近くで離心率が大きくなっていますが、理由は分かりません。

\( y=x^3-3x \)のグラフは原点に関して対称で、原点の周囲の5点を通る二次曲線は重なった直線になるので、それが原因かもしれません。

これに関する調査は今後の課題とします。

 

名称

普通の(二次曲線の)離心率以外にも、何種類か離心率があるようなので、この離心率を「Ασαγγη離心率」と呼んで区別することにしました。

ギリシャ文字が入力しづらい環境のために、次のような代替表記を推奨します(上が最も推奨):

  • Asangi離心率
  • 浅葱離心率
  • アサキ゜離心率
  • アサギ離心率

しかし、次の表記は推奨されません:

  • Asagi離心率
  • アサンギ離心率

ラテン文字表記と片仮名表記で、/n/を表す文字が入るか入らないかが逆転していることに注意してください。

 

オリオン座を横から見てみた

突然ですが、これはオリオン座です。

f:id:asangi_a4ac:20191220143540p:plain

しかし何かがおかしいですね。まるでグラフ描画ソフトか何かで描いたような見た目になっています。

実際、これはGeogebraで描きました。α星~ζ星とκ星の位置を球座標から3次元直交座標に変換して、そこに点をプロットしました。しかし、この図ではε星は描画距離の範囲外になり描画されていないようです。

 

ちょっと待ってください。3次元直交座標ということは、別にこの方向から見る必要はないですよね。オリオン座を横から見たっていいはずです。

 

というわけで、さっそくオリオン座の全体像を(いつもの座標軸の向きで)見てみましょう。原点に地球があります。

f:id:asangi_a4ac:20191220144406p:plain

密集しすぎてよくわかりませんね。しかし、ε星が他の星より地球から離れていることはわかります。実際、ε星と地球との距離は約2000光年ですが、他の星は地球から1000光年以内にあります。

 

ε星以外を拡大してみましょう。

f:id:asangi_a4ac:20191220145414p:plain

この視点だと真ん中の3つ星のうち2つが重なって見えてしまいます。

 

地球よりさらに後ろから見たらどうなるでしょうか?

f:id:asangi_a4ac:20191220145840p:plain

なんとなく普段見る形と似ていますね。星のある部分と反対側から見ているので、それほど形にゆがみが生じないのでしょう。

 

今度は上から見てみましょう。

f:id:asangi_a4ac:20191228150554p:plain

オリオン座は天球全体を区切るように存在しているので、中心から扇形の範囲に星々が位置することになります。

 

最後に横から見てみましょう。

f:id:asangi_a4ac:20191220150247p:plain

原点が地球なので、地球に近い星が左側に位置しています。地球からはきれいに見えるオリオン座も、横から見るとかなり歪んでいることが分かりますね。

 

結論: オリオン座は地球から見るから美しい!

10^6以上の実数

(これはホラー記事なので、適宜短調のBGMを聞きながら読んでください。)

 

昨日の記事は

nichi.potaro.orgでした。

面白そうなのでもう少し踏み込んで勉強してみたいと思います。

 

さて、今日の日曜数学Advent Calendarは「10^6以上の実数を1つ投稿します」です。ということは、

10^6

とだけ書いてこの記事を終了してもいいのですが、そんなことをすると「たった4文字のためだけに貴重なAdvent Calendarの枠を1つ潰したのか」というクレームが飛んできそうなので、もう少し面白いことをしましょう。

 

10^6以上の実数は10^6以上であればいくら大きくてもいいので、実数を大きくする操作を考えましょう。例えば、

$$ f(x) = x+1 $$

という関数を考えると、これは任意の実数\( x \)に対し、\( f(x) > x \)が成り立つので、この関数は実数を大きくすることができます。そこで、さっきの10^6をこの関数で大きくしてみましょう。

$$ f(10^6) = 10^6+1 $$

大きくなりました。ですがこれでもまだ「100万とんで1」なので面白くありませんね。もう1回大きくしましょう。

$$ f(f(10^6)) = (10^6+1)+1 = 10^6+2 $$

「100万とんで2」ですね。

 

一体私は何をやっているのでしょう。「100万から1ずつ数を数える」なんていう記事は誰も望んでいないはずです。せっかくですから、もっと大きい数を作りましょう

 

$$ g(x) = f^x(x) $$

(ただし\( f^x \)は\( f \)の\( x \)回合成)とおくと、\( x \geq 1 \)のとき\( g(x)=f^x(x) \geq f(x)>x \)が成り立ちます。また、\( f \)を定数回合成した関数は、その定数が何であっても\( x \)を十分大きくすれば\( g \)の方が大きくなってしまいます。なぜなら、\( x \)をその定数より大きくすることができるからです。

 

さて、この関数に\( 10^6 \)を代入しましょう。非常に大きい数が得られるはずです。

\( \begin{eqnarray*} g(10^6) &=& f^{10^6}(10^6) \\ &=& f^{10^6-1}(10^6) \\ &=& \cdots \\ &=& 10^6 \cdot 2 \end{eqnarray*} \)

2倍になりました。一般に、\( g(x) = 2x \)が成り立ちます。この証明は非常に簡単なので、読者への演習問題にしません

 

もちろんこの\( g \)を\( 10^6 \)に複数回適用することもできます。当然ながら、適用した回数だけ\( 10^6 \)が2倍されます。

$$ g(g(10^6)) = 10^6 \cdot 2^2 = 4 \cdot 10^6 $$

$$ g(g(g(10^6))) = 10^6 \cdot 2^3 = 8 \cdot 10^6 $$

 

まだ面白くありませんね。いっそのこと、\( g \)を\( 10^6 \)回適用したらどうなるでしょうか。そのために、次の関数を用意します。

$$ h(x) = g^x(x) $$

こうすると、「\( 10^6 \)に\( g \)を\( 10^6 \)回適用した数」は\( h(10^6) \)と表されます。

お気づきでしょうが、2倍を繰り返すという操作は非常に強力です。「1粒の米粒を80回2倍にする」だけで米の世界生産量を大きく上回ることはよく知られていますね。

そんな2倍の操作を100万回もやったら......それはもう、巨大な数が出来上がります。Wolfram|Alphaで計算すると、次の結果が得られました:

$$ h(10^6) = 10^6 \cdot 2^{10^6} = 9.90065622929589825069792361630190325073362424178756... × 10^{301035} $$

 

この次に何が起こるかわかりますか? そうですね、\( h(h(10^6)) \)ですね。\( h(10^6) \)は自然数なので、この結果をさらに\( h(x) \)に代入することができます。

$$ h(h(10^6)) > 10^{10^{300000}} $$

指数が3段になってしまいました。この不等式は自明なので証明は読者への演習問題にします

当然のようにこんなこともできます。

$$ h(h(h(10^6))) > 10^{10^{10^{300000}}} $$

 

普段だったらここで終わるのですが、今日の私は暴走モードなのでもっと大きくします。

 

↓警告: ここからはこんな感じの世界に入ります。

何 か が 壊 れ る 音 が し た

6 は 巨 大 数

ス テ ー ジ カ ー デ ィ ナ ル

ア ブ ソ リ ュ ー ト イ ン フ ィ ニ テ ィ ー

我 は 勝 利 す る

キ ェ ェ ェ キ ョ ダ イ キ ョ ダ イ

イ ン テ ル 長 友

も う 何 か 書 い と け

 

 

(注意: この下には非常に心臓に悪いメッセージがあります。)

 

 

 

 

 

 

 

 

 

 

 

 

警告しましたよ。

 

 

 

 

 

 

 

 

 

 

 

 

今までと同じ流れで、\( h \)を\( x \)回合成した関数を考えます。\( i \)は明らかに使いたくないので、今までの関数を全部番号で表しましょう。

$$ f(1,x) = f(x), f(2,x) = g(x), f(3,x) = h(x) $$

こうすると、\( h \)を\( x \)回合成した関数はこのように書けますね。

$$ f(4,x) = h^x(x) $$

さて、この\( f(4,x) \)に\( 10^6 \)を入れたら何が起こるでしょうか。

$$ f(4,10^6) > 10 \uparrow \uparrow 10^6 $$

数が大きすぎて、矢印が出てきました。これは「テトレーション」といって、べき乗を再帰的に繰り返した演算です(もちろん指数の方で再帰します)。

テトレーションについてはこの記事が詳しいので、ぜひご一読ください。

テトレーション - Wikipedia

 

もちろん次のステップはこれです。

$$ f(4, f(4, 10^6)) > 10 \uparrow \uparrow 10 \uparrow \uparrow 10^6 $$

テトレーションは右から計算するので、右辺は\( 10 \uparrow \uparrow (10 \uparrow \uparrow 10^6 ) \)です。もうわけがわかりませんね。

ここで止まるわけがありません。

$$ f(4, f(4, f(4,10^6))) > 10 \uparrow \uparrow 10 \uparrow \uparrow 10 \uparrow \uparrow 10^6 $$

$$ f(4, f(4, f(4, f(4, 10^6)))) > 10 \uparrow \uparrow 10 \uparrow \uparrow 10 \uparrow \uparrow 10 \uparrow \uparrow 10^6 $$

 

\( f(4, x) \)もさらに合成することができます。もうめんどくさいので、一気に全部定義してしまいましょう。

\( a, x \)は自然数とする。ただし0は自然数に含まないものとする。

$$ \begin{align} f(1, x) &= x+1 \\ f(a+1, x) &= \left( \lambda t. f(a, t) \right)^x (x) \end{align} $$

ただし\( \lambda \)はラムダ計算のラムダである。

2変数関数\( f \)に対しては\( f^x \)と書くことができない(どちらの変数でネストするのかわからない)ので、こう書くしかありません。

 

こうすると、\( f(5, 10^6), f(6, 10^6), f(7, 10^6), \cdots \)といった数が一度に定義できます。

これらの数はどれほどの大きさになるでしょうか? クヌース矢印表記を使うと、比較することができます。\( f \)の左側の引数が1つ増えると、矢印が1本増えます。

$$ f(5,10^6) > 10 \uparrow \uparrow \uparrow 10^6 $$

$$ f(6,10^6) > 10 \uparrow \uparrow \uparrow \uparrow 10^6 $$

$$ f(7,10^6) > 10 \uparrow \uparrow \uparrow \uparrow \uparrow 10^6 $$

$$ \vdots $$

 

 

 

 

次に何が起きるかわかりますよね。

(グーゴロジスト向け: ここからが本編です)

 

 

 

 

$$ f(10^6, 10^6) > 10 \underbrace{\uparrow\uparrow\uparrow \cdots \uparrow\uparrow\uparrow\hspace{-8mm}}_{10^6-2} 10^6 $$

2変数関数の限界に来てしまいました。ここでまた、「番号」の概念を導入します。今までの\( f(x,y) \)を「\( 1 \)番目の\( f \)」、つまり\( f(1,x,y) \)と書きましょう。

 

この限界を超えるには、「\( 2 \)番目の\( f \)」、つまり\( f(2,x,y) \)を用意すればよいですね。

 

$$ f(2, 1, 10^6) = f(1, 10^6, 10^6) $$

\( f(2,1,10^6) \)は「\( 2 \)番目の\( f \)の\( 1 \)番目の関数」だと思ってください。一般に、次のように\( f(2, 1, x) \)を定義します。

$$ f(2, 1, x) = f(x, x) $$

ところで、2変数関数\( f \)の左側の変数は矢印の本数に相当するのでした。ということは、この\( f(2, 1, x) \)は矢印表記と同じ大きさの関数になります。

 

これでは面白くありませんね。もっと大きくしましょう。

$$ f(2, 2, x) = \left( \lambda t. f(2, 1, t) \right)^x (x) $$

\( f(2,1,x) \)の\(x\)の部分を再帰させてみました。この過程は少しわかりにくいので、ゆっくり行きましょう。

ここから先は不等式比較が本質的ではなくなるので、\( \approx \)で近似します。近似と言っても、実際の値は非常に異なる(だが巨大数的には十分近い)ことに注意してください。

$$ f(2, 1, 10^6) \approx 10 \underbrace{\uparrow\uparrow\uparrow \cdots \uparrow\uparrow\uparrow}_{10^6} 10 $$

$$ f(2, 1, f(2, 1, 10^6)) \approx 10 \underbrace{\uparrow\uparrow\uparrow \cdots \uparrow\uparrow\uparrow}_{10 \underbrace{\uparrow\uparrow\uparrow \cdots \uparrow\uparrow\uparrow}_{10^6} 10} 10 $$

$$ f(2, 1, f(2, 1, f(2, 1, 10^6))) \approx 10 \underbrace{\uparrow\uparrow\uparrow \cdots \uparrow\uparrow\uparrow}_{10 \underbrace{\uparrow\uparrow\uparrow \cdots \uparrow\uparrow\uparrow}_{10 \underbrace{\uparrow\uparrow\uparrow \cdots \uparrow\uparrow\uparrow}_{10^6} 10} 10} 10 $$

そういえばこの構造、どこかで見たことがありますね。 そうです、グラハム数です。

グラハム数と比較すると、\( f(2, 1, x) \)を64段重ねるとグラハム数を超えることが分かります。

すなわち、\( f(2, 2, 10^6) \)はグラハム数より大きいということです!

ついに、ギネスブックに載った数として有名なグラハム数を超えてしまいました!

 

でも、巨大数的にはまだ序盤です。

 

\( f(1,2,x) = g(x) \)から\( f(1,3,x) = h(x) \)を作ったように、\( f(2,2,x) \)から\( f(2,3,x) \)を作ることができます。

$$ f(2, 3, x) = \left( \lambda t. f(2, 2, t) \right)^x (x) $$

もちろん\( f(2, 3, 10^6) \)も定義できます。

 

グラハム数を超えて、比較するものも(チェーン表記ぐらいしか)なくなってきたので3変数の\( f \)の定義を出します。もう5000文字も書いてるしはっきりいってめんどくさい

 

$a, b, c$は自然数とする。ただし0は自然数に含まないものとする。

$$ \begin{align} f(1, 1, c) &= c+1 \\ f(a+1, 1, c) &= f(a, c, c) \\ f(a, b+1, c) &= \left( \lambda t. f(a, b, t) \right)^c (c) \end{align} $$

 

3変数の\( f \)の限界に対応する近似式を以下に示します。

$$ f(10^6, 10^6, 10^6) \approx \underbrace{10^6 \rightarrow 10^6 \rightarrow \cdots \rightarrow 10^6 \rightarrow 10^6}_{10^6} $$

 

 

もうここまでついてこれている人はグーゴロジストしかいないでしょうから、一気に多変数の\( f \)を定義して、巨大数を定義して、これで終わりにしましょう。

 

$a$は自然数とする。$X$は0個以上の1とする。$Y$は0個以上の自然数とする。ただし0は自然数に含まないものとする。

$$ \begin{align} f(X, c) &= c+1 \\ f(Y, a+1, 1, X, c) &= f(Y, a, c, X, c) \\ f(Y, b+1, c) &= \left( \lambda t. f(Y, b, t) \right)^c (c) \end{align} $$

このとき、

$$ f(\underbrace{10^6, 10^6, \cdots, 10^6, 10^6}_{10^6\text{変数}}) $$

を「日曜数学巨大数」とし、これを投稿とする。

 

「日曜数学巨大数」が実際に\( 10^6 \)以上の実数になっていることの証明は第2回幻想巨大数の審査員への演習問題となります。

 

明日の記事はトッチさんによる「実数の冪根の冪根の冪根の... について」です。何らかの極限の話でしょうか。

JJJ(ジャバ・ジャバ・ジャバ)単位系

架空のキャラクターの「強さ」が、力、エネルギー、仕事率のどれで表されているかはキャラクターによって異なり、それらを直接比較するのは困難である。

空想科学読本」では、それらを比較するために次のような単位が導入されている:

 \( 120[\mathrm{kgf}] = 1[\text{ジャバ}] \)

 \( 3300[\mathrm{J}] = 1[\text{ジャバ}] \)

 \( 2.2[\mathrm{PS}] = 1[\text{ジャバ}] \)

右辺の「ジャバ」とは本来「ジャイアント馬場1人分」を表す単位であり、この単位を使うことで力、仕事率、エネルギーを「ジャイアント馬場○人分」という形で一度に比較することができる。

 

ところで、力のSI基本単位による表示は\( [\mathrm{kg\ m\ s^{-2}}] \)、エネルギーのSI基本単位による表示は\( [\mathrm{kg\ m^2\ s^{-2}}] \)、仕事率のSI基本単位による表示は\( [\mathrm{kg\ m^2\ s^{-3}}] \)である。

そこで、\( [\mathrm{kg}] \)、\( [\mathrm{m}] \)、\( [\mathrm{s}] \)からなるベクトル空間を考えると、3つのジャバはその基底となる。

すなわち、3つのジャバから\( [\mathrm{kg}] \)、\( [\mathrm{m}] \)、\( [\mathrm{s}] \)で表される他の全ての単位を構成することができる。

この記事では、このように構成された単位系をJJJ(ジャバ・ジャバ・ジャバ)単位系と呼ぶことにし、JJJ単位系とMKS単位系の換算を行うことにする。

 

また、JJJ単位系に存在する3つのジャバはどれも異なる次元を持つが、これらを区別しないことにする。

また、\( [\text{ジャバ}] \cdot [\text{ジャバ}] = \left[\text{ジャバ}^2\right] \)のように、ジャバに対しても普通の単位と同様の乗算が定義されているものとする。

3つのジャバを区別しないために、ある物理量が\( [\text{ジャバ}] \)にも\( \left[\text{ジャバ}^2\right] \)にも表されることがあると思うかもしれないが、そのようなことは実際には起こりえず、1つの物理量にはちょうど1つのジャバの指数が対応する。証明は読者の演習問題とする。

 

以下に実際の換算値を示す。値は有効数字までしか書かれていないが、内部的には無限桁の計算を行っている。

 

JJJ基本単位

ジャバの定義がMKS単位系で書かれていないので、MKS単位系に直す。

\( \begin{eqnarray*} 120[\mathrm{kgf}] &=& 120[\mathrm{kg}] \cdot 9.80665[\mathrm{m/s^2}] \\ &=& 1.18 \times 10^3 [\mathrm{N}] \end{eqnarray*} \)

エネルギー

\( 3300[\mathrm{J}] = 3.300 \times 10^3[\mathrm{J}] \)

仕事率

\( \begin{eqnarray*} 2.2[\mathrm{PS}] &=& ( 2.2 \cdot 735.49875) [\mathrm{W}] \\ &=& 1.6 \times 10^3 [\mathrm{W}] \end{eqnarray*} \)

有効数字は2桁である。

MKS基本単位

長さ

JJJ単位系において、長さは無次元量である。

\( 1\left[\text{ジャバ}^0\right] = \frac{1[\text{ジャバ}]}{1[\text{ジャバ}]} = \frac{3.300 \times 10^3[\mathrm{J}]}{1.18 \times 10^3 [\mathrm{N}]} = 2.80[\mathrm{m}] \)

例: JJJ単位系で表したジャイアント馬場の身長は\( 0.745 \)である。無次元量なので単位はない。

時間

JJJ単位系において、時間は無次元量である。

\( 1\left[\text{ジャバ}^0\right] = \frac{1[\text{ジャバ}]}{1[\text{ジャバ}]} = \frac{3.300 \times 10^3[\mathrm{J}]}{1.6 \times 10^3 [\mathrm{W}]} = 2.0[\mathrm{s}] \)

例: JJJ単位系で表したジャイアント馬場の存命時間は\( 9.4 \times 10^8 \)である。無次元量なので単位はない。

質量

少しわかりにくいが、JJJ単位系において、質量は\( [\text{ジャバ}] \)の次元を持つ。

\( 1 [\text{ジャバ}]  = \frac{\left(1[\text{ジャバ}]\right)^2 \cdot 1[\text{ジャバ}]}{\left( 1[\text{ジャバ}] \right)^2} = \frac{\left(1.18 \times 10^3[\mathrm{N}]\right)^2 \cdot 3.300[\mathrm{J}]}{\left( 1.6 \times 10^3 [\text{W}] \right)^2} = 1.7 \times 10^3 [\mathrm{kg}] \)

例: JJJ単位系で表したジャイアント馬場の質量は\( 7.7 \times 10^{-2} [\text{ジャバ}] \)、すなわち77ミリジャバである。

その他の単位

以下に一覧を示す。

 

面積: \( \left(1\left[\text{ジャバ}^0\right]\right)^2 = \left(2.80[\mathrm{m}]\right)^2 = 7.86 [\mathrm{m^2}] \)

        例: \(1[\text{東京ドーム}]\)は\(5.95 \times 10^3 \)である。

体積: \( \left(1\left[\text{ジャバ}^0\right]\right)^3 = \left(2.80[\mathrm{m}]\right)^3 = 2.21 \times 10^1 [\mathrm{m^3}] \)

        例: \(1[\text{東京ドーム}]\)は\(5.62 \times 10^4 \)である。

速度: \( 1\left[\text{ジャバ}^0\right] = \frac{1[\text{ジャバ}^0]}{1[\text{ジャバ}^0]} = \frac{2.80 [\mathrm{m}]}{2.0 [\mathrm{s}]} = 1.4[\mathrm{m/s}] \)

        例: 光の速さは\(2.2 \times 10^8 \)である。

加速度: \( 1\left[\text{ジャバ}^0\right] = \frac{1[\text{ジャバ}^0]}{\left(1[\text{ジャバ}^0]\right)^2} = \frac{2.80 [\mathrm{m}]}{\left( 2.0 [\mathrm{s}] \right)^2} = 0.67[\mathrm{m/s^2}] \)

        例: 標準重力加速度は\(1.5 \times 10^1 \)である。

躍度: \( 1\left[\text{ジャバ}^0\right] = \frac{1[\text{ジャバ}^0]}{\left(1[\text{ジャバ}^0]\right)^3} = \frac{2.80 [\mathrm{m}]}{\left( 2.0 [\mathrm{s}] \right)^3} = 0.33[\mathrm{m/s^3}] \)

周波数: \( 1\left[\text{ジャバ}^0\right] = \frac{1}{1[\text{ジャバ}^0]} = \frac{1}{2.0 [\mathrm{s}]} = 0.49[\mathrm{Hz}] \)

        例: テノールは\(9.0 \times 10^2 \)の音を出す。

密度: \( 1\left[\text{ジャバ}^1\right] = \frac{1[\text{ジャバ}^1]}{\left(1[\text{ジャバ}^0]\right)^3} = \frac{1.7 \times 10^3 [\mathrm{kg}]}{\left( 2.80 [\mathrm{m}] \right)^3} = 79[\mathrm{kg/m^3}] \)

        例: 金の密度は\(2.4 \times 10^2 [\text{ジャバ}]\)である。

圧力: \( 1\left[\text{ジャバ}^1\right] = \frac{1[\text{ジャバ}^1]}{\left(1[\text{ジャバ}^0]\right)^2} = \frac{1.18 \times 10^3 [\mathrm{N}]}{\left( 2.80 [\mathrm{m}] \right)^2} = 150[\mathrm{P}\mathrm{a}] \)

        例: 大気圧は\(6.77 \times 10^2 [\text{ジャバ}]\)である。

増税問題

この記事は、tsujimotterさんの「増税問題」の記事にインスパイアされました。

 

問題:

\( 0 \leq \alpha \leq 1\)を満たす実数\( \alpha \)に対し、自然数の部分集合\( S_{\alpha} \)を以下で定義する:

\( S_{\alpha} := \{ \lfloor(1+\alpha)n\rfloor \mid n \in \mathbb{Z}, n \geq 0\} \)

このとき、差集合\( S_{0.1} \setminus S_{0.08} \)の数を特徴付けよ。

 

観察1:

消費税が10%のとき、総額表示に現れる数は

0,1,2,3,4,5,6,7,8,9,

11,12,13,14,15,16,17,18,19,20,

22,23,24,25,26,27,28,29,30,31,

33,...

と、三焦数(11で割って10余る数)は現れず、三焦数以外の全ての数が現れていることが分かる。

証明1:

商品価格を\(10n+m(m=0,1,\cdots,9)\)とする。

総額は\(\lfloor11n+1.1m\rfloor = 11n+\lfloor1.1m\rfloor\)であるが、

\(0 \leq m \leq 9\)より\(\lfloor1.1m\rfloor=m\)が成り立つ。

したがって、総額を三焦数にすることはできず、逆に\(n\)と\(m\)をうまくとれば任意の三焦数以外の数を総額にすることができる。

 

観察2:

消費税が8%のときは27で割って13または26余る数は現れず、それ以外の全ての数が現れる。証明は読者の演習問題とする。

 

定理:

以上のことから、\( S_{0.1} \setminus S_{0.08} \)を剰余で表現することができる。それは、三焦数でない数であって27で割って13または26余る数であるから、11と27の最小公倍数が297であることに注意すると、\( S_{0.1} \setminus S_{0.08} \)は、297で割った余りが次のリストに含まれる自然数全体の集合と一致する:

13, 26, 40, 53, 67, 80, 94, 107, 121, 134, 148, 161, 188, 202, 215, 229, 242, 256, 269, 283

あるいは、このリストは297以下の27で割って13または26余る数のうち、175と296を除いたものとも表せる。

 

 

追記1: 11=10-1, 13=(27-1)/2, 26=27-1であるのは何か理由があると予想されるが、その理由はこの記事では追求しないことにする。

追記2: 「三焦数」という単語には馴染みのない読者がほとんどだと思うが、気にすることではない。なぜならこの単語はこの記事の執筆以前にTwitter全体で1回しか使われていないからだ。

ドディデの歌に対する歌詞の提案

(最初に「さあみんなでかなり過激なドレミの歌を歌いましょう」という台詞を入れてもよい)

 

ドはドイツ語のド

ディはディベヒ語のディ

デはデンマーク語のデ

ニは日本語のニ

 

ネはネパール語のネ

ヌはヌビア語のヌ

ギはギリシャ語のギ

ゲはゲエズ語のゲ

 

 

グはグリーンランド語のグ

レはレオン語のレ

ケはケクチ語のケ

ルはルワンダ語のル

 

クはクルド語のク

リはリパライン語のリ

キは北ソト語のキ

ムはムンダリ語のム

 

 

コはコプト語のコ

モはモンゴル語のモ

ミはミスキート語のミ

ウはウビフ語のウ

 

メはメロエ語のメ

ミャはミャオ語のミャ

ファはファン語のファ

パはパーリ語のパ

 

 

ヴァはヴァイ語のヴァ

ダはダリー語のダ

ヒはヒンディー語のヒ

ピはピダハン語のピ

 

フォはフォン語のフォ

ショはショナ語のショ

チョはチョクウェ語のチョ

ソはソマリ語のソ

 

 

トはトルコ語のト

ゴはゴート語のゴ

ボはボスニア語のボ

ゾはゾンカ語のゾ

 

カはカザフ語のカ

ナはナマ語のナ

マはマレー語のマ

ヤはヤオ語のヤ

 

 

ラはラテン語のラ

タはタイ語のタ

ワはワライ語のワ

サはサンカ語のサ

 

セはセルビア語のセ

ツェはツェズ語のツェ

ゼはゼナガ語のゼ

ジェはジェメズ語のジェ

 

 

テはテルグ語のテ

シはシンハラ語のシ

 

ジはジカリラ語のジ

スはスワヒリ語のス

ズはズールー語のズ

 

 

さあ歌いましょ

ドディデニネヌギゲ

グレケルクリキム

コモミウメミャファパ

ヴァダヒピフォショチョソ

トゴボゾカナマヤ

ラタワサセツェゼジェ

テシジスズ

ド ソ ド!