Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> JavaScript

JavaScript में इनपुट के लिए एकरमैन संख्या की गणना

एकरमैन फ़ंक्शन

एकरमैन फ़ंक्शन एक क्लासिक रिकर्सिव फ़ंक्शन का उदाहरण है, विशेष रूप से इसलिए उल्लेखनीय है क्योंकि यह एक प्रिमिटिव रिकर्सिव फ़ंक्शन नहीं है। इसका मान बहुत तेजी से बढ़ता है, जैसा कि इसके कॉल ट्री का आकार भी।

समस्या

हमें एक JavaScript फ़ंक्शन लिखना है जो दो संख्याओं, m और n, को पहला और दूसरा तर्क के रूप में लेता है। हमारे फ़ंक्शन को एकरमैन संख्या A(m,n) वापस करनी चाहिए जिसे इस प्रकार परिभाषित किया गया है:

A(m,n) = n+1 यदि m=0
A(m,n) = A(m-1,1) यदि m>0, n=0
A(m,n) = A(m-1,A(m,n-1)) यदि 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));
  1. जावास्क्रिप्ट में for...of लूप समझाएं जावास्क्रिप्ट में for...of लूप समझाएं

    परिचय for...of लूप (ES2015) इटरेबल ऑब्जेक्ट्स (ऐरे, स्ट्रिंग, मैप, सेट, नोडलिस्ट, आर्गुमेंट्स ऑब्जेक्ट, आदि) पर पुनरावृति करने का एक साफ तरीका प्रदान करता है। यह for...in के विपरीत, प्रॉपर्टी नामों के बजाय मानों पर पुनरावृति करता है। उदाहरण निम्न कोड जावास्क्रिप्ट में for...of लूप के लिए है: <

  1. जावास्क्रिप्ट में for...in स्टेटमेंट समझाया गया जावास्क्रिप्ट में for...in स्टेटमेंट समझाया गया

    for...in लूप ऑब्जेक्ट की सभी प्रॉपर्टीज के माध्यम से लूप करता है। जावास्क्रिप्ट में for..in स्टेटमेंट को लागू करने का कोड निम्नलिखित है - उदाहरण <!DOCTYPE html> <html lang=en> <head> <meta charset=UTF-8 /> <meta name=viewport content=width=device-width, initial-scale=1.0

  1. JavaScript में संख्या पैटर्न JavaScript में संख्या पैटर्न

    हमें एक JavaScript और HTML प्रोग्राम लिखना है जो उपयोगकर्ता को एक टेक्स्ट इनपुट और बटन प्रदान करता है। जब उपयोगकर्ता इनपुट में कोई मान दर्ज करता है, मान लीजिए 5, और बटन पर क्लिक करता है, तो हमें स्क्रीन पर निम्नलिखित पैटर्न प्रिंट करना चाहिए। (n = 5 के लिए) 01 01 02 01 02 03 01 02 03 04 01 02 03 04