मैं जावास्क्रिप्ट में इस गणित समीकरण को कैसे कार्यान्वित कर सकता हूं:

एक्स + 2x + 3x +...+ एनएक्स = 100

असल में, मैं x का मान खोजना चाहता हूं, लेकिन मुझे लचीलेपन वाला एक कोड चाहिए जो यह परिभाषित करे कि हमारे पास कितने x हैं ...

मैंने बिना किसी किस्मत के यह कोशिश की है:

var x;
for (var n = 1; n <= 10, n++){
     var cal = 100;
     cal += (n * x)
     console.log(cal)
}
2
Sara Ree 27 जून 2019, 13:07

2 जवाब

सबसे बढ़िया उत्तर

यदि आप निम्नलिखित के रूप में अपने समीकरण को फिर से लिखते हैं, तो आप अपने एल्गोरिथ्म को थोड़ा सरल बना सकते हैं:

x*(1 + 2 + 3 + ... + n) = 100

अब, जैसा कि आप x का मान ज्ञात करना चाहते हैं, आप x को विषय बना सकते हैं:

x = 100 / (1 + 2 + 3 + ... + n)

तो, यहां अज्ञात चीज जो आपको x के मान की गणना करने से रोक रही है, वह है 1 से n (यानी: (1 + 2 + 3 + ... + n)) तक की सभी संख्याओं का योग। हम इस मान की गणना करने के लिए for लूप का उपयोग कर सकते हैं, और फिर इसका उपयोग x के मान का मूल्यांकन करने के लिए कर सकते हैं:

var sum = 0;
var n = 4;
for(var i = 1; i <= n; i++) {
  sum += i;
}
var x = 100 / sum;
console.log(x);

हालाँकि, आप इसे और अधिक कुशलता से कर सकते हैं। आप इस तथ्य का लाभ उठा सकते हैं कि एक संख्या n का 1 से n तक का योग है:

sum(n) = n*(n+1)/2

इस प्रकार, आप x का गुणनखंड कर सकते हैं और इसे अपने समीकरण में उपयोग कर सकते हैं:

x*sum(n) = x*(n*(n+1)/2)

तो, आपका समीकरण प्रभावी रूप से है:

x*(n*(n+1)/2) = 100

और x को विषय बनाकर (दोनों पक्षों को (n*(n+1)/2) से विभाजित करके) आपको देगा:

x = 100 / (n(n+1)/2)

इस प्रकार, हम x के मान की गणना करने के लिए उपरोक्त सूत्र का उपयोग कर सकते हैं:

const n = 4;
const x = 100 / (n*(n+1)/2);

console.log(x);
3
Nick Parsons 28 जुलाई 2019, 09:38

मुझे लगता है कि यह x = 100 / (n * (n + 1) / 2) होगा, देखें अंकगणितीय प्रगति

n = 4;
x = 100 / (n * (n + 1) / 2);
console.log(x);
1
shrys 27 जून 2019, 13:15