Friday 15 March 2013

c - Program a mathematical using recursive function -


मैं गणितीय फ़ंक्शन f (x) = sqrt (1 ^ 1 + sqrt (2 ^ 2) प्रोग्राम करना चाहता हूँ + Sqrt (3 ^ 3) + ... + sqrt (x ^ x))) , जहां x होना चाहिए 1 & lt; = x & lt; = 10 मैंने इस तरह से प्रोग्राम को प्रोग्राम करने की कोशिश की:

  डबल f1Rek (int x) {यदि (x & lt; 1) वापसी sqrt (शक्ति (x, x)); वापसी sqrt (शक्ति (एक्स, एक्स) + एफ 1 रैंक (एक्स -1)); }   

फ़ंक्शन पावर भी स्वयं निर्मित रिकर्सिव फ़ंक्शन है:

  डबल पावर (int x, int n) {if (n == 0) 1.0 वापसी; यदि (एक्स == 0) 0.0 रिटर्न; अगर (एक्सपी & gt; 0) {रिटर्न एन * पावर (एन, एक्सपी -1); } यदि (एक्सपी एंड एलटी; 0) {रिटर्न 1 / (एन * पावर (एन, - (एक्सपी -1))}}   

समस्या है f1Rek (int X) फ़ंक्शन, क्योंकि यह sqrt (x ^ x + sqrt (x-1 ^ x-1 ... से शुरू होता है। मैं इस समस्या को एक बहुत सुंदर तरीके से कैसे हल कर सकता हूँ ?

अपडेट:

जिम बाल्टर के जवाब के साथ, मैंने 2 फ़ंक्शन के साथ फ़ंक्शन बनाया है:

  डबल f2Rek (int i, int x ) {If (i & lt; = x) {वापसी sqrt (शक्ति (i, i) + f2rek (i + 1, x));} और वापसी 0.0;}   

क्या है एक पुनरावर्ती समारोह को केवल एक तर्क के साथ परिभाषित करने की संभावना।

च (x) = sqrt (1 ^ 1 + sqrt (2 ^ 2 + ( sqrt (3 ^ 3) + ... + ( sqrt (x ^ x))) )

समतुल्य,

f (x) = g ( 1, x)

जहां

g (i, n) = sqrt (i ^ i + g (i + 1, n)) अगर मैं & Lt; = n, अन्य 0

आपको एलेगा में सक्षम होना चाहिए Ntly उस से अपने रिकर्सिव समारोह कोड।

एक तर्क के साथ एक समारोह के संबंध में:

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

  डबल एफ (int x) {डबल जी (int i) {रिटर्न (i & lt; = x) ? Sqrt (पाउ (i, i) + g (i + 1)): 0.0; } वापसी जी (1); }   

जीसीसी स्थानीय कार्यों का समर्थन करता है, लेकिन वे मानक सी में नहीं हैं।

No comments:

Post a Comment