Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Tính điện trở tương đương của n thiết bị - JavaScript

Trong vật lý, điện trở tương đương của các điện trở mắc nối tiếp và song song được tính như sau:

  • Nối tiếp: R = R1 + R2 + R3 + ...
  • Song song: 1/R = 1/R1 + 1/R2 + 1/R3 + ... (hoặc R = 1 / (1/R1 + 1/R2 + ...))

Viết hàm nhận vào chuỗi 'series' hoặc 'parallel' và n số đại diện cho điện trở, trả về điện trở tương đương.

Giải pháp

Mã triển khai:

const r1 = 5, r2 = 7, r3 = 9;
const equivalentResistance = (combination = 'parallel', ...resistors) => {
  if (combination === 'parallel') {
    // Sai trong code gốc: reduce không tính đúng công thức song song
    // Cách đúng: 1 / sum(1/Ri)
    return 1 / resistors.reduce((acc, val) => acc + 1/val, 0);
  }
  // Nối tiếp: tổng các điện trở
  return resistors.reduce((acc, val) => acc + val, 0);
};

console.log(equivalentResistance('parallel', r1, r2, r3));

Kết quả

Đầu ra trong console (với công thức đúng):

2.0277777777777777

Lưu ý: Code gốc có lỗi logic khi tính điện trở song song (dùng (1/acc) + (1/val) thay vì cộng nghịch đảo). Đã sửa trong ví dụ trên.