Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- int n, k;
- double x0;
- std::vector <double> V, V2, V3, X, Y;
- std::vector <double> W (10002,0);
- double dziel(int it)
- {
- double val = 1;
- while(it < n)
- val *= x0-V[it++];
- return val;
- }
- void pt(double x1)
- {
- V2.push_back(1);
- for(unsigned int i = 1; i <= V3.size(); i++)
- {
- //std::cout << V3[i] << " v3, v3[i-1] " << V3[i-1] << " -x1 "<< -x1 << " all " << V3[i-1] * -x1 << " i " << i << " -ty\n";
- V2.push_back(V3[i] + V3[i-1] * -x1);
- }
- }
- double horner(int m, double x)
- {
- if (m==n)
- return W[m];
- return horner(m+1, x)*x+W[m];
- }
- void merger(double y, double dzielna)
- {
- for(int i = 0; i < n; i++)
- std::cout << V3[i] << " ";
- std::cout << std::endl;
- for(int i = 0; i < n; i++)
- {
- W[i]+=(V3[i] * y / dzielna);
- std::cout << W[i] << " W ";
- }
- std::cout << std::endl;
- }
- int main()
- {
- // --CONSTANS--
- V.clear(); V2.clear(); V3.clear(); X.clear(); Y.clear();
- //std::ios_base::sync_with_stdio(0);
- //std::cout.tie(0); std::cin.tie(0);
- std::cin >> n;
- double a;
- for(int i = 0; i < n ; i++)
- {
- std::cin >> a; X.push_back(a);
- std::cin >> a; Y.push_back(a);
- }
- //
- V = X;
- for(int i = 0; i < n; i++)
- {
- std::cout << " lol " << i << " ity \n";
- V3.clear(); V3.push_back(1); V3.push_back(-V[1]);
- for(unsigned int j = 2; j < V.size(); j++)
- {
- std::cout << std::endl << j << "-ty for " << V[j] << " - V[i] \n";
- V2.clear();
- pt(V[j]);
- V3 = V2;
- }
- //dzielna = dziel(V[0]); // zaczynamy od x1;
- x0 = V[0];
- std::cout << std::endl << dziel(1) << "\n"; // -1,2, 1 -2 // -2, -5, 1 , 9
- merger(Y[i], dziel(1));
- V.push_back(V[0]);
- V.erase(V.begin());
- }
- for(unsigned int i = 0; i < n; i++)
- {
- std::cout << " w " << W[i] << " ";
- }//
- std::cin >> k;
- for(int i = 0; i < k ; i++)
- {
- std::cin >> a;
- std::cout << std::setprecision(3) << std::fixed << horner(0, a) << " ";
- }
- // --END OF CONSTANS--
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement