Advertisement
Guest User

Untitled

a guest
May 22nd, 2019
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.20 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. int n, k;
  4. double x0;
  5. std::vector <double> V, V2, V3, X, Y;
  6. std::vector <double> W (10002,0);
  7.  
  8. double dziel(int it)
  9. {
  10. double val = 1;
  11. while(it < n)
  12. val *= x0-V[it++];
  13. return val;
  14. }
  15.  
  16. void pt(double x1)
  17. {
  18. V2.push_back(1);
  19. for(unsigned int i = 1; i <= V3.size(); i++)
  20. {
  21. //std::cout << V3[i] << " v3, v3[i-1] " << V3[i-1] << " -x1 "<< -x1 << " all " << V3[i-1] * -x1 << " i " << i << " -ty\n";
  22. V2.push_back(V3[i] + V3[i-1] * -x1);
  23. }
  24. }
  25.  
  26. double horner(int m, double x)
  27. {
  28. if (m==n)
  29. return W[m];
  30. return horner(m+1, x)*x+W[m];
  31. }
  32.  
  33. void merger(double y, double dzielna)
  34. {
  35. for(int i = 0; i < n; i++)
  36. std::cout << V3[i] << " ";
  37. std::cout << std::endl;
  38. for(int i = 0; i < n; i++)
  39. {
  40. W[i]+=(V3[i] * y / dzielna);
  41. std::cout << W[i] << " W ";
  42. }
  43. std::cout << std::endl;
  44. }
  45.  
  46. int main()
  47. {
  48. // --CONSTANS--
  49. V.clear(); V2.clear(); V3.clear(); X.clear(); Y.clear();
  50. //std::ios_base::sync_with_stdio(0);
  51. //std::cout.tie(0); std::cin.tie(0);
  52.  
  53. std::cin >> n;
  54. double a;
  55. for(int i = 0; i < n ; i++)
  56. {
  57. std::cin >> a; X.push_back(a);
  58. std::cin >> a; Y.push_back(a);
  59. }
  60. //
  61. V = X;
  62. for(int i = 0; i < n; i++)
  63. {
  64. std::cout << " lol " << i << " ity \n";
  65. V3.clear(); V3.push_back(1); V3.push_back(-V[1]);
  66. for(unsigned int j = 2; j < V.size(); j++)
  67. {
  68. std::cout << std::endl << j << "-ty for " << V[j] << " - V[i] \n";
  69. V2.clear();
  70. pt(V[j]);
  71. V3 = V2;
  72. }
  73.  
  74.  
  75. //dzielna = dziel(V[0]); // zaczynamy od x1;
  76.  
  77. x0 = V[0];
  78. std::cout << std::endl << dziel(1) << "\n"; // -1,2, 1 -2 // -2, -5, 1 , 9
  79.  
  80. merger(Y[i], dziel(1));
  81. V.push_back(V[0]);
  82. V.erase(V.begin());
  83.  
  84. }
  85.  
  86. for(unsigned int i = 0; i < n; i++)
  87. {
  88. std::cout << " w " << W[i] << " ";
  89. }//
  90. std::cin >> k;
  91. for(int i = 0; i < k ; i++)
  92. {
  93. std::cin >> a;
  94. std::cout << std::setprecision(3) << std::fixed << horner(0, a) << " ";
  95. }
  96. // --END OF CONSTANS--
  97. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement