Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

การหาค่าลำดับสำหรับตัวเลขใน JavaScript

ปัญหา

พิจารณาลำดับผลรวมต่อไปนี้:

$$seq(n,\:p)=\displaystyle\sum\limits_{k=0} \square(-1)^{k}\times\:p\:\times 4^{n-k}\:\times(\frac{2n-k}{k})$$

เราต้องเขียนฟังก์ชัน JavaScript ที่รับตัวเลข n และ p คืนค่าของ seq(n, p)

ตัวอย่าง

โค้ดตัวอย่างด้านล่าง:

const n = 12;
const p = 70;
const findSeqSum = (n, p) => {
  let sum = 0;
  for (let k = 0; k <= n; k++) {
    const power = k % 2 === 0 ? 1 : -1;
    const fourPower = Math.pow(4, (n - k));
    const multiplier = ((2 * n) - k) / (k || 1);
    const term = (power * p * fourPower * multiplier);
    sum += term;
  }
  return sum;
};
console.log(findSeqSum(n, p));

ผลลัพธ์

22131141616.42424

คำอธิบายเพิ่มเติม

สูตรมีการหารด้วย k ซึ่งที่ k=0 จะหารด้วยศูนย์ โค้ดใช้ (k || 1) เพื่อหลีกเลี่ยง แต่นี่เปลี่ยนคณิตศาสตร์ของพจน์แรก ควรจัดการ k=0 แยกต่างหาก หรือใช้ convention ว่า 0/0 = 1 ในบริบทนี้