ハイパー演算子

ハイパー演算子(ハイパーえんざんし、hyper operator)は、加算乗算冪乗を一般化した演算のための演算子である。

表記

表記の制約のため、以後丸囲み文字(①,②,③,…)を丸かっこ入り文字 (n) で表すものとする。

加算演算子を上付き(1) (a + b = a (1)b)、乗算演算子を上付き(2) (ab = a (2)b)、冪乗演算子を上付き(3) (ab = a (3)b)で表し、それらを一般の非負整数nに一般化した上付き(n) (a (n) b) がハイパー演算子である。

それらを関数形式で表す hypernnを変数とした3変数関数 hyper も定義される。hyper1は加算、hyper2は乗算、hyper3は冪乗であり、さらにhyper4はテトレーション (tetration)、hyper5はペンテーション (pentation)、hyper6はヘキセーション (hexation)・・・と呼ばれる。

n = 0~4 の例は次のとおり。

hyper0 ( a , b ) = hyper ( a , 0 , b ) = a ( 0 ) b = b + 1 hyper1 ( a , b ) = hyper ( a , 1 , b ) = a ( 1 ) b = a + b hyper2 ( a , b ) = hyper ( a , 2 , b ) = a ( 2 ) b = a b = a + a + + a + a 長さ b = 0 b a d b hyper3 ( a , b ) = hyper ( a , 3 , b ) = a ( 3 ) b = a b = a b = a × a × × a × a 長さ b hyper4 ( a , b ) = hyper ( a , 4 , b ) = a ( 4 ) b = b a = a ↑↑ b = a a a a 高さ b {\displaystyle {\begin{aligned}\operatorname {hyper0} \left(a,b\right)=\operatorname {hyper} \left(a,0,b\right)=a^{\left(0\right)}b=&b+1\\\operatorname {hyper1} \left(a,b\right)=\operatorname {hyper} \left(a,1,b\right)=a^{\left(1\right)}b=&a+b\\\operatorname {hyper2} \left(a,b\right)=\operatorname {hyper} \left(a,2,b\right)=a^{\left(2\right)}b=&ab=\underbrace {a+{a+{\cdots \cdots \cdots \cdots \cdots \cdots +{a+{a}}}}} _{{\text{長さ}}b}=\int _{0}^{b}a\,db\\\operatorname {hyper3} \left(a,b\right)=\operatorname {hyper} \left(a,3,b\right)=a^{\left(3\right)}b=&a^{b}=a\uparrow b=\underbrace {a\times {a\times {\cdots \cdots \cdots \cdots \cdots \cdots \times {a\times {a}}}}} _{{\text{長さ}}b}\\\operatorname {hyper4} \left(a,b\right)=\operatorname {hyper} \left(a,4,b\right)=a^{\left(4\right)}b=&\,^{b}a=a\uparrow \uparrow b=\underbrace {a^{a^{\cdot ^{\cdot ^{\cdot ^{\cdot ^{\cdot ^{\cdot ^{\cdot ^{\cdot ^{\cdot ^{\cdot ^{\cdot ^{\cdot ^{\cdot ^{\cdot ^{\cdot ^{\cdot ^{\cdot ^{\cdot ^{a^{a}}}}}}}}}}}}}}}}}}}}}} _{{\text{高さ}}b}\end{aligned}}}

hyper0は、第2被演算子 b後者関数(第1被演算子 a は無視される)とする。ただし、他の定義を使うこともある。

n > 4 の場合は次のように定める。これは n > 1 の場合全てに成り立つが、n = 1 では成り立たない。

hyper n ( a , b ) = hyper ( a , n , b ) = a ( n ) b = a ( n 1 ) a ( n 1 ) ( n 1 ) a b  copies of  a {\displaystyle \operatorname {hyper} n\left(a,b\right)=\operatorname {hyper} \left(a,n,b\right)=a^{\left(n\right)}b=\underbrace {a^{\left(n-1\right)}a^{\left(n-1\right)}\cdots ^{\left(n-1\right)}a} _{b{\text{ copies of }}a}}

他の表記法との関係

n ≥ 3 に対しては、クヌースの矢印表記コンウェイのチェーン表記との間に次の関係が成り立つ。

hyper ( a , n , b ) = a ( n ) b = a n 2 b = a b ( n 2 )  when  n 3 {\displaystyle \operatorname {hyper} (a,n,b)=a^{(n)}b=a\uparrow ^{n-2}b=a\rightarrow b\rightarrow (n-2)\quad {\mbox{ when }}n\geq 3}

また、n ≥ 1 に対しては、Bowerの拡張演算子 (Jonathan Bowers' Extended Operator) との間に次の関係が成り立つ。

hyper ( a , n , b ) = a ( n ) b = a n b  when  n 1 {\displaystyle \operatorname {hyper} (a,n,b)=a^{(n)}b=a\langle n\rangle b\quad {\mbox{ when }}n\geq 1}

再帰的定義

次のように再帰的に定義できる。b = 0のときの例外処理がnによって違うことに注意。

hyper ( a , n , b ) = a ( n ) b = { b + 1 , if  n = 0 a , if  n = 1 , b = 0 0 , if  n = 2 , b = 0 1 , if  n 3 , b = 0 a ( n 1 ) ( a ( n ) ( b 1 ) ) otherwise {\displaystyle \operatorname {hyper} (a,n,b)=a^{(n)}b={\begin{cases}b+1,&{\mbox{if }}n=0\\a,&{\mbox{if }}n=1,b=0\\0,&{\mbox{if }}n=2,b=0\\1,&{\mbox{if }}n\geq 3,b=0\\a^{(n-1)}(a^{(n)}(b-1))&{\mbox{otherwise}}\end{cases}}}

実数への拡張

冪乗を指数関数に拡張したような、bn の実数への自然な拡張はなされていない。

下付きハイパー演算子

n ≥ 3(冪乗) 以上では結合律が成り立たないので、右からの優先順位が定められていて、

hyper ( n + 1 ) ( a , b ) = a ( n + 1 ) b = a ( n ) a ( n ) ( n ) a ( n ) a b  copies of  a = a ( n ) ( a ( n ) ( n ) ( a ( n ) a ) ) b  copies of  a {\displaystyle \operatorname {hyper} \left(n+1\right)\left(a,b\right)=a^{\left(n+1\right)}b=\underbrace {a^{\left(n\right)}a^{\left(n\right)}\cdots ^{\left(n\right)}a^{\left(n\right)}a} _{b{\text{ copies of }}a}=\underbrace {a^{\left(n\right)}\left(a^{\left(n\right)}\cdots ^{\left(n\right)}\left(a^{\left(n\right)}a\right)\cdots \right)} _{b{\text{ copies of }}a}}

である。

それに対し、ハイパー演算子を下付きにすることで、優先順位を左からとする演算を表せる。つまり、

hyper n + 1 ( a , b ) = a ( n + 1 ) b = ( ( a ( n ) a ) ( n ) ( n ) a ) ( n ) a b  copies of  a {\displaystyle \operatorname {hyper} _{n+1}\left(a,b\right)=a_{\left(n+1\right)}b=\underbrace {\left(\cdots \left(a^{\left(n\right)}a\right)^{\left(n\right)}\cdots ^{\left(n\right)}a\right)^{\left(n\right)}a} _{b{\text{ copies of }}a}}

である。

ただし、下付きハイパーn+1演算子はハイパーn演算子を使って簡単に表せる、たとえば

a ( 4 ) b = a ( 3 ) a ( 3 ) ( b 1 ) = a a ( b 1 ) {\displaystyle a_{\left(4\right)}b=a_{\left(3\right)}a_{\left(3\right)}\left(b-1\right)=a^{a^{\left(b-1\right)}}}

(冪乗法則より)なので、本質的に新しい演算ではなく、下付きハイパー演算子の用途はあまりない。

外部リンク

  • Large Numbers (英語)
数の例
表現法
表記
演算子
順序数階層
関連項目
  • 名前(英語版)
  • 歴史(英語版)
  • カテゴリ カテゴリ