Пређи на садржај

Кнутова нотација

С Википедије, слободне енциклопедије
(преусмерено са Knuth's up-arrow notation)

У математици, Кнутова нотација је нотација за записивање врло великих целих бројева. Увео ју је Доналд Кнут 1976. године. Идеја је заснована на поновљеном степеновању на сличан начин на који је степеновање поновљено множење, а множење је поновљено сабирање.

Множење природним бројем се може дефинисати као поновљено сабирање:

а степеновање природним степеном се може дефинисати као поновљено множење:

што је инспирисало Кнута да дефинише оператор 'двоструке стрелице' за поновљено степеновање:

Овде и надаље израчунавање се спроводи здесна улево (као таква, операција је десно асоцијативна):

Према овој дефиницији,

(у разложеном облику, овај број би попунио неколико повећих хард дискова[1])
итд.

Ово већ води до прилично великих бројева, али Кнут је проширио своју нотацију. Дефинисао је оператор 'троструке стрелице' за поновљену примену оператора 'двоструке стрелице':

даље имамо оператор 'четири стрелице':

и тако даље. Опште правило је да се оператор стрелица разлаже у серију оператора стрелица. Симболички,

Примери:

Нотација

[уреди | уреди извор]

У изразима као што је , нотација за степеновање обично подразумева да се експонент записује изнад са десне стране од базног броја . Међутим, многа окружења – као што су програмски језици – не подржавају такав дводимензиони запис. Због тога је усвојена линеарна нотација за оваква окружења; стрелица нагоре представља 'дизање на степен'. Ако у скупу карактера не постоји стрелица нагоре, користи се симбол ^.

Нотација са записивањем експонента изнад броја који се диже на степен, није погодна за генерализацију, што објашњава зашто је Кнут изабрао да ради са стрелицом нагоре, .

У контексту програмског језика C, карактер ^ означава ексклузивно или XOR. ** је уобичајена алтернатива за па је у овом контексту могуће користити два симбола за понављање оператора. Могуће је узети да је *** еквивалентно са , али ова употреба није уобичајена.

Генерализације

[уреди | уреди извор]

Неки бројеви су толико велики да чак и запис са вишеструким стрелицама нагоре постаје прегломазан: тада је од користи оператор -стрелица (као и за описе са променљивим бројем стрелица), или еквивалентно, хипер оператори.

Неки бројеви су толико велики да ни оваква нотација није довољна. Пример за ово је Грејемов број. У овим случајевима се може користити Конвејева ланчана нотација: ланац од три елемента је еквивалентан осталим нотацијама, али ланац од четири елемента је још већи.

Обично се Кнутова нотација користи за бројеве релативно мање магнитуде, а ланчане стрелице или хипер оператори за веће бројеве.

Дефиниција

[уреди | уреди извор]

Кнутова нотација се формално дефинише на следећи начин

за све целе бројеве и .

Сви оператори стрелице нагоре (укључујући класично степеновање, ) су десно асоцијативни, то јест, израчунавање се спроводи здесна улево уколико израз садржи два или више таквих оператора. На пример, , не ; на пример
је а не

Постоји добар разлог зашто је изабран овакав редослед израчунавања. Да је коришћено израчунавање слева удесно, тада би било једнако , па суштински не би било нова операција. Десна асоцијативност је такође природна јер можемо да препишемо поновљени са стрелицама који се понавља у развоју као , па је свако леви операнд оператора стрелице. Ово је значајно јер оператори стрелице нису комутативни.

Таблица вредности

[уреди | уреди извор]

Рачунање се може записати у бесконачној таблици. Записујемо бројеве 2 у првој врсти, и пунимо десну колону вредностима 2. Како би се одредила нека вредност у таблици, узима се број одмах лево од ње, а затим се тражи број у претходној врсти на позицији означеној овим бројем.

Вредности = хипер(2, m   2, n) = 2 → n → m
m\n 1 2 3 4 5 6 7 формула
0 2 4 6 8 10 12 14
1 2 4 8 16 32 64 128
2 2 4 16 65536
3 2 4 65536      
4 2 4        

Напомена: означава функционални степен функције (функција се такође означава суфиксом -плекс, као код гуголплекс).

Таблица је иста као код Акерманове функције, осим замене и , и додатка 3 свим вредностима.

Рачунање

Ставимо бројеве 3 у горњу врсту, и попунимо леву колону тројкама. Како би одредили неку вредност у табели, узмемо број одмах лево до њега, и потражимо број у претходној врсти, на позицији коју означава број који смо узели.

Вредности = хипер(3, m   2, n) = 3 → n → m
m\n 1 2 3 4 5 формула
0 3 6 9 12 15
1 3 9 27 81 243
2 3 27 7.625.597.484.987  
3 3 7.625.597.484.987    
4 3      

Рачунање

Попунимо прву врсту бројевима 10 , а прву колону десеткама. Како би одредили неку вредност у табели узимамо број одмах лево до ове позиције, и потражимо број у претходној врсти, на позицији коју означава број који смо узели.

Вредности = хипер(10, m   2, n) = 10 → n → m
m\n 1 2 3 4 5 формула
0 10 20 30 40 50
1 10 100 1.000 10.000 100.000
2 10 10.000.000.000  
3 10      
4 10        

Референце

[уреди | уреди извор]
  1. ^ То јест битова, или око 1,4 TB

Спољашње везе

[уреди | уреди извор]