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

การคำนวณความต้านทานเทียบเท่าของตัวต้านทาน - JavaScript

ในฟิสิกส์ การคำนวณความต้านทานเทียบเท่า (equivalent resistance) มี 2 รูปแบบการต่อ:

1. ต่ออนุกรม (Series)

R = R1 + R2 + R3 + ...

2. ต่อขนาน (Parallel)

1/R = 1/R1 + 1/R2 + 1/R3 + ...
R = 1 / (1/R1 + 1/R2 + 1/R3 + ...)

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

const r1 = 5, r2 = 7, r3 = 9;

const equivalentResistance = (combination = 'parallel', ...resistors) => {
  if (combination === 'parallel') {
    // ผิดพลาดในโค้ดต้นฉบับ: ต้องใช้ 1/(sum of 1/R) ไม่ใช่ (1/acc) + (1/val)
    // โค้ดที่ถูกต้อง:
    const sumInverse = resistors.reduce((acc, val) => acc + 1/val, 0);
    return 1 / sumInverse;
  }
  // ต่ออนุกรม: บวกค่าทั้งหมด
  return resistors.reduce((acc, val) => acc + val, 0);
};

console.log(equivalentResistance('parallel', r1, r2, r3)); // ~2.027
console.log(equivalentResistance('series', r1, r2, r3));   // 21

แก้ไขโค้ดต้นฉบับ

โค้ดต้นฉบับมีข้อผิดพลาดในการคำนวณแบบขนาน ใช้ (1/acc) + (1/val) ซึ่งไม่ถูกต้อง วิธีที่ถูกต้องคือหาผลรวมของ 1/R ก่อน แล้วค่อยหาค่าผกผัน

ผลลัพธ์ (โค้ดที่แก้ไขแล้ว)

2.0277777777777777  // parallel
21                  // series

ประยุกต์ใช้: การออกแบบวงจรไฟฟ้า การคำนวณระบบอิเล็กทรอนิกส์