Knuthova šipková notace

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 5. září 2021; kontroly vyžadují 5 úprav .

V matematice je Knuthova šipková notace  metodou pro psaní velkých čísel. Jeho myšlenka je založena na skutečnosti, že násobení je vícenásobné sčítání , umocňování  je vícenásobné násobení. To bylo navrženo Donaldem Knuthem v roce 1976 [1] . Úzce souvisí s Ackermannovou funkcí a sekvencí hyperoperátorů .

Tetration , zapsaný pomocí Knuthovy šipky:

Pentace v Knuthově notaci:

V uvedeném zápisu existuje b operandů, z nichž každý je roven a , respektive operace se opakují .

Úvod

Obvyklé aritmetické operace – sčítání, násobení a umocňování – lze přirozeně rozšířit do sekvence hyperoperátorů takto:

Násobení přirozených čísel lze definovat pomocí operace opakovaného sčítání („přidej b kopie čísla a “):

Například,

Zvýšení a na mocninu b lze definovat jako opakovanou operaci násobení („násobení b kopií a “) a v Knuthově zápisu vypadá tento zápis jako jedna šipka směřující nahoru:

Například,

Taková jediná šipka nahoru byla použita jako ikona stupně v programovacím jazyce Algol .

Donald Knuth pokračoval v dalším sledu operací za umocňováním a zavedl koncept operátoru „dvojité šipky“ pro zápis tetrace (vícenásobné umocňování).

Například,

Zde a níže probíhá vyhodnocení výrazu vždy zprava doleva, také Knuthovy šipkové operátory (stejně jako operace umocňování) mají ze své podstaty pravou asociativitu (řazení zprava doleva). Podle této definice,

a tak dále.

To již vede k poměrně velkým číslům, ale tím zápis nekončí. Operátor „trojitá šipka“ se používá k zápisu opakovaného umocňování operátoru „dvojité šipky“ (také známého jako „ pentace “):

pak operátor „čtyři šipka“:

atd. Obecným pravidlem je, že n-tý šipkový operátor podle pravé asociativity pokračuje doprava do sekvenční řady n - 1 šipkových operátorů. Symbolicky to lze napsat následovně:

Například:

Forma zápisu se obvykle používá pro zápis s n šipkami.

Systém zápisu

Ve výrazech jako , je běžné psát exponent jako horní index základu k označení umocňování . Ale mnoho dalších prostředí - jako jsou programovací jazyky a e-mail  - tuto dvourozměrnou konfiguraci nepodporuje. Proto by uživatelé měli pro taková prostředí používat lineární zápis; šipka nahoru naznačuje zvýšení na sílu . Pokud mezi dostupnými znaky není žádná šipka nahoru , použije se místo toho opravná značka pro vložení „^“ .


Označení "↑"

Pokus o zápis výrazu pomocí známé notace s exponenty generuje věž mocnin. Například:

Pokud je b proměnné (nebo velmi velké), lze věž stupňů zapsat pomocí teček a se zápisem udávajícím výšku věže.

Pomocí této formy zápisu lze výraz zapsat jako množinu ( stohu ) takových energetických věží, z nichž každá udává stupeň překrytí

A znovu, pokud je b proměnlivé (nebo velmi velké), lze sadu takových energetických věží zapsat pomocí bodů a označit jimi, aby označovaly jejich výšky.

Kromě toho lze výraz zapsat pomocí několika sloupců podobných energetických věží, kde každý sloupec označuje počet energetických věží v sadě vlevo

Obecněji:


To může být zapsáno donekonečna, aby bylo reprezentováno jako iterace umocňování pro libovolné a , n a b (ačkoli je jasné, že se to také stává značně těžkopádným).

Použití tetrace

Tetrační notace umožňuje zjednodušit taková schémata a přitom nadále používat geometrickou reprezentaci (můžeme je nazvat tetovací věže ).

Nakonec, jako příklad, čtvrté Ackermannovo číslo lze zapsat jako:

Generalizace

Některá čísla jsou tak velká, že i psaní Knuthovými šipkami je příliš těžkopádné; v tomto případě je výhodnější použití operátoru n - šipka (a také pro popis s proměnným počtem šipek), nebo ekvivalentně, než hyperoperátory . Některá čísla jsou ale tak obrovská, že ani takový zápis nestačí. Například Grahamovo číslo . K jeho zápisu lze použít Conwayův řetězec : řetězec tří prvků je ekvivalentní jinému zápisu, ale řetězec čtyř nebo více prvků je silnější forma zápisu.

Pro malá čísla je běžné používat Knuthovu šipkovou notaci a pro velká čísla řetězové šipky nebo hyperoperátory.

Definice

Zápis šipky nahoru je formálně definován jako

pro všechna celá čísla kde .

Všechny šipkové operátory (včetně běžného umocňování, ) jsou asociativní vpravo , to znamená, že se vyhodnocují zprava doleva, pokud výraz obsahuje dva nebo více podobných operátorů. Například,

, ale ne ; rovné , ale ne

Pro tuto volbu směru výpočtu zprava doleva existuje dobrý důvod. Pokud bychom použili metodu výpočtu zleva doprava, pak by se to rovnalo a ve skutečnosti by to nebyl nový operátor.

Pravá asociativita je také přirozená z následujícího důvodu. Můžeme přepsat opakované šipkové výrazy , které se objeví po rozbalení jako , kde všechna a se stanou levými operandy šipek. To je důležité, protože šipkové operátory nejsou komutativní .

Zápisem jako funkcionální exponent b funkce dostaneme .

Definice může pokračovat ještě jedním krokem, počínaje pro n = 0, protože umocňování je opakované násobení, počínaje 1. Extrapolovat ještě jeden krok, psát násobení jako opakované sčítání, není zcela správné, protože násobení je opakované sčítání, počínaje od 0 místo 1. "Extrapolace" znovu o jeden krok, zápis přírůstku n jako opakované sčítání 1, vyžaduje začít od čísla a . Tento rozdíl je také zdůrazněn v definici hyperoperátoru , kde jsou počáteční hodnoty pro sčítání a násobení uvedeny samostatně.

Tabulka hodnot

Výpočet lze přeformulovat do podoby nekonečné tabulky. Čísla umístíme do horního řádku a sloupec vlevo vyplníme číslem 2. Číslo v tabulce určíme tak, že vezmeme číslo nejblíže vlevo, pak najdeme požadované číslo nahoře v předchozím řádku, v pozice daná právě přijatou hodnotou.

Hodnoty = hyper (2,  m  + 2,  n ) = 2 → n → m
m \ n jeden 2 3 čtyři 5 6 Vzorec
jeden 2 čtyři osm 16 32 64
2 2 čtyři 16 65536
3 2 čtyři 65536    
čtyři 2 čtyři      

Tabulka je stejná jako v článku Ackerman function , s výjimkou posunu hodnot a a navíc 3 ke všem hodnotám.

Výpočet

Čísla umístíme do horní řady a sloupec nalevo vyplníme číslem 3. Číslo v tabulce určíme tak, že vezmeme číslo nejblíže vlevo, požadované číslo pak najdeme nahoře v předchozím řádku, v pozice daná právě přijatou hodnotou.

Hodnoty = hyper (3,  m  + 2,  n ) = 3 → n → m
m \ n jeden 2 3 čtyři 5 Vzorec
jeden 3 9 27 81 243
2 3 27 7,625,597,484,987  
3 3 7,625,597,484,987    
čtyři 3      

Výpočet

Čísla umístíme do horního řádku a sloupec nalevo vyplníme číslem 10. Číslo v tabulce určíme tak, že vezmeme číslo nejblíže vlevo, pak najdeme požadované číslo nahoře v předchozím řádku, v pozice daná právě přijatou hodnotou.

Hodnoty = hyper (10,  m  + 2,  n ) = 10 → n → m
m \ n jeden 2 3 čtyři 5 Vzorec
jeden deset 100 1000 10 000 100 000
2 deset 10 000 000 000
3 deset  
čtyři deset    

Pro 2 ≤ n ≤ 9 je číselné pořadí lexikografické pořadí s m jako nejvýznamnějším číslem, takže pořadí čísel těchto 8 sloupců je pouze řádek po řádku. Totéž platí pro čísla v 97 sloupcích s 3 ≤ n ≤ 99 a začínáme s m = 1 i pro 3 ≤ n ≤ 9 999 999 999.

Poznámky

  1. Knuth, Donald E. Mathematics and Computer Science: Coping with Finiteness  //  Science : journal. - 1976. - Sv. 194 . - S. 1235-1242 . - doi : 10.1126/science.194.4271.1235 .

Odkazy