足し算を繰り返すことで、かけ算が定義でき、
かけ算を繰り返すことで、べき乗算が定義できます。
この考え方を発展させ、
べき乗算を繰り返すことから、新しい演算が定義できます。
それがテトレーション(超ベキ算)と呼ばれる演算です。
また、テトレーションを繰り返すことで、さらに新しい演算が定義でき、
この操作は永遠に続けることができます。
また、演算自体に番号が振られています。
具体的には、
1番のハイパーオペレーションは、足し算です。
2番のハイパーオペレーションは、かけ算、
そして、
3番めのハイパーオペレーションがべき算、
4番めのハイパーオペレーションがテトレーション(超冪算)
という具合です。
5番目以降のハイパーオペレーションはほとんど使われることがありませんが、大きい数を定義するときにはよく使われます。
繰り返しが入れ子になって繰り返されるので、演算結果があっというまに大きくなるからです。
ハイパーオペレーションの性質
ハイパーオペレーションに関しては、表記や記号についても含めて、Wikipediaに詳しく書かれています。
ハイパー演算子について、普通の2項演算子と似たような書き方もいろいろ考案されています。
また、関数の記号を使って、n番目のハイパーオペレーションを、hyper(a,b,n)と書き表すこともできます。
例えば、足し算、かけ算、べき算を
関数の記号で書き直すと、
a+bとhyper(a,b,1)、
a×bとhyper(a,b,2)、
abとhyper(a,b,3)
となります。
関数形式でも、2項演算の書き方と同じになるように、引数の順番を変更し、hyper(a,n,b)と下記あわわす場合もあります。
ここでは、関数表記hyper(a,b,n)を使い、
また、nが明示されるときには、特に短く関数に別名を付けます。
hyper1(a,b):=hyper(a,b,1)
hyper2(a,b):=hyper(a,b,2)
hyper3(a,b):=hyper(a,b,3)
hyper4(a,b):=hyper(a,b,4)
交換の法則
まず、交換の法則についてみてみます。
いうまでもなく、足し算、かけ算は可換、つまり交換の法則は満たされていますが、べき算は可換ではありません。
23=8,32=9ですから、すぐにわかります。
n=4の場合も非可換です。
hyper4(2,3)とhyper4(3,2)を計算してみます。
hyper4(2,3)は、2を3個べき算(3回というと数え方がおかしいので3個と書きます)をするということですから、2^2^2です。つまり。16になります。
hyper4(3,2)は、3^2なので9です。
ですから、hyper4(2,3)とhyper4(3,2)は値が異なります。つまり、hyper4(テトレーション)は非可換です。
整数論を知識を使えば、素因数を調べることで、n=1,2以外のとき、ハイパーオペレーションは非可換であることがわかります。
演算を変数2つの関数と考えた時、演算が可換であるということは、きわめて特殊であるといえます。
数多くある演算の中で、足し算、掛け算はきわめて特別な性質をもった演算であるわけです。
結合の法則
交換の法則どころか、ハイパー演算子は結合則も満たしません。n=1,2の時を除けば。
ですから、もはや、ハイパー演算子は、演算と呼ぶにふさわしくない演算といえます。
たんなる、2変数の関数と考えて取り扱った方がよさそうです。
ハイパーゼロ演算子
足し算から掛け算が定義されました。
逆にいうと、掛け算は足し算で定義されます。
それでは、足し算を定義するような演算はどのような演算になるのでしょうか?
つまり、hyper0(a,b)はどのように定義するのが自然でしょうかと言う問題です。
つまり、ゼロレーションとでもいうものを考えてみます。
その前に、まず、掛け算と足し算の例を書き表してみます。
hyper2(a,b)
=a×b
=a+a+…a (※aがb個)
=hyper1(…hyper1(hyper1(a,a),a)…)
aをb個つかって足し算することになります。
ということは、hyper0(a,b)は、aをb個つかって計算すると答えがa+bになる演算のことになります。
hyper0(a,b)は、aをb個つかって演算すると、a+bになる演算です。
b=2で考えます。
hyper0(a,2)=a+2
特に、
hyper0(2,2)=4です。
hyper0(3,2)=5です。
hyper0(4,2)=6です。
a=2,b=3で考えます。
hyper0(hyper0(a,a),a)
=hyper0(hyper0(2,2),2)
=hyper0(4,2)
=4+2
=6
※Wikipediaのハイパー演算子の説明では、hyper0(a,b)=b+1で定義されていますが、ここではそれと違う結果となっていることに注意してください。すなわち、hyper0(2,3)=3+1=4とはなりません。
ここでの定義は、
hyper0(a,b)
=a+b
=a+(1+…+1) (※1をaにb回足す)
となっています。
この定義は、足し算つまりhyper1をつかってhyper0を定義することになってるので、
再帰的な定義として使うには不都合にみえます。
話がややこしいですが、+演算とhyper1は別々の演算と考えてこの問題を回避しています。
テトレーションの単位元
結合法則が満たされないので、単位元を考えることに意味があるとは言えません。
ただし、a=1の場合を考えると、
hyper4(a,b)
=hyper4(1,b)
=1となります。
bの値に関係なく1です。
結合則を満たさない演算の末路が見えます。
nが大きくなると演算結果が巨大になる
a,bが小さい場合の例外はあるものの、nが大きくなればなるほど、hyper(a,b,n)は巨大になります。
つまり、n<mなら
hyper(a,b,n)<hyper(a,b,m)
しかも、半端ないぐらいに両者には差があります。
この性質をつかって、巨大な(有限)数を定義することができます。
[ad#foot]