Inom matematiken är Knuths pilnotation en metod för att skriva stora tal. Dess idé är baserad på det faktum att multiplikation är multipel addition , exponentiering är multipel multiplikation. Det föreslogs av Donald Knuth 1976 [ 1] . Nära relaterad till Ackermann-funktionen och sekvensen av hyperoperatorer .
Tetration , skriven med Knuths pilnotation:
Pentation i Knuths notation:
I den angivna notationen finns b operander, som var och en är lika med a respektive, operationerna upprepas gånger.
De vanliga aritmetiska operationerna – addition, multiplikation och exponentiering – kan naturligtvis utökas till en sekvens av hyperoperatorer enligt följande:
Multiplikation av naturliga tal kan definieras genom en upprepad additionsoperation ("lägg till b kopior av talet a "):
Till exempel,
Att höja a till b kan definieras som en upprepad multiplikationsoperation ("multiplicera b kopior av a "), och i Knuths notation ser denna notation ut som en enkel pil som pekar uppåt:
Till exempel,
En sådan enkel uppåtpil användes som en gradikon i programmeringsspråket Algol .
Donald Knuth fortsatte med operationssekvensen bortom exponentieringen och introducerade konceptet med operatorn "dubbelpil" för att skriva tetration (multipel exponentiering).
Till exempel,
Här och nedan går utvärderingen av uttrycket alltid från höger till vänster, även Knuths piloperatorer (liksom exponentieringsoperationen) har per definition högerassociativitet (höger-till-vänster-ordning). Enligt denna definition,
och så vidare.Detta leder redan till ganska stora siffror, men notationen slutar inte där. Operatorn "trippelpil" används för att skriva upprepad exponentiering av operatorn "dubbelpil" (även känd som " pentation "):
sedan operatorn "fyrdubbel pil":
och så vidare. Som en allmän regel fortsätter den n :te piloperatorn, enligt högerassociativitet , till höger in i en sekventiell serie av n -1 piloperatorer. Symboliskt kan detta skrivas på följande sätt,
Till exempel:
Notationsformen används vanligtvis för att skriva med n pilar.
I uttryck som , är det vanligt att skriva exponenten som den övre skriften av basen för att beteckna exponentiering . Men många andra miljöer - som programmeringsspråk och e-post - stöder inte denna tvådimensionella konfiguration. Därför bör användare använda den linjära notationen för sådana miljöer; uppåtpilen föreslår att du höjer till kraften . Om det inte finns någon uppåtpil bland de tillgängliga tecknen, används det korrigerande infogningsmärket "^" istället .
Ett försök att skriva ett uttryck med den välbekanta notationen med exponenter genererar ett torn av potenser. Till exempel:
Om b är variabel (eller mycket stor) kan gradertornet skrivas med hjälp av punkter och med en notation som anger tornets höjd
Med denna form av notation kan uttrycket skrivas som en uppsättning ( stack ) av sådana krafttorn, som vart och ett indikerar graden av det överliggande
Och igen, om b är variabel (eller mycket stor), kan en uppsättning sådana krafttorn skrivas med hjälp av punkter och märkas för att indikera deras höjder
Dessutom kan uttrycket skrivas med flera kolumner med liknande krafttorn, där varje kolumn anger antalet krafttorn i uppsättningen till vänster
Mer allmänt:
Detta kan skrivas i all oändlighet för att representeras som en iteration av exponentiering för alla a , n och b (även om det är tydligt att detta också blir ganska krångligt).
Tetrationsbeteckningen gör det möjligt att förenkla sådana scheman, samtidigt som man fortsätter att använda en geometrisk representation (vi kan kalla dem tetrationstorn ).
Slutligen, som ett exempel, kan det fjärde Ackermann-numret skrivas som:
Vissa siffror är så stora att även att skriva med Knuths pilar blir för krångligt; i detta fall är användningen av n -arrow- operatorn att föredra (och även för en beskrivning med ett variabelt antal pilar), eller motsvarande, framför hyperoperatorerna . Men vissa siffror är så enorma att ens en sådan notation inte räcker. Till exempel Graham-numret . En Conway-kedja kan användas för att skriva det : en kedja av tre element motsvarar en annan notation, men en kedja av fyra eller fler element är en mer kraftfull form av notation.
Det är vanligt att använda Knuths pilnotation för små tal, och kedjepilar eller hyperoperatorer för stora tal.
Uppåtpilen definieras formellt som
för alla heltal där .
Alla piloperatorer (inklusive vanlig exponentiering, ) är högerassociativa , det vill säga de utvärderas från höger till vänster om uttrycket innehåller två eller flera liknande operatorer. Till exempel,
, men inte ; lika men inteDet finns en god anledning till detta val av höger-till-vänster beräkningsriktning. Om vi skulle använda beräkningsmetoden från vänster till höger, så skulle den vara lika med , och då skulle det egentligen inte vara en ny operator.
Rätt associativitet är också naturlig av följande anledning. Vi kan skriva om de upprepade piluttrycken som visas när de expanderas som , där alla a blir vänsteroperander för piloperatorerna. Detta är viktigt eftersom piloperatorer inte är kommutativa .
Om vi skriver som en funktionell exponent b för funktionen får vi .
Definitionen kan fortsätta ett steg till, med början för n = 0, eftersom exponentiering är upprepad multiplikation, med start från 1. Att extrapolera ytterligare ett steg, skriva multiplikation som upprepad addition, är inte helt korrekt, eftersom multiplikation är upprepad addition, med början kl. 0 istället för 1. Att "extrapolera" ett steg igen, skriva det inkrementella n som en upprepad tillägg av 1, kräver att man börjar med siffran a . Denna skillnad betonas också i definitionen av hyperoperatorn , där de initiala värdena för addition och multiplikation ges separat.
Beräkningen kan omformuleras i termer av en oändlig tabell. Vi placerar siffrorna i den översta raden och fyller kolumnen till vänster med siffran 2. För att bestämma numret i tabellen, ta numret närmast till vänster, hitta sedan det önskade numret överst i föregående rad, i positionen som ges av det nyss mottagna värdet.
m \ n | ett | 2 | 3 | fyra | 5 | 6 | Formel |
---|---|---|---|---|---|---|---|
ett | 2 | fyra | åtta | 16 | 32 | 64 | |
2 | 2 | fyra | 16 | 65536 | |||
3 | 2 | fyra | 65536 | ||||
fyra | 2 | fyra |
Tabellen är densamma som i Ackerman-funktionsartikeln , förutom förskjutningen av värdena för och , och utöver 3 till alla värden.
Beräkning
Vi placerar siffrorna i den översta raden och fyller kolumnen till vänster med siffran 3. För att bestämma numret i tabellen, ta numret närmast till vänster, hitta sedan det önskade numret överst i föregående rad, i positionen som ges av det nyss mottagna värdet.
m \ n | ett | 2 | 3 | fyra | 5 | Formel |
---|---|---|---|---|---|---|
ett | 3 | 9 | 27 | 81 | 243 | |
2 | 3 | 27 | 7,625,597,484,987 | |||
3 | 3 | 7,625,597,484,987 | ||||
fyra | 3 |
Beräkning
Vi placerar siffrorna i den översta raden och fyller kolumnen till vänster med siffran 10. För att bestämma numret i tabellen, ta siffran närmast till vänster, hitta sedan det önskade numret överst i föregående rad, i positionen som ges av det nyss mottagna värdet.
m \ n | ett | 2 | 3 | fyra | 5 | Formel |
---|---|---|---|---|---|---|
ett | tio | 100 | 1000 | 10 000 | 100 000 | |
2 | tio | 10 000 000 000 | ||||
3 | tio | |||||
fyra | tio |
För 2 ≤ n ≤ 9 är den numeriska ordningen den lexikografiska ordningen med m som det mest signifikanta talet, så ordningen på numren i dessa 8 kolumner är bara rad för rad. Detsamma gäller för siffror i 97 kolumner med 3 ≤ n ≤ 99, och vi börjar med m = 1 även för 3 ≤ n ≤ 9 999 999 999.
Stora siffror | |
---|---|
Tal | |
Funktioner | |
Noteringar |