एकरमैन फलन: Difference between revisions
No edit summary |
No edit summary |
||
(12 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
{{Short description|Quickly-growing function}} | {{Short description|Quickly-growing function}} | ||
{{About| | {{About|गणितीय कार्य||एकरमैन (बहुविकल्पी)}} | ||
{{Use shortened footnotes|date=November 2022}} | {{Use shortened footnotes|date=November 2022}} | ||
संगणनीयता सिद्धांत में, [[विल्हेम एकरमैन]] के नाम पर एकरमैन फलन, जो सबसे सरल फलन में से एक है{{sfn|Monin|Hinchey|2003|p=61}} और सबसे पहले खोजे गए पूर्ण संगणनीय फलन का उदाहरण है जो मूल पुनरावर्ती फलन नहीं हैं। सभी [[आदिम पुनरावर्ती कार्य|मूल पुनरावर्ती फलन]] पूर्ण और संगणनीय हैं, लेकिन एकरमैन फलन यह दर्शाता है कि सभी पूर्ण संगणनीय फलन मूल फलन की पुनरावर्ती नहीं हैं। एकरमैन के प्रकाशन के बाद{{sfn|Ackermann|1928}} उनके फलन के (जिसमें तीन ऋणोतर पूर्णांक प्राचर थे), कई लेखकों ने इसे विभिन्न उद्देश्यों के अनुरूप संशोधित किया, ताकि | |||
संगणनीयता सिद्धांत में, [[विल्हेम एकरमैन]] के नाम पर एकरमैन फलन, जो सबसे सरल फलन में से एक है{{sfn|Monin|Hinchey|2003|p=61}} और सबसे पहले खोजे गए पूर्ण संगणनीय फलन का उदाहरण है जो कि मूल पुनरावर्ती फलन नहीं हैं। सभी [[आदिम पुनरावर्ती कार्य|मूल पुनरावर्ती फलन]] पूर्ण और संगणनीय हैं, लेकिन एकरमैन फलन यह दर्शाता है कि सभी पूर्ण संगणनीय फलन मूल फलन की पुनरावर्ती नहीं हैं। एकरमैन के प्रकाशन के बाद{{sfn|Ackermann|1928}} उनके फलन के (जिसमें तीन ऋणोतर पूर्णांक प्राचर थे), कई लेखकों ने इसे विभिन्न उद्देश्यों के अनुरूप संशोधित किया, ताकि एकरमैन फलन मूल फलन के कई रूपों में से किसी को भी संदर्भित कर सके। एक सामान्य संस्करण, दो-प्राचर एकरमैन-पीटर फलन को ऋणोतर पूर्णांक ''m'' और ''n'' के लिए निम्नानुसार परिभाषित किया गया है: | |||
:<math> | :<math> | ||
Line 30: | Line 31: | ||
( इसकी ऐतिहासिक भूमिका के अलावा यह कुल-गणना योग्य-लेकिन-मूल-पुनरावर्ती फलन के रूप में नहीं, एकरमैन के मूल फलन को घातांक से परे बुनियादी अंकगणितीय संचालन का विस्तार करने के लिए देखा जाता है, हालांकि एकरमैन फलन के रूपांतरों के समान नहीं है जो विशेष रूप से डिज़ाइन किए गए हैं। जैसे कि - रूबेन गुडस्टीन का अतिसंचालन अनुक्रम।) | ( इसकी ऐतिहासिक भूमिका के अलावा यह कुल-गणना योग्य-लेकिन-मूल-पुनरावर्ती फलन के रूप में नहीं, एकरमैन के मूल फलन को घातांक से परे बुनियादी अंकगणितीय संचालन का विस्तार करने के लिए देखा जाता है, हालांकि एकरमैन फलन के रूपांतरों के समान नहीं है जो विशेष रूप से डिज़ाइन किए गए हैं। जैसे कि - रूबेन गुडस्टीन का अतिसंचालन अनुक्रम।) | ||
अनंत पर,{{sfn|Hilbert|1926|p=185}} | डेविड हिल्बर्ट ने परिकल्पना की कि एकरमैन फलन अनंत पर,{{sfn|Hilbert|1926|p=185}} मूल पुनरावर्ती नहीं था, लेकिन यह एकरमैन, हिल्बर्ट के निजी सचिव और पूर्व छात्र थे, जिन्होंने वास्तव में अपने कागज में वास्तविक संख्या के निर्माण पर परिकल्पना को सिद्ध किया था।{{sfn|Ackermann|1928}}{{sfn|van Heijenoort|1977}} | ||
पीटर रोजसा{{sfn|Péter|1935}} और [[राफेल रॉबिन्सन]]{{sfn|Robinson|1948}} ने बाद में एकरमैन फलन का एक दो-चर संस्करण को विकसित किया जो बाद में लगभग सभी लेखकों द्वारा पसंद किया गया। | पीटर रोजसा{{sfn|Péter|1935}} और [[राफेल रॉबिन्सन]]{{sfn|Robinson|1948}} ने बाद में एकरमैन फलन का एक दो-चर संस्करण को विकसित किया जो बाद में लगभग सभी लेखकों द्वारा पसंद किया गया। | ||
सामान्यीकृत अतिसंचालन, उदाहरण - <math>G(m, a, b) = a[m]b</math>, एकरमैन फलन का भी एक संस्करण है।{{sfn|Ritchie|1965|p=1028}} | सामान्यीकृत अतिसंचालन, उदाहरण - <math>G(m, a, b) = a[m]b</math>, एकरमैन फलन का भी एक संस्करण है।{{sfn|Ritchie|1965|p=1028}} | ||
1963 में आर.सी. बक अतिसंचालन सीक्वेंस पर एक सहज ज्ञान युक्त दो-चर <ref name="letop3" group="n">with parameter order reversed</ref>वेरिएंट <math>\operatorname{F}</math> पर आधारित है:{{sfn|Buck|1963}}{{sfn|Meeussen|Zantema|1992|p=6}} | 1963 में आर.सी. बक अतिसंचालन सीक्वेंस पर एक सहज ज्ञान युक्त दो-चर <ref name="letop3" group="n">with parameter order reversed</ref>वेरिएंट <math>\operatorname{F}</math> पर आधारित है:{{sfn|Buck|1963}}{{sfn|Meeussen|Zantema|1992|p=6}} | ||
:<math>\operatorname{F}(m,n) = 2[m]n.</math> | :<math>\operatorname{F}(m,n) = 2[m]n.</math> | ||
Line 50: | Line 52: | ||
==परिभाषा== | ==परिभाषा== | ||
======परिभाषा: एम-सरणी फलन के रूप में ====== | ======परिभाषा: एम-सरणी फलन के रूप में ====== | ||
एकरमैन का मूल तीन-प्राचर फलन <math>\varphi(m, n, p)</math> ऋणोतर पूर्णांकों | एकरमैन का मूल तीन-प्राचर फलन <math>\varphi(m, n, p)</math> ऋणोतर पूर्णांकों <math>m,n,</math> तथा <math>p</math> के लिए निम्नानुसार पुनरावर्तन परिभाषित किया गया है : | ||
:<math>\begin{align} | :<math>\begin{align} | ||
Line 92: | Line 94: | ||
पुनरावृत्त फलन एक निश्चित संख्या में स्वयं के साथ एक फलन बनाने की प्रक्रिया है। फलन रचना एक साहचर्य संक्रिया है, इसलिए <math>f(f^{n}(x)) = f^{n}(f(x))</math>. | पुनरावृत्त फलन एक निश्चित संख्या में स्वयं के साथ एक फलन बनाने की प्रक्रिया है। फलन रचना एक साहचर्य संक्रिया है, इसलिए <math>f(f^{n}(x)) = f^{n}(f(x))</math>. | ||
एकरमैन फलन को एकल फलन के अनुक्रम के रूप में | एकरमैन फलन को एकल फलन के अनुक्रम के रूप में समझा जा सकता है ,यदि हम यह स्थापित कर सके कि <math>\operatorname{A}_{m}(n) = \operatorname{A}(m,n)</math>. | ||
तब फलन एक एकल <ref name="letop4" group="n">'[[Currying|curried]]'</ref> फलन का अनुक्रम <math>\operatorname{A}_0, \operatorname{A}_1, \operatorname{A}_2, ...</math> , जिसे हम पुनरावृत्त फलन से पारिभाषित कर सकते है : | तब फलन एक एकल <ref name="letop4" group="n">'[[Currying|curried]]'</ref> फलन का अनुक्रम <math>\operatorname{A}_0, \operatorname{A}_1, \operatorname{A}_2, ...</math> ,होगा जिसे हम पुनरावृत्त फलन से पारिभाषित कर सकते है : | ||
:<math> | :<math> | ||
\begin{array}{lcl} | \begin{array}{lcl} | ||
Line 122: | Line 124: | ||
{| | {| | ||
| align="left" |[[Reduction strategy#Term rewriting| | | align="left" |[[Reduction strategy#Term rewriting|बाएँ सबसे बाहरी (एक कदम) नीतिबद्ध]]:{{space|12}} | ||
| align="left" |[[Reduction strategy#Term rewriting| | | align="left" |[[Reduction strategy#Term rewriting|बांयी ओर-अंतरतम (एक-चरणीय) नीतिबद्ध]]: | ||
|- | |- | ||
|<math>\underline{{A(S(0),S(S(0)))}}</math> | |<math>\underline{{A(S(0),S(S(0)))}}</math> | ||
Line 159: | Line 161: | ||
योजनाबद्ध रूप से, से शुरू <math>\langle m,n \rangle</math>: | योजनाबद्ध रूप से, से शुरू <math>\langle m,n \rangle</math>: | ||
'''WHILE''' stackLength <> 1 | |||
{ | { | ||
'''POP''' 2 elements; | |||
PUSH 1 | '''PUSH''' 1 or 2 or 3 elements, applying the rules r1, r2, r3 | ||
} | } | ||
[[स्यूडोकोड]] प्रकाशित हो चुकी है। {{harvtxt| | [[स्यूडोकोड]] प्रकाशित हो चुकी है। {{harvtxt|ग्रॉसमैन|जेटमन|1988}}. | ||
उदाहरण के लिए, आगम पर <math>\langle 2,1 \rangle</math>, | उदाहरण के लिए, आगम पर <math>\langle 2,1 \rangle</math>, | ||
{| | {| | ||
| align="left" | | | align="left" |स्टैक का विन्यास{{space|4}} | ||
| align="left" | | | align="left" |कमी को दर्शाना <ref group="n" name="letop1">For better readability<br />S(0) is notated as 1,<br />S(S(0)) is notated as 2,<br />S(S(S(0))) is notated as 3,<br />etc...</ref> | ||
|- | |- | ||
|<math>\underline{2,1}</math> | |<math>\underline{2,1}</math> | ||
Line 218: | Line 220: | ||
|} | |} | ||
टिप्पणियां | टिप्पणियां | ||
*[[रोसेटा कोड]] पर 225 कंप्यूटर भाषाओं में सबसे | *[[रोसेटा कोड]] पर 225 कंप्यूटर भाषाओं में सबसे बांयी ओर-अंतरतम नीति लागू की गई है। | ||
*सभी | *सभी <math>m,n</math> की गणना के लिए <math>A(m,n)</math> फलन <math>(A(m,n) + 1)^m</math> कदम से अधिक नहीं लेता है{{sfn|Cohen|1987|p=56|loc=Proposition 3.16 (see in proof)}} | ||
*{{harvtxt| | *{{harvtxt|ग्रॉसमैन |जेटमन|1988}} बताया कि <math>\operatorname{A}(m,n)</math> स्टैक की गणना में अधिकतम लंबाई <math>\operatorname{A}(m,n)</math>, है जब कि <math>m>0</math>. | ||
:उनका अपना | :उनका अपना कलन विधि, स्वाभाविक रूप से पुनरावृत्त, गणना करता है <math>\operatorname{A}(m,n)</math> अंदर <math>\mathcal{O}(m \operatorname{A}(m,n))</math> समय और भीतर <math>\mathcal{O}(m)</math> स्थान । | ||
=== टीआरएस, पुनरावृत्त 1-सरणी फलन === | ===== टीआरएस, पुनरावृत्त 1-सरणी फलन पर आधारित है ===== | ||
पुनरावृत्त <u>1- | पुनरावृत्त <u>1-सरणी</u> एकरमैन फलन की परिभाषा विभिन्न कमी नियमों की ओर ले जाती है | ||
:<math> | :<math> | ||
\begin{array}{lll} | \begin{array}{lll} | ||
Line 238: | Line 240: | ||
\end{array} | \end{array} | ||
</math> | </math> | ||
पिछले खंड की तरह की गणना <math>\operatorname{A}^1_m(n)</math> | पिछले खंड की तरह की गणना <math>\operatorname{A}^1_m(n)</math> स्टैक के साथ लागू किया जा सकता है। | ||
प्रारंभ में स्टैक में तीन तत्व होते हैं <math>\langle 1,m,n \rangle</math>. | |||
फिर बार-बार तीन शीर्ष तत्वों को नियमों के अनुसार बदल दिया जाता है<ref group="n" name="letop2" />: | |||
<math> | |||
\begin{array}{lllllllll} | \begin{array}{lllllllll} | ||
\text{(r4)} & 1 &, 0 &, n & \rightarrow & (n+1) \\ | \text{(r4)} & 1 &, 0 &, n & \rightarrow & (n+1) \\ | ||
Line 249: | Line 253: | ||
\end{array} | \end{array} | ||
</math> | </math> | ||
योजनाबद्ध रूप से, से शुरू <math>\langle 1, m,n \rangle</math>: | योजनाबद्ध रूप से, से शुरू <math>\langle 1, m,n \rangle</math>: | ||
'''WHILE''' stackLength <> 1 | |||
{ | { | ||
'''POP''' 3 elements; | |||
'''PUSH''' 1 or 3 or 5 elements, applying the rules r4, r5, r6; | |||
} | } | ||
उदाहरण | उदाहरण | ||
आगम पर <math>\langle 1,2,1 \rangle</math> क्रमिक | आगम पर <math>\langle 1,2,1 \rangle</math> क्रमिक स्टैक विन्यास हैं | ||
:<math>\begin{align} | :<math>\begin{align} | ||
& \underline{1,2,1} | & \underline{1,2,1} | ||
Line 333: | Line 338: | ||
\end{align}</math> | \end{align}</math> | ||
टिप्पणियां | टिप्पणियां | ||
*किसी दिए गए आगम पर अब तक प्रस्तुत टीआरएस | *किसी दिए गए आगम पर अब तक प्रस्तुत टीआरएस ने अभी तक चरणों की एक ही संख्या में एकजुट किया है। वे समान कटौती नियमों का भी उपयोग करते हैं (इस तुलना में नियमों r1, r2, r3 को क्रमशः नियम r4, r5, r6/r7 के समान माना जाता है)। उदाहरण के लिए, एक <math>A(2,1)</math> की कटौती 14 चरणों में अभिसरित होता है: 6 × r1, 3 × r2, 5 × r3। की कमी <math>A_2(1)</math> समान 14 चरणों में अभिसरित होता है: 6 × r4, 3 × r5, 5 × r6/r7। टीआरएस उस क्रम में भिन्न होते हैं जिसमें कमी के नियम लागू होते हैं। | ||
* कब <math>A_{i}(n)</math> {r4, r5, r6} | * कब <math>A_{i}(n)</math> नियमों का पालन करते हुए {r4, r5, r6} गणना की जाती है, स्टैक की अधिकतम लंबाई <math>2 \times A(i,n)</math> के नीचे रहती है जब कमी नियम r6 के स्थान पर कमी नियम r7 का उपयोग किया जाता है, तो स्टैक की अधिकतम लंबाई केवल <math>2(i+2)</math> होती है। स्टैक की लंबाई पुनरावर्ती गहराई को दर्शाती है। नियमों के अनुसार कमी के रूप में {r4, r5, r7} में पुनरावर्तन की एक छोटी अधिकतम गहराई शामिल है,<ref group="n" name="letop6">The maximum depth of recursion refers to the number of levels of activation of a procedure which exist during the deepest call of the procedure. {{harvtxt|Cornelius|Kirby|1975}}</ref> यह गणना उस संबंध में अधिक कुशल है। | ||
===टीआरएस, हाइपरऑपरेटरों पर आधारित=== | ===टीआरएस, हाइपरऑपरेटरों पर आधारित=== | ||
जैसा {{harvtxt| | जैसा {{harvtxt|सुंदब्लाड |1971}} - या {{harvtxt|पोर्टो|माटोस |1980}} - स्पष्ट रूप से दिखाया गया है, एकरमेन फलन अतिसंचालन अनुक्रम के संदर्भ में व्यक्त किया जा सकता है: | ||
:<math>A(m,n) = \begin{cases} | :<math>A(m,n) = \begin{cases} | ||
n+1 & m=0 \\ | n+1 & m=0 \\ | ||
Line 373: | Line 378: | ||
\end{array} | \end{array} | ||
</math> | </math> | ||
ये नियम बेस केस | ये नियम बेस केस A (0, n), संरेखण (n + 3) और फज (-3) का ख्याल रखते हैं। | ||
उदाहरण | उदाहरण | ||
Line 379: | Line 384: | ||
गणना करना <math>A(2,1) \rightarrow_{*} 5</math> | गणना करना <math>A(2,1) \rightarrow_{*} 5</math> | ||
{| | {| | ||
| align="left" | | | align="left" |कमी नियम के उपयोग से <math>\text{b7}</math>:<ref group="n" name="letop1" />{{space|4}} | ||
| align="left" | | | align="left" |कमी नियम के उपयोग से <math>\text{b6}</math>:<ref group="n" name="letop1" /> | ||
|- | |- | ||
|<math>\underline{A(2,1)}</math> | |<math>\underline{A(2,1)}</math> | ||
Line 528: | Line 533: | ||
\end{align}</math> | \end{align}</math> | ||
टिप्पणियां | टिप्पणियां | ||
*की गणना <math>\operatorname{A}_{i}(n)</math> नियमों के मुताबिक { | *की गणना <math>\operatorname{A}_{i}(n)</math> नियमों के मुताबिक {b1 - b5, b6, r8 - r10} गहरा पुनरावर्ती है। नेस्टेड की अधिकतम गहराई <math>F</math> एस है <math>A(i,n)+1</math>. अपराधी वह क्रम है जिसमें पुनरावृत्ति निष्पादित होती है: <math>F^{n+1}(x) = F(F^{n}(x))</math>. सबसे पहला <math>F</math> पूरे क्रम के सामने आने के बाद ही गायब हो जाता है। | ||
*नियमों के अनुसार गणना {b1 - b5, b7, r8 - r10} उस संबंध में अधिक कुशल है। पुनरावृत्ति <math>F^{n+1}(x) = F^{n}(F(x))</math> कोड के एक ब्लॉक पर बार-बार लूप को सिम्युलेट करता है।<ref group="n" name="letop7">'''LOOP''' n+1 '''TIMES DO''' F</ref> घोंसला बनाना तक सीमित है <math>(i+1)</math>, प्रति पुनरावृत्त फलन के लिए एक पुनरावर्तन स्तर। {{harvtxt| | *नियमों के अनुसार गणना {b1 - b5, b7, r8 - r10} उस संबंध में अधिक कुशल है। पुनरावृत्ति <math>F^{n+1}(x) = F^{n}(F(x))</math> कोड के एक ब्लॉक पर बार-बार लूप को सिम्युलेट करता है।<ref group="n" name="letop7">'''LOOP''' n+1 '''TIMES DO''' F</ref> घोंसला बनाना तक सीमित है <math>(i+1)</math>, प्रति पुनरावृत्त फलन के लिए एक पुनरावर्तन स्तर। {{harvtxt|मेयर|रिची|1967}} यह पत्राचार दिखाया। | ||
*ये विचार केवल पुनरावर्तन गहराई से संबंधित हैं। पुनरावृति का कोई भी तरीका समान नियमों को शामिल करते हुए समान संख्या में कटौती चरणों की ओर ले जाता है (जब नियम b6 और b7 को समान माना जाता है)। की कमी <math>A(2,1)</math> उदाहरण के लिए 35 चरणों में परिवर्तित होता है: 12 × b1, 4 × b2, 1 × b3, 4 × b5, 12 × b6/b7, 1 × r9, 1 × r10। फलनप्रणाली केवल उस क्रम को प्रभावित करती है जिसमें कटौती नियम लागू होते हैं। | *ये विचार केवल पुनरावर्तन गहराई से संबंधित हैं। पुनरावृति का कोई भी तरीका समान नियमों को शामिल करते हुए समान संख्या में कटौती चरणों की ओर ले जाता है (जब नियम b6 और b7 को समान माना जाता है)। की कमी <math>A(2,1)</math> उदाहरण के लिए 35 चरणों में परिवर्तित होता है: 12 × b1, 4 × b2, 1 × b3, 4 × b5, 12 × b6/b7, 1 × r9, 1 × r10। फलनप्रणाली केवल उस क्रम को प्रभावित करती है जिसमें कटौती नियम लागू होते हैं। | ||
*निष्पादन समय का वास्तविक लाभ बार-बार उप-परिणामों की पुनर्गणना न करके ही प्राप्त किया जा सकता है। [[संस्मरण]] एक ऑप्टिमाइज़ेशन तकनीक है जहाँ फलन कॉल के परिणाम कैश किए जाते हैं और उसी आगम के फिर से आने पर वापस आ जाते हैं। उदाहरण के लिए देखें {{harvtxt| | *निष्पादन समय का वास्तविक लाभ बार-बार उप-परिणामों की पुनर्गणना न करके ही प्राप्त किया जा सकता है। [[संस्मरण]] एक ऑप्टिमाइज़ेशन तकनीक है जहाँ फलन कॉल के परिणाम कैश किए जाते हैं और उसी आगम के फिर से आने पर वापस आ जाते हैं। उदाहरण के लिए देखें {{harvtxt|वार्ड |1993}}. {{harvtxt|ग्रॉसमैन |जेटमन|1988}} एक चालाक कलन विधि प्रकाशित किया जो गणना करता है <math>A(i,n)</math> अंदर <math>\mathcal{O}(i A(i,n))</math> समय और भीतर <math>\mathcal{O}(i)</math> स्थान । | ||
===बड़ी संख्या=== | ===बड़ी संख्या=== | ||
Line 568: | Line 573: | ||
==मानों की | ==मानों की सारणी== | ||
एकरमैन फलन की गणना एक अनंत | एकरमैन फलन की गणना एक अनंत सारणी के रूप में की जा सकती है। सबसे पहले, प्राकृतिक संख्याओं को शीर्ष पंक्ति में रखें। सारणी में संख्या निर्धारित करने के लिए, संख्या को तुरंत बाईं ओर ले जाएं। फिर उस संख्या का उपयोग उस संख्या और एक पंक्ति द्वारा दिए गए स्तंभ में आवश्यक संख्या देखने के लिए करें। यदि इसके बाईं ओर कोई संख्या नहीं है, तो बस पिछली पंक्ति में 1 वाले स्तंभ को देखें। यहाँ सारणी का एक छोटा ऊपरी-बाएँ भाग है: | ||
{| class="wikitable" | {| class="wikitable" | ||
|+ | |+''A'' के मान (''m'', ''n'') | ||
|- | |- | ||
! {{diagonal split header|''m''|''n''}} | ! {{diagonal split header|''m''|''n''}} | ||
Line 634: | Line 639: | ||
|<math>(2\to(n+3)\to(m-2))-3</math> | |<math>(2\to(n+3)\to(m-2))-3</math> | ||
|} | |} | ||
यहां संख्याएं जो केवल | यहां संख्याएं जो केवल पुनरावर्ती घातांकीय या नुथ के उच्च-तीर संकेतन के साथ व्यक्त की जाती हैं, जो कि बहुत बड़ी होती हैं और दशमलव अंक प्रणाली में लिखने के लिए बहुत अधिक स्थान लेती हैं। | ||
सारणी के इस प्रारंभिक खंड में बड़ी संख्याओं के होने के बावजूद, कुछ और भी बड़ी संख्याओं को परिभाषित किया गया है, जैसे ग्राहम की संख्या, जिसे किसी भी छोटी संख्या में नूथ तीरों के साथ नहीं लिखा जा सकता है। यह संख्या एक ऐसी तकनीक के साथ बनाई गई है जो एकरमेन फलन को पुनरावर्ती रूप से लागू करने के समान है। | |||
यह उपरोक्त | यह उपरोक्त सारणी का अन्य स्वरुप है, लेकिन पैटर्न को स्पष्ट रूप से दिखाने के लिए फलन परिभाषा से प्रासंगिक अभिव्यक्ति द्वारा प्रतिस्थापित मानों के साथ: | ||
{| class="wikitable" | {| class="wikitable" | ||
|+ | |+''A'' के मान (''m'', ''n'') | ||
|- | |- | ||
! {{diagonal split header|''m''|''n''}} | ! {{diagonal split header|''m''|''n''}} | ||
Line 677: | Line 682: | ||
===सामान्य टिप्पणी=== | ===सामान्य टिप्पणी=== | ||
*यह तुरंत स्पष्ट नहीं | *यह तुरंत स्पष्ट नहीं किया जा सकता है कि का मूल्यांकन <math>A(m, n)</math> हमेशा समाप्त हो चुका है। हालाँकि, पुनरावर्तन बाध्य है क्योंकि प्रत्येक पुनरावर्ती अनुप्रयोग में या तो <math>m</math> घटता है, या फिर <math>m</math> वही रहता है और <math>n</math> घटता है। हर बार यदि <math>n</math> शून्य हो जाता है, तो <math>m</math> घटता है, इसलिए <math>m</math> अंततः शून्य हो जाता है। (अधिक तकनीकी रूप से व्यक्त, प्रत्येक मामले में जोड़ी <math>(m,n)</math> जोड़े पर शब्दकोष क्रम में घटता है, जो एक अच्छी तरह से क्रमित है, ठीक एकल ऋणोतर पूर्णांकों के क्रम की तरह; इसका मतलब यह है कि कोई व्यक्ति लगातार कई बार क्रम में नीचे नहीं जा सकता है।) हालांकि, <math>m</math> कब घटता है और कितना इस पर कोई ऊपरी सीमा निर्धारित नहीं है कि <math>n</math> कितना बढ़ सकता है - और यह अक्सर बहुत बढ़ जाता है । | ||
*1, 2, या 3 जैसे m के छोटे मानों के लिए, एकरमैन फलन n के संबंध में अपेक्षाकृत धीमी गति से बढ़ता है (अधिकतम [[घातीय वृद्धि]] पर)। | *1, 2, या 3 जैसे m के छोटे मानों के लिए, एकरमैन फलन n के संबंध में अपेक्षाकृत धीमी गति से बढ़ता है (अधिकतम [[घातीय वृद्धि]] पर)। हालाँकि <math>m\geq 4</math> के लिये , यह बहुत अधिक तेज़ी से बढ़ता है; यहाँ तक की <math>A(4,2)</math> लगभग 2{{e|19728}}, और <math>A(4, 3)</math> का दशमलव विस्तार किसी भी विशिष्ट माप से बहुत बड़ा है। | ||
*एक दिलचस्प पहलू यह है कि इसके द्वारा उपयोग किया जाने वाला एकमात्र अंकगणितीय संक्रिया 1 का जोड़ है। इसकी तेजी से बढ़ती शक्ति पूरी तरह से नेस्टेड पुनरावर्तन पर आधारित है। इसका तात्पर्य यह भी है कि इसके | *एक दिलचस्प पहलू यह है कि इसके द्वारा उपयोग किया जाने वाला एकमात्र अंकगणितीय संक्रिया 1 का जोड़ है। इसकी तेजी से बढ़ती शक्ति पूरी तरह से नेस्टेड पुनरावर्तन पर आधारित है। इसका तात्पर्य यह भी है कि इसके गणना करने का समय कम से कम इसके गुणन के अनुपात में है, और यह भी बहुत बड़ा है। वास्तविकता में, ज्यादातर मामलों में गणना करने का समय निर्गम से कहीं बड़ा होता है; जैसा की ऊपर प्रदर्शित किया गया है। | ||
*एक एकल-प्राचर संस्करण <math>f(n)=A(n,n)</math> जो दोनों | *एक एकल-प्राचर संस्करण <math>f(n)=A(n,n)</math> जो दोनों <math>m</math> तथा <math>n</math> को बढ़ाता है एक ही समय में प्रत्येक मूल पुनरावर्ती फलन को बौना कर देता है, जिसमें बहुत तेजी से बढ़ने वाले फलन शामिल हैं जैसे कि घातीय फलन, बहुउद्देशीय फलन, बहु- और [[superactorial|सुपरफैक्टोरियल]] फलन, और यहां तक कि क्नुथ के उच्च-तीर संकेतन का उपयोग करके परिभाषित फलन (अनुक्रमित उच्च-तीर को छोड़कर) प्रयोग किया जाता है)। यह देखा जा सकता है <math>f(n)</math> मोटे तौर पर तुलनीय है <math>f_{\omega}(n)</math> तेजी से बढ़ते पदानुक्रम में। यह दिखाने के लिए इस चरम वृद्धि का फायदा उठाया जा सकता है <math>f</math> जो स्पष्ट रूप से [[ट्यूरिंग मशीन]] जैसी अनंत मेमोरी वाली मशीन पर गणना योग्य है और इसलिए एक गणना योग्य फलन है, किसी भी मूल पुनरावर्ती फलन की तुलना में तेजी से बढ़ता है और इसलिए मूल पुनरावर्ती नहीं है। | ||
=== मूल पुनरावर्ती === नहीं | ===== मूल पुनरावर्ती नहीं ===== | ||
एकरमैन फलन किसी भी मूल पुनरावर्ती फलन की तुलना में तेज़ी से बढ़ता है और इसलिए स्वयं मूल पुनरावर्ती नहीं है। सबूत का स्केच यह है: एक मूल पुनरावर्ती फलन जो k पुनरावर्ती तक का उपयोग करके परिभाषित है फलन <math>f_{k+1}(n)</math> (k+1)-th फलन तेजी से बढ़ते पदानुक्रम की तुलना में धीमी गति से बढ़ना चाहिए, लेकिन एकरमैन फलन कम से कम <math>f_\omega(n)</math> फलन जितना ही तेज़ी से बढ़ना चाहिए। | |||
विशेष रूप से, एक दिखाता है कि प्रत्येक मूल पुनरावर्ती फलन <math>f(x_1,\ldots,x_n)</math> के लिए एक ऋणोतर पूर्णांक <math>t</math> मौजूद है कि सभी ऋणोतर पूर्णांकों के लिए <math>x_1,\ldots,x_n</math>, | |||
:<math>f(x_1,\ldots,x_n)<A(t,\max_i x_i).</math> | |||
एक बार यह स्थापित हो जाने के बाद, यह अनुसरण करता है कि <math>A</math> स्वयं मूल पुनरावर्ती नहीं है, अन्यथा डालने के बाद से <math>x_1=x_2=t</math> विरोधाभास की ओर ले जाएगा <math>A(t,t)<A(t,t).</math> | |||
सबूत<ref>{{Cite web|url=http://planetmath.org/ackermannfunctionisnotprimitiverecursive|title=एकरमैन फ़ंक्शन प्रिमिटिव रिकर्सिव {{!}} Planetmath.org नहीं है|last=Woo|first=Chi|date=2009-12-17|website=planetmath.org|language=en|archive-url= https://web.archive.org/web/20130509202634/http://planetmath.org/ackermannfunctionisnotprimitiverecursive|archive-date=2013-05-09|url-status=dead}}</ref> निम्नानुसार आगे बढ़ता है: सभी फलनों के लिए एक वर्ग <math>\mathcal{A}</math> को परिभाषित करें जो एकरमेन फलन की तुलना में धीमी गति से बढ़ता हो | |||
सबूत<ref>{{Cite web|url=http://planetmath.org/ackermannfunctionisnotprimitiverecursive|title=एकरमैन फ़ंक्शन प्रिमिटिव रिकर्सिव {{!}} Planetmath.org नहीं है|last=Woo|first=Chi|date=2009-12-17|website=planetmath.org|language=en|archive-url= https://web.archive.org/web/20130509202634/http://planetmath.org/ackermannfunctionisnotprimitiverecursive|archive-date=2013-05-09|url-status=dead}}</ref> निम्नानुसार आगे बढ़ता है: वर्ग | |||
:<math>\mathcal{A}=\left\{ f\,\bigg|\,\exists t\ \forall x_1\cdots \forall x_n:\ f(x_1,\ldots,x_n)<A(t, \max_i x_i) \right\} </math> | :<math>\mathcal{A}=\left\{ f\,\bigg|\,\exists t\ \forall x_1\cdots \forall x_n:\ f(x_1,\ldots,x_n)<A(t, \max_i x_i) \right\} </math> | ||
और | और यह प्रदर्शित करे कि <math>\mathcal{A}</math> में सभी मूल पुनरावर्ती फलन शामिल हैं।उत्तरार्द्ध इसे दिखाकर हासिल किया जाता है <math>\mathcal{A}</math> इसमें निरंतर फलन, उत्तराधिकारी फलन, प्रक्षेपण फलन शामिल हैं और यह फलन रचना और मूल पुनरावर्तन के संचालन के तहत बंद है। | ||
==प्रतिलोम== | ==प्रतिलोम== | ||
फलन के बाद से {{nowrap|1= ''f''(''n'') = ''A''(''n'', ''n'')}} ऊपर माना गया बहुत तेजी से बढ़ता है, इसका प्रतिलोम फलन, f{{i sup|−1}}, बहुत धीमी गति से बढ़ता है। यह प्रतिलोम एकरमैन फलन ''f''<sup>−1</sup> को आमतौर पर ''α'' से दर्शाया जाता है। वास्तव में, ''α''(''n'') किसी भी व्यावहारिक आगम आकार ''n'' के लिए 5 से कम है, क्योंकि {{nowrap|''A''(4, 4)}} के आदेश पर है <math>2^{2^{2^{2^{16}}}}</math> | फलन के बाद से {{nowrap|1= ''f''(''n'') = ''A''(''n'', ''n'')}} ऊपर माना गया बहुत तेजी से बढ़ता है, इसका प्रतिलोम फलन, f{{i sup|−1}}, बहुत धीमी गति से बढ़ता है। यह प्रतिलोम एकरमैन फलन ''f''<sup>−1</sup> को आमतौर पर ''α'' से दर्शाया जाता है। वास्तव में, ''α''(''n'') किसी भी व्यावहारिक आगम आकार ''n'' के लिए 5 से कम है, क्योंकि {{nowrap|''A''(4, 4)}} के आदेश पर है <math>2^{2^{2^{2^{16}}}}</math> | ||
यह प्रतिलोम कुछ | यह प्रतिलोम कुछ कलन विधि के समय [[कम्प्यूटेशनल जटिलता सिद्धांत|संगणना जटिलता सिद्धांत]] में दिखाई देता है, जैसे कि न्यूनतम स्पैन्मिंग ट्री के लिए चैजेलल कलन विधि। कभी-कभी इन सेटिंग्स में एकरमैन के मूल फलन या अन्य प्रकार की वस्तुएं इन सेटिंग्स में प्रयोग की जाती है, ये सभी समान रूप से उच्च दर पर बढ़ती हैं। विशेष रूप से, कुछ संशोधित फलन, -3 और इसी तरह की शर्तों को हटाकर अभिव्यक्ति को सरल बनाते हैं। | ||
प्रतिलोम एकरमैन फलन के दो-पैरामीटर रूपांतर को निम्नानुसार परिभाषित किया जा सकता है, जहां <math>\lfloor x \rfloor</math> फ्लोर फलन है: | प्रतिलोम एकरमैन फलन के दो-पैरामीटर रूपांतर को निम्नानुसार परिभाषित किया जा सकता है, जहां <math>\lfloor x \rfloor</math> फ्लोर फलन है: | ||
:<math>\alpha(m,n) = \min\{i \geq 1 : A(i,\lfloor m/n \rfloor) \geq \log_2 n\}.</math> | :<math>\alpha(m,n) = \min\{i \geq 1 : A(i,\lfloor m/n \rfloor) \geq \log_2 n\}.</math> | ||
यह फलन ऊपर उल्लिखित | यह फलन ऊपर उल्लिखित कलन विधि के अधिक सटीक विश्लेषण में उत्पन्न होता है, और अधिक परिष्कृत समय सीमा प्रदान करता है। असम्बद्ध-समूह डेटा संरचना में, एम संचालन की संख्या का प्रतिनिधित्व करता है जबकि एन तत्वों की संख्या का प्रतिनिधित्व करता है; मिनिमम स्पैनिंग ट्री एल्गोरिथम में, m किनारों की संख्या का प्रतिनिधित्व करता है जबकि n वर्टिकल की संख्या का प्रतिनिधित्व करता है। की कई थोड़ी अलग परिभाषाएँ {{nowrap|''α''(''m'', ''n'')}} मौजूद; उदाहरण के लिए, {{nowrap|log<sub>2</sub> ''n''}} कभी-कभी n द्वारा प्रतिस्थापित किया जाता है, और कभी-कभी फर्श फलन को [[छत समारोह|फ्लोर फलन]] द्वारा प्रतिस्थापित किया जाता है। | ||
अन्य अध्ययन एक के प्रतिलोम फलन को परिभाषित कर सकते हैं जहां m एक स्थिरांक पर समूह है, जैसे कि प्रतिलोम किसी विशेष पंक्ति पर लागू होता है। {{sfn|Pettie|2002}} | अन्य अध्ययन एक के प्रतिलोम फलन को परिभाषित कर सकते हैं जहां m एक स्थिरांक पर समूह है, जैसे कि प्रतिलोम किसी विशेष पंक्ति पर लागू होता है। {{sfn|Pettie|2002}} | ||
Line 1,045: | Line 1,050: | ||
*फलन रचना | *फलन रचना | ||
*जोड़नेवाला | *जोड़नेवाला | ||
* | * स्टैक (सार डेटा प्रकार) | ||
*अच्छी तरह से आदेश | *अच्छी तरह से आदेश | ||
*लेक्सिकोग्राफिक ऑर्डर | *लेक्सिकोग्राफिक ऑर्डर | ||
Line 1,072: | Line 1,077: | ||
{{Large numbers}} | {{Large numbers}} | ||
{{Authority control}} | {{Authority control}} | ||
[[Category:Articles with hatnote templates targeting a nonexistent page]] | |||
[[Category:Articles with invalid date parameter in template]] | |||
[[Category:Articles with short description]] | |||
[[Category:CS1]] | |||
[[Category:CS1 English-language sources (en)]] | |||
[[Category:CS1 français-language sources (fr)]] | |||
[[Category:CS1 maint]] | |||
[[Category:CS1 Ελληνικά-language sources (el)]] | |||
[[Category:Citation Style 1 templates|W]] | |||
[[Category:Collapse templates]] | |||
[[Category:Machine Translated Page]] | |||
[[Category:Navigational boxes| ]] | |||
[[Category:Navigational boxes without horizontal lists]] | |||
[[Category:Pages with script errors]] | |||
[[Category:Short description with empty Wikidata description]] | |||
[[Category:Sidebars with styles needing conversion]] | |||
[[Category:Template documentation pages|Documentation/doc]] | |||
[[Category:Templates Vigyan Ready]] | |||
[[Category:Templates based on the Citation/CS1 Lua module]] | |||
[[Category:Templates generating COinS|Cite web]] | |||
[[Category:Templates generating microformats]] | |||
[[Category:Templates that are not mobile friendly]] | |||
[[Category:Templates used by AutoWikiBrowser|Cite web]] | |||
[[Category:Templates using TemplateData]] | |||
[[Category:Use shortened footnotes from November 2022]] | |||
[[Category:Wikipedia fully protected templates|Cite web]] | |||
[[Category:Wikipedia metatemplates]] |
Latest revision as of 10:02, 29 December 2022
संगणनीयता सिद्धांत में, विल्हेम एकरमैन के नाम पर एकरमैन फलन, जो सबसे सरल फलन में से एक है[1] और सबसे पहले खोजे गए पूर्ण संगणनीय फलन का उदाहरण है जो कि मूल पुनरावर्ती फलन नहीं हैं। सभी मूल पुनरावर्ती फलन पूर्ण और संगणनीय हैं, लेकिन एकरमैन फलन यह दर्शाता है कि सभी पूर्ण संगणनीय फलन मूल फलन की पुनरावर्ती नहीं हैं। एकरमैन के प्रकाशन के बाद[2] उनके फलन के (जिसमें तीन ऋणोतर पूर्णांक प्राचर थे), कई लेखकों ने इसे विभिन्न उद्देश्यों के अनुरूप संशोधित किया, ताकि एकरमैन फलन मूल फलन के कई रूपों में से किसी को भी संदर्भित कर सके। एक सामान्य संस्करण, दो-प्राचर एकरमैन-पीटर फलन को ऋणोतर पूर्णांक m और n के लिए निम्नानुसार परिभाषित किया गया है:
छोटे आगम के लिए भी इसका मान तेजी से बढ़ता है। उदाहरण के लिए, A(4, 2) 19,729 दशमलव अंकों का पूर्णांक है[3] ( 265536−3 के बराबर, अथवा 22222−3).
इतिहास
1920 के दशक के अंत में, गणितज्ञ गेब्रियल सूडान और विल्हेम एकरमैन, डेविड हिल्बर्ट के छात्र, संगणना की नींव का अध्ययन कर रहे थे। सूडान और एकरमैन दोनों को पूर्ण संगणनीय फलन की खोज के लिए श्रेय दिया जाता है[4] (जिसे कुछ संदर्भों में केवल "पुनरावर्ती" कहा जाता है) जो मूल पुनरावर्ती फलन नहीं हैं। सूडान ने कम प्रसिद्ध सूडान फलन प्रकाशित किया, फिर कुछ ही समय बाद और स्वतंत्र रूप से, 1928 में, एकरमैन ने अपना फलन (ग्रीक अक्षर फ़ाई) प्रकाशित किया। एकरमैन का तीन-प्राचर फलन, , को इस तरह से परिभाषित किया गया है कि यह जैसे , के लिए और यह योग, गुणन और घातांक के बुनियादी परिचालनों का पुनरावृत्त करता है।
और P > 2 के लिए यह इस तरह के बुनियादी परिचालनों को बढ़ाता है जिसकी तुलना अतिसंचालन से की जा सकती है:
( इसकी ऐतिहासिक भूमिका के अलावा यह कुल-गणना योग्य-लेकिन-मूल-पुनरावर्ती फलन के रूप में नहीं, एकरमैन के मूल फलन को घातांक से परे बुनियादी अंकगणितीय संचालन का विस्तार करने के लिए देखा जाता है, हालांकि एकरमैन फलन के रूपांतरों के समान नहीं है जो विशेष रूप से डिज़ाइन किए गए हैं। जैसे कि - रूबेन गुडस्टीन का अतिसंचालन अनुक्रम।)
डेविड हिल्बर्ट ने परिकल्पना की कि एकरमैन फलन अनंत पर,[5] मूल पुनरावर्ती नहीं था, लेकिन यह एकरमैन, हिल्बर्ट के निजी सचिव और पूर्व छात्र थे, जिन्होंने वास्तव में अपने कागज में वास्तविक संख्या के निर्माण पर परिकल्पना को सिद्ध किया था।[2][6]
पीटर रोजसा[7] और राफेल रॉबिन्सन[8] ने बाद में एकरमैन फलन का एक दो-चर संस्करण को विकसित किया जो बाद में लगभग सभी लेखकों द्वारा पसंद किया गया।
सामान्यीकृत अतिसंचालन, उदाहरण - , एकरमैन फलन का भी एक संस्करण है।[9]
1963 में आर.सी. बक अतिसंचालन सीक्वेंस पर एक सहज ज्ञान युक्त दो-चर [n 1]वेरिएंट पर आधारित है:[10][11]
अधिकांश अन्य संस्करणों की तुलना में बक के फलन में कोई अनावश्यक ऑफ़सेट नहीं है:
एकरमैन फलन के कई अन्य संस्करणों का अन्वेषण भी किया गया है।[12]
परिभाषा
परिभाषा: एम-सरणी फलन के रूप में
एकरमैन का मूल तीन-प्राचर फलन ऋणोतर पूर्णांकों तथा के लिए निम्नानुसार पुनरावर्तन परिभाषित किया गया है :
विभिन्न दो-प्राचर संस्करणों में से, पेटर और रॉबिन्सन द्वारा विकसित एक (जिसे अधिकांश लेखकों द्वारा एकरमैन फलन कहा जाता है) को ऋणोतर पूर्णांकों तथा के लिए निम्नलिखित अनुसार परिभाषित किया गया है :
एकरमेन फलन को अतिसंचालन अनुक्रम के संबंध में भी व्यक्त किया गया है:[13][14]
- या, नुथ के उच्च-तीर संकेतन में लिखा गया है (पूर्णांक सूचकांक में बढ़ाया गया ):
- या, समतुल्य रूप से, बक के फलन F के संदर्भ में:[10]
परिभाषा: पुनरावृत्त 1-सरणी फलन के रूप में परिभाषित करना
के n-वें पुनरावृति के रूप में :
पुनरावृत्त फलन एक निश्चित संख्या में स्वयं के साथ एक फलन बनाने की प्रक्रिया है। फलन रचना एक साहचर्य संक्रिया है, इसलिए .
एकरमैन फलन को एकल फलन के अनुक्रम के रूप में समझा जा सकता है ,यदि हम यह स्थापित कर सके कि .
तब फलन एक एकल [n 2] फलन का अनुक्रम ,होगा जिसे हम पुनरावृत्त फलन से पारिभाषित कर सकते है :
संगणना
एकरमैन फ़ंक्शन की पुनरावर्ती परिभाषा को स्वाभाविक रूप से एक शब्द पुनर्लेखन प्रणाली (टीआरएस) में स्थानांतरित किया जा सकता है।
टीआरएस, 2-सरणी फलन पर आधारित है
2-सरणी एकरमैन फलन की परिभाषा स्पष्ट कटौती नियम की ओर ले जाती है [15][16]
उदाहरण
गणना करने पर
कमी अनुक्रम है [n 3]
बाएँ सबसे बाहरी (एक कदम) नीतिबद्ध: | बांयी ओर-अंतरतम (एक-चरणीय) नीतिबद्ध: |
गणना करना कोई स्टैक (अमूर्त डेटा प्रकार) का उपयोग कर सकता है, जिसमें प्रारंभ में तत्व होते हैं .
फिर बार-बार दो शीर्ष तत्वों को नियमों के अनुसार बदल दिया जाता है[n 4]
योजनाबद्ध रूप से, से शुरू :
WHILE stackLength <> 1 { POP 2 elements; PUSH 1 or 2 or 3 elements, applying the rules r1, r2, r3 }
स्यूडोकोड प्रकाशित हो चुकी है। ग्रॉसमैन & जेटमन (1988) .
उदाहरण के लिए, आगम पर ,
स्टैक का विन्यास | कमी को दर्शाना [n 5] |
टिप्पणियां
- रोसेटा कोड पर 225 कंप्यूटर भाषाओं में सबसे बांयी ओर-अंतरतम नीति लागू की गई है।
- सभी की गणना के लिए फलन कदम से अधिक नहीं लेता है[17]
- ग्रॉसमैन & जेटमन (1988) बताया कि स्टैक की गणना में अधिकतम लंबाई , है जब कि .
- उनका अपना कलन विधि, स्वाभाविक रूप से पुनरावृत्त, गणना करता है अंदर समय और भीतर स्थान ।
टीआरएस, पुनरावृत्त 1-सरणी फलन पर आधारित है
पुनरावृत्त 1-सरणी एकरमैन फलन की परिभाषा विभिन्न कमी नियमों की ओर ले जाती है
जैसा कि फलन रचना साहचर्य है, नियम r6 के बजाय परिभाषित किया जा सकता है
पिछले खंड की तरह की गणना स्टैक के साथ लागू किया जा सकता है।
प्रारंभ में स्टैक में तीन तत्व होते हैं .
फिर बार-बार तीन शीर्ष तत्वों को नियमों के अनुसार बदल दिया जाता है[n 4]:
योजनाबद्ध रूप से, से शुरू :
WHILE stackLength <> 1 { POP 3 elements; PUSH 1 or 3 or 5 elements, applying the rules r4, r5, r6; }
उदाहरण
आगम पर क्रमिक स्टैक विन्यास हैं
संगत समानताएं हैं
जब नियम r6 के बजाय कमी नियम r7 का उपयोग किया जाता है, तो स्टैक में प्रतिस्थापन का पालन किया जाएगा
क्रमिक स्टैक कॉन्फ़िगरेशन तब होगा
संगत समानताएं हैं
टिप्पणियां
- किसी दिए गए आगम पर अब तक प्रस्तुत टीआरएस ने अभी तक चरणों की एक ही संख्या में एकजुट किया है। वे समान कटौती नियमों का भी उपयोग करते हैं (इस तुलना में नियमों r1, r2, r3 को क्रमशः नियम r4, r5, r6/r7 के समान माना जाता है)। उदाहरण के लिए, एक की कटौती 14 चरणों में अभिसरित होता है: 6 × r1, 3 × r2, 5 × r3। की कमी समान 14 चरणों में अभिसरित होता है: 6 × r4, 3 × r5, 5 × r6/r7। टीआरएस उस क्रम में भिन्न होते हैं जिसमें कमी के नियम लागू होते हैं।
- कब नियमों का पालन करते हुए {r4, r5, r6} गणना की जाती है, स्टैक की अधिकतम लंबाई के नीचे रहती है जब कमी नियम r6 के स्थान पर कमी नियम r7 का उपयोग किया जाता है, तो स्टैक की अधिकतम लंबाई केवल होती है। स्टैक की लंबाई पुनरावर्ती गहराई को दर्शाती है। नियमों के अनुसार कमी के रूप में {r4, r5, r7} में पुनरावर्तन की एक छोटी अधिकतम गहराई शामिल है,[n 6] यह गणना उस संबंध में अधिक कुशल है।
टीआरएस, हाइपरऑपरेटरों पर आधारित
जैसा सुंदब्लाड (1971) - या पोर्टो & माटोस (1980) - स्पष्ट रूप से दिखाया गया है, एकरमेन फलन अतिसंचालन अनुक्रम के संदर्भ में व्यक्त किया जा सकता है:
या, बक के फलन के संदर्भ में, पैरामीटर सूची से निरंतर 2 को हटाने के बाद
बक का फलन ,[10] एकरमैन फलन का एक भिन्न रूप, जिसकी गणना निम्न कमी नियमों के साथ की जा सकती है:
नियम b6 के स्थान पर नियम को परिभाषित किया जा सकता है
एकरमैन फलन की गणना करने के लिए तीन कटौती नियमों को जोड़ना पर्याप्त है
ये नियम बेस केस A (0, n), संरेखण (n + 3) और फज (-3) का ख्याल रखते हैं।
उदाहरण
गणना करना
कमी नियम के उपयोग से :[n 5] | कमी नियम के उपयोग से :[n 5] |
मिलान करने वाली समानताएं हैं
- जब टीआरएस कटौती नियम के साथ लागू की गई है:
- जब टीआरएस कटौती नियम के साथ लागू की गई है:
टिप्पणियां
- की गणना नियमों के मुताबिक {b1 - b5, b6, r8 - r10} गहरा पुनरावर्ती है। नेस्टेड की अधिकतम गहराई एस है . अपराधी वह क्रम है जिसमें पुनरावृत्ति निष्पादित होती है: . सबसे पहला पूरे क्रम के सामने आने के बाद ही गायब हो जाता है।
- नियमों के अनुसार गणना {b1 - b5, b7, r8 - r10} उस संबंध में अधिक कुशल है। पुनरावृत्ति कोड के एक ब्लॉक पर बार-बार लूप को सिम्युलेट करता है।[n 7] घोंसला बनाना तक सीमित है , प्रति पुनरावृत्त फलन के लिए एक पुनरावर्तन स्तर। मेयर & रिची (1967) यह पत्राचार दिखाया।
- ये विचार केवल पुनरावर्तन गहराई से संबंधित हैं। पुनरावृति का कोई भी तरीका समान नियमों को शामिल करते हुए समान संख्या में कटौती चरणों की ओर ले जाता है (जब नियम b6 और b7 को समान माना जाता है)। की कमी उदाहरण के लिए 35 चरणों में परिवर्तित होता है: 12 × b1, 4 × b2, 1 × b3, 4 × b5, 12 × b6/b7, 1 × r9, 1 × r10। फलनप्रणाली केवल उस क्रम को प्रभावित करती है जिसमें कटौती नियम लागू होते हैं।
- निष्पादन समय का वास्तविक लाभ बार-बार उप-परिणामों की पुनर्गणना न करके ही प्राप्त किया जा सकता है। संस्मरण एक ऑप्टिमाइज़ेशन तकनीक है जहाँ फलन कॉल के परिणाम कैश किए जाते हैं और उसी आगम के फिर से आने पर वापस आ जाते हैं। उदाहरण के लिए देखें वार्ड (1993) . ग्रॉसमैन & जेटमन (1988) एक चालाक कलन विधि प्रकाशित किया जो गणना करता है अंदर समय और भीतर स्थान ।
बड़ी संख्या
यह प्रदर्शित करने के लिए कि की गणना कैसे की जाती है कई चरणों में और बड़ी संख्या में परिणाम:[n 5]
मानों की सारणी
एकरमैन फलन की गणना एक अनंत सारणी के रूप में की जा सकती है। सबसे पहले, प्राकृतिक संख्याओं को शीर्ष पंक्ति में रखें। सारणी में संख्या निर्धारित करने के लिए, संख्या को तुरंत बाईं ओर ले जाएं। फिर उस संख्या का उपयोग उस संख्या और एक पंक्ति द्वारा दिए गए स्तंभ में आवश्यक संख्या देखने के लिए करें। यदि इसके बाईं ओर कोई संख्या नहीं है, तो बस पिछली पंक्ति में 1 वाले स्तंभ को देखें। यहाँ सारणी का एक छोटा ऊपरी-बाएँ भाग है:
n m
|
0 | 1 | 2 | 3 | 4 | n |
---|---|---|---|---|---|---|
0 | 1 |
2||3||4|| 5|| | ||||
1 | 2 |
3|| 4|| 5||6|| | ||||
2 | 3 |
5||7|| 9||11 || | ||||
3 | 5 |
13|| 29||61||125|| | ||||
4 | 13 |
65533 |
265536 − 3 |
|
|
|
5 | 65533 |
|||||
6 | ||||||
m |
यहां संख्याएं जो केवल पुनरावर्ती घातांकीय या नुथ के उच्च-तीर संकेतन के साथ व्यक्त की जाती हैं, जो कि बहुत बड़ी होती हैं और दशमलव अंक प्रणाली में लिखने के लिए बहुत अधिक स्थान लेती हैं।
सारणी के इस प्रारंभिक खंड में बड़ी संख्याओं के होने के बावजूद, कुछ और भी बड़ी संख्याओं को परिभाषित किया गया है, जैसे ग्राहम की संख्या, जिसे किसी भी छोटी संख्या में नूथ तीरों के साथ नहीं लिखा जा सकता है। यह संख्या एक ऐसी तकनीक के साथ बनाई गई है जो एकरमेन फलन को पुनरावर्ती रूप से लागू करने के समान है।
यह उपरोक्त सारणी का अन्य स्वरुप है, लेकिन पैटर्न को स्पष्ट रूप से दिखाने के लिए फलन परिभाषा से प्रासंगिक अभिव्यक्ति द्वारा प्रतिस्थापित मानों के साथ:
n m
|
0 | 1 | 2 | 3 | 4 | n |
---|---|---|---|---|---|---|
0 | 0+1 | 1+1 | 2+1 | 3+1 | 4+1 | n + 1 |
1 | A(0, 1) | A(0, A(1, 0)) = A(0, 2) |
A(0, A(1, 1)) = A(0, 3) |
A(0, A(1, 2)) = A(0, 4) |
A(0, A(1, 3)) = A(0, 5) |
A(0, A(1, n−1)) |
2 | A(1, 1) | A(1, A(2, 0)) = A(1, 3) |
A(1, A(2, 1)) = A(1, 5) |
A(1, A(2, 2)) = A(1, 7) |
A(1, A(2, 3)) = A(1, 9) |
A(1, A(2, n−1)) |
3 | A(2, 1) | A(2, A(3, 0)) = A(2, 5) |
A(2, A(3, 1)) = A(2, 13) |
A(2, A(3, 2)) = A(2, 29) |
A(2, A(3, 3)) = A(2, 61) |
A(2, A(3, n−1)) |
4 | A(3, 1) | A(3, A(4, 0)) = A(3, 13) |
A(3, A(4, 1)) = A(3, 65533) |
A(3, A(4, 2)) | A(3, A(4, 3)) | A(3, A(4, n−1)) |
5 | A(4, 1) | A(4, A(5, 0)) | A(4, A(5, 1)) | A(4, A(5, 2)) | A(4, A(5, 3)) | A(4, A(5, n−1)) |
6 | A(5, 1) | A(5, A(6, 0)) | A(5, A(6, 1)) | A(5, A(6, 2)) | A(5, A(6, 3)) | A(5, A(6, n−1)) |
गुण
सामान्य टिप्पणी
- यह तुरंत स्पष्ट नहीं किया जा सकता है कि का मूल्यांकन हमेशा समाप्त हो चुका है। हालाँकि, पुनरावर्तन बाध्य है क्योंकि प्रत्येक पुनरावर्ती अनुप्रयोग में या तो घटता है, या फिर वही रहता है और घटता है। हर बार यदि शून्य हो जाता है, तो घटता है, इसलिए अंततः शून्य हो जाता है। (अधिक तकनीकी रूप से व्यक्त, प्रत्येक मामले में जोड़ी जोड़े पर शब्दकोष क्रम में घटता है, जो एक अच्छी तरह से क्रमित है, ठीक एकल ऋणोतर पूर्णांकों के क्रम की तरह; इसका मतलब यह है कि कोई व्यक्ति लगातार कई बार क्रम में नीचे नहीं जा सकता है।) हालांकि, कब घटता है और कितना इस पर कोई ऊपरी सीमा निर्धारित नहीं है कि कितना बढ़ सकता है - और यह अक्सर बहुत बढ़ जाता है ।
- 1, 2, या 3 जैसे m के छोटे मानों के लिए, एकरमैन फलन n के संबंध में अपेक्षाकृत धीमी गति से बढ़ता है (अधिकतम घातीय वृद्धि पर)। हालाँकि के लिये , यह बहुत अधिक तेज़ी से बढ़ता है; यहाँ तक की लगभग 2×1019728, और का दशमलव विस्तार किसी भी विशिष्ट माप से बहुत बड़ा है।
- एक दिलचस्प पहलू यह है कि इसके द्वारा उपयोग किया जाने वाला एकमात्र अंकगणितीय संक्रिया 1 का जोड़ है। इसकी तेजी से बढ़ती शक्ति पूरी तरह से नेस्टेड पुनरावर्तन पर आधारित है। इसका तात्पर्य यह भी है कि इसके गणना करने का समय कम से कम इसके गुणन के अनुपात में है, और यह भी बहुत बड़ा है। वास्तविकता में, ज्यादातर मामलों में गणना करने का समय निर्गम से कहीं बड़ा होता है; जैसा की ऊपर प्रदर्शित किया गया है।
- एक एकल-प्राचर संस्करण जो दोनों तथा को बढ़ाता है एक ही समय में प्रत्येक मूल पुनरावर्ती फलन को बौना कर देता है, जिसमें बहुत तेजी से बढ़ने वाले फलन शामिल हैं जैसे कि घातीय फलन, बहुउद्देशीय फलन, बहु- और सुपरफैक्टोरियल फलन, और यहां तक कि क्नुथ के उच्च-तीर संकेतन का उपयोग करके परिभाषित फलन (अनुक्रमित उच्च-तीर को छोड़कर) प्रयोग किया जाता है)। यह देखा जा सकता है मोटे तौर पर तुलनीय है तेजी से बढ़ते पदानुक्रम में। यह दिखाने के लिए इस चरम वृद्धि का फायदा उठाया जा सकता है जो स्पष्ट रूप से ट्यूरिंग मशीन जैसी अनंत मेमोरी वाली मशीन पर गणना योग्य है और इसलिए एक गणना योग्य फलन है, किसी भी मूल पुनरावर्ती फलन की तुलना में तेजी से बढ़ता है और इसलिए मूल पुनरावर्ती नहीं है।
मूल पुनरावर्ती नहीं
एकरमैन फलन किसी भी मूल पुनरावर्ती फलन की तुलना में तेज़ी से बढ़ता है और इसलिए स्वयं मूल पुनरावर्ती नहीं है। सबूत का स्केच यह है: एक मूल पुनरावर्ती फलन जो k पुनरावर्ती तक का उपयोग करके परिभाषित है फलन (k+1)-th फलन तेजी से बढ़ते पदानुक्रम की तुलना में धीमी गति से बढ़ना चाहिए, लेकिन एकरमैन फलन कम से कम फलन जितना ही तेज़ी से बढ़ना चाहिए।
विशेष रूप से, एक दिखाता है कि प्रत्येक मूल पुनरावर्ती फलन के लिए एक ऋणोतर पूर्णांक मौजूद है कि सभी ऋणोतर पूर्णांकों के लिए ,
एक बार यह स्थापित हो जाने के बाद, यह अनुसरण करता है कि स्वयं मूल पुनरावर्ती नहीं है, अन्यथा डालने के बाद से विरोधाभास की ओर ले जाएगा
सबूत[18] निम्नानुसार आगे बढ़ता है: सभी फलनों के लिए एक वर्ग को परिभाषित करें जो एकरमेन फलन की तुलना में धीमी गति से बढ़ता हो
और यह प्रदर्शित करे कि में सभी मूल पुनरावर्ती फलन शामिल हैं।उत्तरार्द्ध इसे दिखाकर हासिल किया जाता है इसमें निरंतर फलन, उत्तराधिकारी फलन, प्रक्षेपण फलन शामिल हैं और यह फलन रचना और मूल पुनरावर्तन के संचालन के तहत बंद है।
प्रतिलोम
फलन के बाद से f(n) = A(n, n) ऊपर माना गया बहुत तेजी से बढ़ता है, इसका प्रतिलोम फलन, f−1, बहुत धीमी गति से बढ़ता है। यह प्रतिलोम एकरमैन फलन f−1 को आमतौर पर α से दर्शाया जाता है। वास्तव में, α(n) किसी भी व्यावहारिक आगम आकार n के लिए 5 से कम है, क्योंकि A(4, 4) के आदेश पर है
यह प्रतिलोम कुछ कलन विधि के समय संगणना जटिलता सिद्धांत में दिखाई देता है, जैसे कि न्यूनतम स्पैन्मिंग ट्री के लिए चैजेलल कलन विधि। कभी-कभी इन सेटिंग्स में एकरमैन के मूल फलन या अन्य प्रकार की वस्तुएं इन सेटिंग्स में प्रयोग की जाती है, ये सभी समान रूप से उच्च दर पर बढ़ती हैं। विशेष रूप से, कुछ संशोधित फलन, -3 और इसी तरह की शर्तों को हटाकर अभिव्यक्ति को सरल बनाते हैं।
प्रतिलोम एकरमैन फलन के दो-पैरामीटर रूपांतर को निम्नानुसार परिभाषित किया जा सकता है, जहां फ्लोर फलन है:
यह फलन ऊपर उल्लिखित कलन विधि के अधिक सटीक विश्लेषण में उत्पन्न होता है, और अधिक परिष्कृत समय सीमा प्रदान करता है। असम्बद्ध-समूह डेटा संरचना में, एम संचालन की संख्या का प्रतिनिधित्व करता है जबकि एन तत्वों की संख्या का प्रतिनिधित्व करता है; मिनिमम स्पैनिंग ट्री एल्गोरिथम में, m किनारों की संख्या का प्रतिनिधित्व करता है जबकि n वर्टिकल की संख्या का प्रतिनिधित्व करता है। की कई थोड़ी अलग परिभाषाएँ α(m, n) मौजूद; उदाहरण के लिए, log2 n कभी-कभी n द्वारा प्रतिस्थापित किया जाता है, और कभी-कभी फर्श फलन को फ्लोर फलन द्वारा प्रतिस्थापित किया जाता है।
अन्य अध्ययन एक के प्रतिलोम फलन को परिभाषित कर सकते हैं जहां m एक स्थिरांक पर समूह है, जैसे कि प्रतिलोम किसी विशेष पंक्ति पर लागू होता है। [19] एकरमैन फलन का प्रतिलोम मूल पुनरावर्ती है।[20]
बेंचमार्क के रूप में प्रयोग करें
एकरमैन फलन, अत्यधिक गहरी पुनरावर्ती के संदर्भ में इसकी परिभाषा के कारण, पुनरावर्ती को अनुकूलित करने के लिए संकलक की क्षमता के बेंचमार्क के रूप में उपयोग किया जा सकता है। इस तरह से एकरमैन के फलन का पहला प्रकाशित उपयोग 1970 में ड्रैगोस वैदा द्वारा किया गया था।[21] और, लगभग एक साथ, 1971 में, येंगवे सुंदब्लाड द्वारा।[13] 1975 और 1982 के बीच लिखे गए पत्रों की एक त्रयी में ब्रायन विचमैन (वेटस्टोन (बेंचमार्क) के सह-लेखक) द्वारा सुंदरब्लैड का मौलिक पेपर लिया गया था।[22][23][24]
यह भी देखें
- संगणनीयता सिद्धांत
- डबल पुनरावर्ती
- तेजी से बढ़ती पदानुक्रम
- गुडस्टीन फलन
- मूल पुनरावर्ती फलन
- पुनरावर्ती (कंप्यूटर विज्ञान)
टिप्पणियाँ
- ↑ with parameter order reversed
- ↑ 'curried'
- ↑ In each step the underlined redex is rewritten.
- ↑ 4.0 4.1 here: leftmost-innermost strategy!
- ↑ 5.0 5.1 5.2 5.3 For better readability
S(0) is notated as 1,
S(S(0)) is notated as 2,
S(S(S(0))) is notated as 3,
etc... - ↑ The maximum depth of recursion refers to the number of levels of activation of a procedure which exist during the deepest call of the procedure. Cornelius & Kirby (1975)
- ↑ LOOP n+1 TIMES DO F
संदर्भ
- ↑ Monin & Hinchey 2003, p. 61.
- ↑ 2.0 2.1 Ackermann 1928.
- ↑ "ए (4,2) का दशमलव विस्तार". kosara.net. August 27, 2000. Archived from the original on January 20, 2010.
- ↑ Calude, Marcus & Tevy 1979.
- ↑ Hilbert 1926, p. 185.
- ↑ van Heijenoort 1977.
- ↑ Péter 1935.
- ↑ Robinson 1948.
- ↑ Ritchie 1965, p. 1028.
- ↑ 10.0 10.1 10.2 Buck 1963.
- ↑ Meeussen & Zantema 1992, p. 6.
- ↑ Munafo 1999a.
- ↑ 13.0 13.1 Sundblad 1971.
- ↑ Porto & Matos 1980.
- ↑ Grossman & Zeitman 1988.
- ↑ Paulson 2021.
- ↑ Cohen 1987, p. 56, Proposition 3.16 (see in proof).
- ↑ Woo, Chi (2009-12-17). "एकरमैन फ़ंक्शन प्रिमिटिव रिकर्सिव | Planetmath.org नहीं है". planetmath.org (in English). Archived from the original on 2013-05-09.
- ↑ Pettie 2002.
- ↑ Matos 2014.
- ↑ Vaida 1970.
- ↑ Wichmann 1976.
- ↑ Wichmann 1977.
- ↑ Wichmann 1982.
ग्रन्थसूची
- Ackermann, Wilhelm (1928). "Zum Hilbertschen Aufbau der reellen Zahlen". Mathematische Annalen. 99: 118–133. doi:10.1007/BF01459088. S2CID 123431274.
- Buck, R.C. (1963). "Mathematical Induction and Recursive Definitions". American Mathematical Monthly. 70 (2): 128–135. doi:10.2307/2312881. JSTOR 2312881.
- Calude, Cristian; Marcus, Solomon; Tevy, Ionel (November 1979). "The first example of a recursive function which is not primitive recursive". Historia Math. 6 (4): 380–84. doi:10.1016/0315-0860(79)90024-7.
- Cohen, Daniel E. (January 1987). Computability and logic. Halsted Press. ISBN 9780745800349.
- Cornelius, B.J.; Kirby, G.H. (1975). "Depth of recursion and the ackermann function". BIT Numerical Mathematics. 15 (2): 144–150. doi:10.1007/BF01932687. S2CID 120532578.
- Grossman, Jerrold W.; Zeitman, R.Suzanne (May 1988). "An inherently iterative computation of ackermann's function". Theoretical Computer Science. 57 (2–3): 327–330. doi:10.1016/0304-3975(88)90046-1.
- van Heijenoort, Jean (1977) [reprinted with corrections, first published in 1967]. From Frege to Gödel: A Source Book in Mathematical Logic, 1879–1931. Harvard University Press.
- Hilbert, David (1926). "Über das Unendliche". Mathematische Annalen. 95: 161–190. doi:10.1007/BF01206605. S2CID 121888793.
- Matos, Armando B (May 7, 2014). "The inverse of the Ackermann function is primitive recursive" (PDF). Archived (PDF) from the original on 2022-10-09.
- Meeussen, V.C.S.; Zantema, H. (1992). Derivation lengths in term rewriting from interpretations in the naturals (PDF) (Report). Universiteit Utrecht. UU-CS, Department of Computer Science. ISSN 0924-3275. Archived (PDF) from the original on 2022-10-09.
- Meyer, Albert R.; Ritchie, Dennis MacAlistair (1967). "The complexity of loop programs". Proceedings of the 1967 22nd national conference. ACM '67: Proceedings of the 1967 22nd national conference. pp. 465–469. doi:10.1145/800196.806014.
- Monin, Jean-Francois; Hinchey, M. G. (2003). Understanding Formal Methods. Springer. p. 61. ISBN 9781852332471.
- Munafo, Robert (1999a). "Versions of Ackermann's Function". Large Numbers at MROB. Retrieved 2021-11-06.
- Munafo, Robert (1999b). "Inventing New Operators and Functions". Large Numbers at MROB. Retrieved 2021-11-06.
- Paulson, Lawrence C. (2021). "Ackermann's Function in Iterative Form: A Proof Assistant Experiment". Retrieved 2021-10-19.
- Péter, Rózsa (1935). "Konstruktion nichtrekursiver Funktionen". Mathematische Annalen. 111: 42–60. doi:10.1007/BF01472200. S2CID 121107217.
- Pettie, S. (2002). "An inverse-Ackermann style lower bound for the online minimum spanning tree verification problem". The 43rd Annual IEEE Symposium on Foundations of Computer Science, 2002. Proceedings: 155–163. doi:10.1109/SFCS.2002.1181892. ISBN 0-7695-1822-2. S2CID 8636108.
- Porto, António; Matos, Armando B. (1 September 1980). "Ackermann and the superpowers" (PDF). ACM SIGACT News. 12 (3): Original version 1980, published in “ACM SIGACT News”, Modified in October 20, 2012, Modified in January 23, 2016 (working paper). doi:10.1145/1008861.1008872. S2CID 29780652. Archived (PDF) from the original on 2022-10-09.
- Ritchie, Robert Wells (November 1965). "Classes of recursive functions based on Ackermann's function". Pacific Journal of Mathematics. 15 (3): 1027–1044. doi:10.2140/pjm.1965.15.1027.
- Robinson, Raphael Mitchel (1948). "Recursion and Double Recursion". Bulletin of the American Mathematical Society. 54 (10): 987–93. doi:10.1090/S0002-9904-1948-09121-2.
- Sundblad, Yngve (March 1971). "The Ackermann function. A theoretical, computational, and formula manipulative study". BIT Numerical Mathematics. 11 (1): 107–119. doi:10.1007/BF01935330. S2CID 123416408.
- Vaida, Dragoș (1970). "Compiler Validation for an Algol-like Language". Bulletin Mathématique de la Société des Sciences Mathématiques de la République Socialiste de Roumanie. Nouvelle série. 14 (62) (4): 487–502. JSTOR 43679758.
- Ward, Martin P. (16 July 1993). Iterative Procedures for Computing Ackerman's Function. CiteSeerX 10.1.1.35.9907.
- Wichmann, Brian A. (March 1976). "Ackermann's function: A study in the efficiency of calling procedures". BIT Numerical Mathematics. 16: 103–110. doi:10.1007/BF01940783. S2CID 16993343.
- Wichmann, Brian A. (July 1977). "How to call procedures, or second thoughts on Ackermann's function". BIT Numerical Mathematics. 16 (3): 103–110. doi:10.1002/spe.4380070303. S2CID 206507320.
- Wichmann, Brian A. (July 1982). "Latest results from the procedure calling test, Ackermann's function" (PDF). Archived (PDF) from the original on 2022-10-09.
इस पेज में लापता आंतरिक लिंक की सूची
- संगणनीयता सिद्धांत
- पूर्ण फलन
- सूडान फलन
- योग
- प्रत्यावर्तन
- पुनरावृत्त फलन
- फलन रचना
- जोड़नेवाला
- स्टैक (सार डेटा प्रकार)
- अच्छी तरह से आदेश
- लेक्सिकोग्राफिक ऑर्डर
- घातांक प्रफलन
- तेजी से बढ़ने वाला पदानुक्रम
- प्रतिलोम काम करना
- न्यूनतम फैलाव वाला पेड़
- असंयुक्त-समूह डेटा संरचना
- फर्श फलन
बाहरी संबंध
- "Ackermann function". Encyclopedia of Mathematics. EMS Press. 2001 [1994].
- Weisstein, Eric W. "Ackermann function". MathWorld.
- This article incorporates public domain material from Black, Paul E. "Ackermann's function". Dictionary of Algorithms and Data Structures.
- An animated Ackermann function calculator
- Ackerman function implemented using a for loop
- Scott Aaronson, Who can name the biggest number? (1999)
- Ackermann functions. Includes a table of some values.
- Hyper-operations: Ackermann's Function and New Arithmetical Operation
- Robert Munafo's Large Numbers describes several variations on the definition of A.
- Gabriel Nivasch, Inverse Ackermann without pain on the inverse Ackermann function.
- Raimund Seidel, Understanding the inverse Ackermann function (PDF presentation).
- The Ackermann function written in different programming languages, (on Rosetta Code)
- Ackermann's Function (Archived 2009-10-24)—Some study and programming by Harry J. Smith.