Knuth yukarı ok gösterimi

**Knuth yukarı ok gösterimi**, matematikte, çok büyük tam sayıların gösterim yöntemidir. 1976'da Donald Knuth tarafından geliştirildi. Ackermann işlevi ve özel hiperişlem serisi ile oldukça bağlantılıdır. Çarpmanın, tekrarlı hiperişlem olarak tekrarlı toplama ve üs alma gibi görülebilmesi fikrine dayanır. Bu durumu devam ettirme tekrarlı üssü (tetrasyonu) ve çoğunlukla Knuth ok gösterimi kullanılarak ifade edilen aşırı seri üretiminin geri kalanını meydana getirir.

## Tanıtım

Toplama, çarpma, üs alma gibi sıradan aritmetiksel işlemler, hiperişlem serisinde doğal olarak şöyle ifade edilir.
 
Bir doğal sayıyı çarpma, tekrarlı toplama olarak şöyle ifade edilebilir:

:
  \begin{matrix}
   a\times b & = & \underbrace{a+a+\dots+a} \\
   & & b\mbox{ tane }a
  \end{matrix} 
 

Örneğin,

:
  \begin{matrix}   4\times 3 & = & \underbrace{4+4+4} & = & 12\\
   & & 3\mbox{ tane }4
  \end{matrix} 
 

b'nin doğal kuvveti, tekrarlı çarpma olarak ifade edilebilir ki, Knuth onu tek bir yukarı ok ile ifade etti.

:
  \begin{matrix}
   a\uparrow b= a^b = & \underbrace{a\times a\times\dots\times a}\\
   & b\mbox{ tane }a
  \end{matrix} 
 

Örneğin,

:
  \begin{matrix}
   4\uparrow 3= 4^3 = & \underbrace{4\times 4\times 4} & = & 64\\
   & 3\mbox{ tane }4
  \end{matrix} 
 

İşlemlerin serisini üslü gösterimden daha fazla genişleterek, tekrarlı üsleri (tetrasyonu) ifade etmek için Knuth, bir “çift ok” işleci (operatörü) tanımladı, şöyle ki:

:
  \begin{matrix}
   a\uparrow\uparrow b & = {\ ^{b}a}  = & \underbrace{a^{a^}}}} & 
   = & \underbrace{a\uparrow (a\uparrow(\dots\uparrow a))} 
\\  
    & & b\mbox{ tane }a
    & & b\mbox{ tane }a
  \end{matrix}
 

Örneğin,

:
  \begin{matrix}
   4\uparrow\uparrow 3 & = {\ ^{3}4}  = & \underbrace{4^{4^4}} & 
   = & \underbrace{4\uparrow (4\uparrow 4)} & = & 4^{256} \approx 1.3\times 10^{154}
\\  
    & & 3\mbox{ tane }4
    & & 3\mbox{ tane }4
  \end{matrix} 
 

Burada ve aşağıdaki değerlendirmede, Knuth ok işleçlerini soldan sağa doğru yerleştirme (üslü sayılarda olduğu gibi), işleçleri birleştirme olarak tanımlanır.

Bu açıklamadan,
:3\uparrow\uparrow2=3^3=27 
:3\uparrow\uparrow3=3^{3^3}=3^{27}=7.625.597.484.987 
:3\uparrow\uparrow4=3^{3^{3^3}}=3^{7625597484987}  
:3\uparrow\uparrow5=3^{3^{3^{3^3}}} = 3^{3^{7625597484987}} 
:etc.

Bu zaten epeyce büyük bazı sayıları ifade eder. Fakat Knuth bunu gösterimle (notasyon) yaptı. Şimdi de “iki ok” işleçli (pentasyon olarak da bilinir) tekrarlı uygulamalar için “üç ok” işlecini tanıyalım:

:
  \begin{matrix}
   a\uparrow\uparrow\uparrow b= &
    \underbrace{a_{}\uparrow\uparrow (a\uparrow\uparrow(\dots\uparrow\uparrow a))}\\
    & b\mbox{ tane }a
  \end{matrix}
 

ardından 'dört ok' işleci:

:
  \begin{matrix}
   a\uparrow\uparrow\uparrow\uparrow b= &
    \underbrace{a_{}\uparrow\uparrow\uparrow (a\uparrow\uparrow\uparrow(\dots\uparrow\uparrow\uparrow a))}\\
    & b\mbox{ tane }a
  \end{matrix}
 

ve böyle devam eder. Genel kural, bir n ok işleci, (n - 1) ok işleç serisinin sağına doğru yayılarak gider. Sembolik olarak,

:
  \begin{matrix}
   a\ \underbrace{\uparrow_{}\uparrow\!\!\dots\!\!\uparrow}\ b=
    a\ \underbrace{\uparrow\!\!\dots\!\!\uparrow}
    \ a\ \underbrace{\uparrow_{}\!\!\dots\!\!\uparrow}
    \ a\ \dots
    \ a\ \underbrace{\uparrow_{}\!\!\dots\!\!\uparrow}
    \ a
  \\
   \quad\ \ \,n\qquad\ \ \ \underbrace{\quad n_{}\!-\!\!1\quad\ \,n\!-\!\!1\qquad\quad\ \ \ \,n\!-\!\!1\ \ \ }
  \\
   \qquad\qquad\quad\ \ b\mbox{ tane }a
  \end{matrix}
 

Örnekler:

3\uparrow\uparrow\uparrow2 = 3\uparrow\uparrow3 = 3^{3^3} = 3^{27}=7.625.597.484.987


  \begin{matrix}
    3\uparrow\uparrow\uparrow3 = 3\uparrow\uparrow3\uparrow\uparrow3 = 3\uparrow\uparrow(3\uparrow3\uparrow3) = &
    \underbrace{3_{}\uparrow 3\uparrow\dots\uparrow 3} \\
   & 3\uparrow3\uparrow3\mbox{ tane }3
  \end{matrix}
  \begin{matrix}
   = & \underbrace{3_{}\uparrow 3\uparrow\dots\uparrow 3} \\
   & \mbox{7.625.597.484.987 tane 3}
  \end{matrix}
 

a \uparrow^n b gösterimi, *n* tane ok kullanarak a \uparrow\uparrow \dots \uparrow b şeklinde ifade etmek yaygın bir şekilde kullanılır.

## Gösterim
a^b gibi bir ifadede, üs olan b'yi taban sayısı olan a'nın üstindisi olarak yazmak, üstel gösterim olarak bilinir. Fakat programlama dilleri ve e-posta — gibi birçok ortam — iki boyut düzeni desteklemez. Bu tür ortamlar için insanlar a \uparrow b şeklinde lineer gösterim geliştirdi. Yukarı ok *kuvvetin artışı*dır. Eğer karakter yukarı ok içermezse, onun yerine ^ düzeltme işareti kullanılır.

a^b şeklindeki üstindis gösterimi, genelleştirme için kendini iyi ifade etmez. Bundan dolayıdır ki Knuth, çizgisel gösterim olan a \uparrow b şeklinde bir gösterim üretti.

### Yukarı ok gösterimini kuvvet terimleriyle yazma
Bilinen üslü gösterimi kullanarak a \uparrow \uparrow b yazmaya kalkışmak üslü kule oluşturur.

:Örneğin: a \uparrow \uparrow 4 = a \uparrow a \uparrow a \uparrow a = a^{a^{a^a}}

Eğer *b* bir değişken (veya çok büyük sayı) ise üslü kule, şu örnekte olduğu gibi, noktalar kullanarak yazılır ve kulenin yüksekliği belirtilir:

:a \uparrow \uparrow b = \underbrace{a^{a^{.^{.^{.{a}}}}}}_{b}

Bu gösterime devam edersek, a \uparrow \uparrow \uparrow b ifadesi, üslü kule yığınları ile yazılabilir. Her birinin açıklaması, bir diğerinin üzerine yazılır.

:a \uparrow \uparrow \uparrow 4 = a \uparrow \uparrow a \uparrow \uparrow a \uparrow \uparrow a = 
  \underbrace{a^{a^{.^{.^{.{a}}}}}}_{ \underbrace{a^{a^{.^{.^{.{a}}}}}}_{ \underbrace{a^{a^{.^{.^{.{a}}}}}}_{a} }}

Tekrar eğer *b* bir değişken veya çok büyük sayı ise, yığın, nokta kullanılarak ve onun yüksekliğini belirtilerek yazılır.

:a \uparrow \uparrow \uparrow b = 
  \left. \underbrace{a^{a^{.^{.^{.{a}}}}}}_{ \underbrace{a^{a^{.^{.^{.{a}}}}}}_{ \underbrace{\vdots}_{a} }} \right\} b

Daha da arttırırsak, a \uparrow \uparrow \uparrow \uparrow b ifadesi, üslü kule yığınlarından oluşan birkaç sütun olarak yazılır. Her bir sütun, yığındaki üslü kulenin sayısını açıklar:

:a \uparrow \uparrow \uparrow \uparrow 3 = a \uparrow \uparrow \uparrow a \uparrow \uparrow \uparrow a  = 
  \left.\left.\left. \underbrace{a^{a^{.^{.^{.{a}}}}}}_{ \underbrace{a^{a^{.^{.^{.{a}}}}}}_{ \underbrace{\vdots}_{a} }} \right\}
                     \underbrace{a^{a^{.^{.^{.{a}}}}}}_{ \underbrace{a^{a^{.^{.^{.{a}}}}}}_{ \underbrace{\vdots}_{a} }} \right\}
                     \underbrace{a^{a^{.^{.^{.{a}}}}}}_{ \underbrace{a^{a^{.^{.^{.{a}}}}}}_{ \underbrace{\vdots}_{a} }} \right\}
                     a

Daha genel bir ifadeyle:

:a \uparrow \uparrow \uparrow \uparrow b = 
  \underbrace{
    \left.\left.\left. \underbrace{a^{a^{.^{.^{.{a}}}}}}_{ \underbrace{a^{a^{.^{.^{.{a}}}}}}_{ \underbrace{\vdots}_{a} }} \right\}
                       \underbrace{a^{a^{.^{.^{.{a}}}}}}_{ \underbrace{a^{a^{.^{.^{.{a}}}}}}_{ \underbrace{\vdots}_{a} }} \right\}
                       \cdots \right\}
                       a
  }_{b}

Bu, a \uparrow^n b'yi herhangi bir *a*, *n* ve *b*nin tekrarlı üssünün tekrarlı üssü olarak ifade eder.

#### Tetrasyonu kullanma

^{b}a şeklindeki tetrasyon gösterimi, bu diyagramları daha basit yapmamızı sağlarken diğer yandan geometrik ifadede çalışabiliriz (bu *tetrasyon kuleleri* olarak adlandırılır).

:  a \uparrow \uparrow b = { }^{b}a

:  a \uparrow \uparrow \uparrow b = \underbrace{^{^{^{^{^{a}.}.}.}a}a}_{b}

:  a \uparrow \uparrow \uparrow \uparrow b = 
   \left. \underbrace{^{^{^{^{^{a}.}.}.}a}a}_{ \underbrace{^{^{^{^{^{a}.}.}.}a}a}_{ \underbrace{\vdots}_{a} }} \right\} b

Son olarak dordüncü Ackermann sayısı 4 \uparrow^4 4 şöyle ifade edilebilir:
: \underbrace{^{^{^{^{^{4}.}.}.}4}4}_{ \underbrace{^{^{^{^{^{4}.}.}.}4}4}_{ \underbrace{^{^{^{^{^{4}.}.}.}4}4}_{4} }} = 
        \underbrace{^{^{^{^{^{4}.}.}.}4}4}_{ \underbrace{^{^{^{^{^{4}.}.}.}4}4}_{ ^{^{^{4}4}4}4 }}

## Genelleştirmeler
Çok büyük sayılarda Knuth yukarı ok gösteriminin çarpım okları elverişsiz kalır. Bunun yerine *n* ok işleci olan \uparrow^n, (ve okların değişken sayısını açıklamak için) veya eşdeğeri olan hiperişlemler kullanılır.

Bazı sayılar öyle büyüktür ki gösterimler bile onları ifade etmekte aciz kalır. Graham sayısını buna örnek gösterebiliriz. Bunlar için Conway dizisi ok gösterimi kullanılabilir. Üç elemanlı bir dizi, diğer gösterimlerle eşdeğerdir. Fakat dört veya daha fazla elemanlı diziler daha kuvvetlidir.

:
  \begin{matrix}
   a\uparrow^n b & = & \mbox{hiper}(a,n+2,b) & = & a\to b\to n \\
   \mbox{(Knuth)} & & \mbox{(işleç)} & & \mbox{(Conway)}
  \end{matrix}
 

Küçük sayılar için Knuth ok gösterimi, büyükleri için de Conway dizisi veya hiperişlemlerin kullanılması tavsiye edilir.

## Açıklama

a, b, n tam sayı ve b \ge 0, n \ge 1 olması şartıyla, yukarı ok gösterimi normalde şöyle tanımlanır:

:
  a\uparrow^n b=
  \left\{
   \begin{matrix}
    a^b, & \mbox{eğer }n=1; \\
    1, & \mbox{eğer }b=0; \\
    a\uparrow^{n-1}(a\uparrow^n(b-1)), & \mbox{aksi takdirde}
   \end{matrix}
  \right.
 

Tüm yukarı ok işleçleri (a \uparrow b şeklindeki normal üstel gösterim de dahil), sağa birleşmedir. Örneğin, iki veya daha fazla işleci içeren ifadede işlem sağdan sola doğru yapılır. Örneğin; a \uparrow b \uparrow c = a \uparrow (b \uparrow c)  \ne (a \uparrow b) \uparrow c, örneğin
3\uparrow\uparrow 3=3^{3^3} burada, 3^{(3^3)}=3^{27}=7625597484987 iken diğer tarafta: \left(3^3\right)^3=27^3=19683.

Görüldüğü gibi işlemleri sağdan sola doğru yapmanın geçerli bir nedeni vardır. Eğer soldan sağa doğru işlem yapsaydık, a \uparrow\uparrow b şöyle olurdu;
a \uparrow (a \uparrow (b - 1)). Böylece \uparrow\uparrow gerekli yeni bir işlem olmazdı.

## Değerler tabloları
2\uparrow^m n'i hesaplama, sonsuz bir tablodaki terimleri yeniden belirleyebiliriz. 2^n sayılarını en üst satıra koyduk (1, 2, 4, 8, 16,... şeklinde devam eden satır). Tablodaki bir sayıyı tanımlamak için, tam solundaki sayıyı alın, ardından önceki satırdaki istenen sayıyı bulun. Bulunduğunuz yer size sayının değerini verecektir.

Yukarıdaki tablo Ackermann işlevi ile hemen hemen aynıdır.

3\uparrow^m n'ni hesaplama:

3^n sayılarını en üst satıra koyduk. ablodaki bir sayıyı tanımlamak için, tam solundaki sayıyı alın, ardından önceki satırdaki istenen sayıyı bulun. Bulunduğunuz yer size sayının değerini verecektir.

10\uparrow^m n'yi hesaplama;

10^n sayılarını en üst satıra koyduk. Tablodaki bir sayıyı tanımlamak için, tam solundaki sayıyı alın, ardından önceki satırdaki istenen sayıyı bulun. Bulunduğunuz yer size sayının değerini verecektir.

2 ≤ *n* ≤ 9 için 10\uparrow^m n sayılarının sayısal sırası *m* nin en belirgin sayı olduğu sözlüksel sıralamadır. Böylece bu 8 sütunluk sayılar için, sayısal sıralama basit satırdan satıradır. 97 sütunluk sayılar için aynı uygulama 3 ≤ *n* ≤ 99'dir ve ve eğer *m* = 1 'den başlarsak 3 ≤ *n* ≤ 9.999.999.999 olur

## Hiperişlem dizisindeki sayısal sistemler

Knuth oklarından farklı olan Goodstein [1947] gösterim sisteminde hiperişlem dizisini kullandı. Bu gösterimde, negatif olmayan tam sayılar sistemini oluşturmak için ( +, \ \times, \ \uparrow, \ \uparrow\uparrow, \ \dots)\,\! kullandı.  \quad ( ^{(1)}, \ ^{(2)}, \ ^{(3)}, \ ^{(4)}, \ \dots )\,\! gibi üstindisleri, ( +, \ \times, \ \uparrow, \ \uparrow\uparrow, \ \dots)\,\! gibi süper işleçlerle ilişkilendirdi. Bunu *n* tam sayısının *kesin kalıtsal temsili* olarak adlandırdı. *k* seviyesi ve *b* tabanı, sadece *k* hiperişlemleri ve sadece 0, 1, ..., *b*-1 dijitlerini kullanarak ifade edilebilir:

* 0 ≤ *n* ≤ *b*-1 için, dijit yerine geçen *n* ile basitçe ifade edilebilir.
* *n* > *b*-1 için *n* ifade tekrarlanarak bulunabilir. Formdaki ilk *n* ifadesi; 
:b^{(k)}{x_k}^{(k-1)}{x_{k-1}}^{(k-2)} \dots {x_2}^{(1)}x_1 dir.
:Burada *x**k*, ..., *x*1, tahmini en büyük sayılardır.

:b^{(k)}x_k \le n

:b^{(k)}{x_k}^{(k-1)}x_{k-1} \le n

:...

:b^{(k)}{x_k}^{(k-1)}{x_{k-1}}^{(k-2)} \dots {x_2}^{(1)}x_1 \le n.

:Daha sonra *b*-1'i aşan her *x**i*, aynı şekilde ifade edilir ve böylece devam eder. Sadece 0, 1, ..., *b*-1 dijitleri içeren form sonuçlanana kadar bu işlem devam eder.

Bu bölümün kalan kısmında, hiperişlemleri ifade etmek için üstindislerin yerine ( +, \ \times, \ \uparrow, \ \uparrow\uparrow, \ \uparrow\uparrow\uparrow, \ \dots) gibi ifadeler kullanılacak.
 
Yüksel seviye işleçler kullanılarak gereksiz parantezlerden sakınılabilinir.

seviye-1 ifadeleri b + X şeklinde forma sahiptir;

seviye-2 ifadeleri b \times X + Y şeklinde forma sahiptir;

seviye-3 ifadeleri b \uparrow X \times Y + Z şeklinde forma sahiptir;

seviye-4 ifadeleri b \uparrow\uparrow X \uparrow Y \times Z + T şeklinde forma sahiptir;

ve böylece devam eder.

+0, \ \times1, \uparrow1, \ \uparrow\uparrow1,  gibi örnekler çıkartılarak ifadeler kısaltılabilir. Örneğin 6 sayısının seviye-3 taban-2 ifadesi, 2\uparrow(2\uparrow1\times1+0)\times1+(2\uparrow1\times1+0)'dır. Bunun kısaltılmış hali, 2 \uparrow 2 + 2 olur.

Örnekler:
266 sayısının 1, 2, 3, 4 ve 5 seviyelerindeki eşsiz taban-2 ifadesi şöyledir:

:\text{Seviye 1:} \ \ 266 = 2 + 2 + \dots + 2 \ \ \text{(133 2s ile)}
:\text{Seviye 2:} \ \ 266 = 2 \times (2 \times (2 \times (2 \times 2 \times 2 \times 2 \times 2 + 1)) + 1)
:\text{Seviye 3:} \ \ 266 = 2 \uparrow 2 \uparrow (2 + 1) + 2 \uparrow (2 + 1) + 2
:\text{Seviye 4:} \ \ 266 = 2 \uparrow\uparrow (2 + 1) \uparrow 2 + 2 \uparrow\uparrow 2 \times 2 + 2
:\text{Seviye 5:} \ \ 266 = 2 \uparrow\uparrow\uparrow 2 \uparrow\uparrow 2 + 2 \uparrow\uparrow\uparrow 2 \times 2 + 2.

## Ayrıca bakınız

* Hiperişlem
* Meşgul kunduz
* Tetrasyon

## Alıntılar

* Knuth, Donald E., "Coping With Finiteness", *Science* vol. 194 n. 4271 (Aralık 1976), pp.&nbsp;1235–1242.
* 
* Robert Munafo, *[http://www.mrob.com/pub/math/largenum.html Büyük Sayılar]*