Computer >> Máy Tính >  >> Lập trình >> C ++

Tìm số nghiệm của phương trình tuyến tính gồm n biến trong C ++

Trong bài toán này, chúng ta được đưa ra một phương trình tuyến tính của n biến có dạng,

coeff1(var1) + coeff2(var2) + … + coeffn(varn) = value

Tìm số nghiệm của một phương trình tuyến tính gồm n biến.

Hãy lấy một ví dụ để hiểu vấn đề,

Đầu vào

coeff[] = {3, 1}, value = 4

Đầu ra

1

Giải thích

Equation : 3x + y = 4.
Solution, x = 0, y = 4.

Phương pháp tiếp cận giải pháp

Một giải pháp đơn giản cho vấn đề là đánh giá giá trị của phương trình. Sau đó cập nhật các giá trị bằng cách gọi nó một cách đệ quy. Nếu giá trị là 0, thì số giải pháp là 1. Khác lặp lại với giá trị bằng cách trừ các giá trị của hệ số.

Chương trình minh họa hoạt động của giải pháp của chúng tôi,

Ví dụ

#include<iostream>
using namespace std;
int countSolutionsEq(int coeff[], int start, int end, int value) {
   if (value == 0)
      return 1;
   int coefCount = 0;
   for (int i = start; i <= end; i++)
      if (coeff[i] <= value)
         coefCount += countSolutionsEq(coeff, i, end, value -
         coeff[i]);
   return coefCount;
}
int main() {
   int coeff[] = {3, 5, 1, 2};
   int value = 6;
   int n = sizeof(coeff) / sizeof(coeff[0]);
   cout<<"The number of solutions of the linear equation is "<<countSolutionsEq(coeff, 0, n - 1, value);
   return 0;
}

Đầu ra

The number of solutions of the linear equation is 8