ปัญหา
พิจารณาลำดับผลรวมต่อไปนี้:
$$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 ในบริบทนี้