एकरमैन फंक्शन
एकरमैन फ़ंक्शन एक पुनरावर्ती फ़ंक्शन का एक उत्कृष्ट उदाहरण है, विशेष रूप से उल्लेखनीय है क्योंकि यह एक आदिम पुनरावर्ती फ़ंक्शन नहीं है। यह मूल्य में बहुत तेज़ी से बढ़ता है, जैसा कि इसके कॉल ट्री के आकार में होता है।
समस्या
हमें एक जावास्क्रिप्ट फ़ंक्शन लिखने की आवश्यकता है जो दो संख्याओं को लेता है, m और n पहले और दूसरे तर्क के रूप में। हमारे फ़ंक्शन को एकरमैन नंबर ए (एम, एन) द्वारा परिभाषित वापस करना चाहिए
A(m,n) = n+1 if m=0 A(m,n) = A(m-1,1) if m>0 , n=0 A(m,n) = A(m-1,A(m,n-1)) if m,n > 0
उदाहरण
const m = 12; const n = 11; const ackermann = (m, n) => { if (m === 0) { return n+1 } if (n === 0) { return ackermann((m - 1), 1); } if (m !== 0 && n !== 0) { return ackermann((m-1), ackermann(m, (n-1))) } } console.log(ackermann(m, n));