हमें n प्रविष्टियों की एक सरणी दी गई है, जिनमें से केवल 2 संख्याएँ हैं, अन्य सभी प्रविष्टियाँ शून्य हैं। कुछ इस तरह -
const arr = [null, null, -1, null, null, null, -3, null, null, null];
हमें एक फ़ंक्शन लिखना है जो इस सरणी में लेता है और अंकगणितीय श्रृंखला को पूरा करता है जिसमें ये दो संख्याएं एक हिस्सा हैं। इस समस्या को और अधिक स्पष्ट रूप से समझने के लिए, हम इन शून्य मानों को रिक्त स्थान के रूप में सोच सकते हैं जहाँ हमें संख्याओं को भरने की आवश्यकता होती है ताकि संपूर्ण सरणी एक अंकगणितीय प्रगति बना सके।
अंकगणितीय प्रगति के बारे में
संख्याओं की एक श्रृंखला / सरणी को अंकगणितीय प्रगति बनाने के लिए कहा जाता है यदि सरणी से कोई भी मनमानी संख्या n (n-1) वें नंबर में एक स्थिर d जोड़कर बनाई जाती है।
उदाहरण -
1, 2, 3, 4, 5, 6, 7, 8
यहां, प्रत्येक अगली संख्या पूर्ववर्ती संख्या में एक स्थिरांक (इस मामले में) जोड़कर प्राप्त की जाती है।
अन्य उदाहरण -
1, 1, 1, 1, 1, 1, 1, 1, 1 10, 8, 6, 4, 2, 0, -2
ऐसी श्रृंखला के पहले तत्व को पारंपरिक रूप से a द्वारा दर्शाया जाता है और प्रत्येक संख्या में निरंतर प्रगति, सामान्य अंतर, d द्वारा दर्शाया जाता है।
इसलिए, यदि हम ऐसी किसी श्रृंखला के nवें तत्व को Tn से निरूपित करते हैं, तो,
Tn = a + (n -1)d
जहाँ, n उस संख्या का 1 आधारित सूचकांक है।
इन बातों को स्पष्ट करने के साथ, आइए उस समस्या के लिए कोड लिखें जिसका हमने अभी वर्णन किया है। हम पहले सरणी के लिए पहला तत्व (ए) और सामान्य अंतर (डी) खोजने का प्रयास करेंगे। एक बार हमारे पास वे हो जाने के बाद, हम श्रृंखला उत्पन्न करने के लिए मूल सरणी पर एक लूप चलाएंगे।
उदाहरण
const arr = [null, null, -1, null, null, null, -3, null, null, null]; const arr2 = [null, null, -1, null, null, null, 12, null, null, null, null, null, null]; const constructSeries = (arr) => { const map = { first: undefined, last: undefined }; arr.forEach((el, ind) => { if(el !== null){ if(map['first']){ map['last'] = [el, ind]; }else{ map['first'] = [el, ind]; } }; }); const { first, last } = map; const commonDifference = (last[0] - first[0])/(last[1] - first[1]); const firstElement = (first[0]) - ((first[1])*commonDifference); return arr.map((item, index) => { return firstElement + (index * commonDifference); }); }; console.log(constructSeries(arr)); console.log(constructSeries(arr2));
आउटपुट
कंसोल में आउटपुट होगा -
[ 0, -0.5, -1, -1.5, -2, -2.5, -3, -3.5, -4, -4.5 ] [ -7.5, -4.25, -1, 2.25, 5.5, 8.75, 12, 15.25, 18.5, 21.75, 25, 28.25, 31.5 ]