「ハイパー演算子」の版間の差分

提供: testwiki
ナビゲーションに移動 検索に移動
編集の要約なし
 
(相違点なし)

2024年5月22日 (水) 12:41時点における最新版

テンプレート:出典の明記 テンプレート:Expand English ハイパー演算子(ハイパーえんざんし、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+1hyper1(a,b)=hyper(a,1,b)=a(1)b=a+bhyper2(a,b)=hyper(a,2,b)=a(2)b=ab=a+a++a+a長さb=0badbhyper3(a,b)=hyper(a,3,b)=a(3)b=ab=ab=a×a××a×a長さbhyper4(a,b)=hyper(a,4,b)=a(4)b=ba=ab=aaaa高さb

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

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

hypern(a,b)=hyper(a,n,b)=a(n)b=a(n1)a(n1)(n1)ab copies of a

他の表記法との関係

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

hyper(a,n,b)=a(n)b=an2b=ab(n2) when n3

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

hyper(a,n,b)=a(n)b=anb when n1

再帰的定義

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

hyper(a,n,b)=a(n)b={b+1,if n=0a,if n=1,b=00,if n=2,b=01,if n3,b=0a(n1)(a(n)(b1))otherwise

実数への拡張

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

下付きハイパー演算子

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

hyper(n+1)(a,b)=a(n+1)b=a(n)a(n)(n)a(n)ab copies of a=a(n)(a(n)(n)(a(n)a))b copies of a

である。

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

hypern+1(a,b)=a(n+1)b=((a(n)a)(n)(n)a)(n)ab copies of a

である。

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

a(4)b=a(3)a(3)(b1)=aa(b1)

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

外部リンク

テンプレート:巨大数 テンプレート:二項演算