एकरमन फ़ंक्शन कुल, कम्प्यूटेशनल फ़ंक्शन के सबसे सरल उदाहरणों में से एक होने के लिए उल्लेखनीय है जो कि आदिम नहीं है।
हम A(m,n)
दो nonnegative पूर्णांकों में जहां लेने की परिभाषा का उपयोग करेंगे
A(0,n) = n+1
A(m,0) = A(m-1,1)
A(m,n) = A(m-1,A(m,n-1))
आप लागू कर सकते हैं
- एक नामित या अनाम फ़ंक्शन इनपुट के रूप में दो पूर्णांक ले रहा है, एक पूर्णांक लौटा रहा है, या
- एक प्रोग्राम जो STDIN पर दो स्पेस- या न्यूलाइन से अलग किए गए पूर्णांकों को ले रहा है, परिणामस्वरूप STDOUT को प्रिंट कर रहा है।
यदि आप मौजूद हैं, तो आप लाइब्रेरी से एक एकरमन फ़ंक्शन या हाइपरेक्सपॉइंटमेंट फ़ंक्शन का उपयोग नहीं कर सकते हैं, लेकिन आप किसी अन्य लाइब्रेरी से किसी अन्य फ़ंक्शन का उपयोग कर सकते हैं। नियमित घातांक की अनुमति है।
आपका कार्य A(m,n)
एक मिनट से भी कम समय में m n 3 और n less 10 का मान ज्ञात करने में सक्षम होना चाहिए । इसे कम से कम किसी अन्य इनपुट पर सैद्धांतिक रूप से समाप्त होना चाहिए : अनंत स्टैक स्पेस, एक देशी बिगिंट प्रकार, और समय की एक लंबी अवधि के लिए, यह जवाब लौटा देगा। संपादित करें: यदि आपकी भाषा में एक डिफ़ॉल्ट पुनरावृत्ति की गहराई है जो बहुत प्रतिबंधक है, तो आप उसे किसी भी वर्ण लागत पर पुन: कॉन्फ़िगर कर सकते हैं।
कम से कम वर्णों के साथ सबमिशन जीतता है।
आपके उत्तर की जांच करने के लिए यहां कुछ मान दिए गए हैं:
A | n=0 1 2 3 4 5 6 7 8 9 10
-----+-----------------------------------------------------------------
m=0 | 1 2 3 4 5 6 7 8 9 10 11
1 | 2 3 4 5 6 7 8 9 10 11 12
2 | 3 5 7 9 11 13 15 17 19 21 23
3 | 5 13 29 61 125 253 509 1021 2045 4093 8189
4 | 13 65533 big really big...
A(3,8)
और अन्य लोगों की तरह भोली है? क्या मुझे गैर-पुनरावृत्ति समाधान के साथ आना है, या क्या मैं इन मामलों में सिर्फ "अनंत स्टैक स्पेस मान सकता हूं"? मैं काफी हद तक निश्चित हूं, यह एक मिनट के भीतर समाप्त हो जाएगा।