fork(1) download
  1. #include <iostream>
  2. #include <cmath>
  3. using namespace std;
  4.  
  5. void create(double *&x,int n){
  6. x=new double[n]();
  7. }
  8. void enter(double *x,int n){
  9. for(int i=0;i<n;++i){
  10. cin>>x[i];
  11. }
  12. }
  13. void print(double *x,int n){
  14. for(int i=0;i<n;++i){
  15. cout<<x[i]<<" ";
  16. }
  17. }
  18. void add(double *x,double *y,double *z,int n){
  19. for(int i=0;i<n;++i){
  20. z[i]=x[i]+y[i];
  21. }
  22. }
  23. void subtract(double *x,double *y,double *z,int n){
  24. for(int i=0;i<n;++i){
  25. z[i]=x[i]-y[i];
  26. }
  27. }
  28. double length(double *x,int n){
  29. double sum=0;
  30. for(int i=0;i<n;++i){
  31. sum+=x[i]*x[i];
  32. }
  33. return(sqrt(sum));
  34. }
  35. void normalize(double *x,double *z,int n){
  36. double sum=0;
  37. for(int i=0;i<n;++i){
  38. sum+=x[i]*x[i];
  39. }
  40. double length=sqrt(sum);
  41. if(length==0)return;
  42. for(int i=0;i<n;++i){
  43. z[i]=x[i]/length;
  44. }
  45. }
  46. double dot(double *x,double *y,int n){
  47. double sum=0;
  48. for(int i=0;i<n;++i){
  49. sum+=(x[i]*y[i]);
  50. }
  51. return(sum);
  52. }
  53. double mean(double *x,int n){
  54. if(n==0)return 0;
  55. double sum=0;
  56. for(int i=0;i<n;++i){
  57. sum+=x[i];
  58. }
  59. return(sum/n);
  60. }
  61. double distance(double *x,double *y,int n){
  62. double sum=0;
  63. for(int i=0;i<n;++i){
  64. sum+=(x[i]-y[i])*(x[i]-y[i]);
  65. }
  66. return(sqrt(sum));
  67. }
  68.  
  69. int main() {
  70. double *x,*y,*z;
  71. int n;
  72. cin>>n;
  73. create(x,n);
  74. enter(x,n);
  75. create(y,n);
  76. enter(y,n);
  77. create(z,n);
  78. cout<<"a = ( ";
  79. print(x,n);
  80. cout<<")"<<endl;
  81. cout<<"b = ( ";
  82. print(y,n);
  83. cout<<")"<<endl;
  84. add(x,y,z,n);
  85. cout<<"a + b = ( ";
  86. print(z,n);
  87. cout<<")"<<endl;
  88. subtract(x,y,z,n);
  89. cout<<"a - b = ( ";
  90. print(z,n);
  91. cout<<")"<<endl;
  92. cout<<"|a| = "<<length(x,n)<<endl;
  93. normalize(x,z,n);
  94. cout<<"normalized a = ( ";
  95. print(z,n);
  96. cout<<")"<<endl;
  97. cout<<"a * b = "<<dot(x,y,n)<<endl;
  98. cout<<"mean of a = "<<mean(x,n)<<endl;
  99. cout<<"distance (a , b) = "<<distance(x,y,n)<<endl;
  100. return 0;
  101. }
Success #stdin #stdout 0.01s 5308KB
stdin
10
0 2 4 6 8 10 12 14 16 18
3 6 9 12 15 18 21 24 27 30
stdout
a = ( 0 2 4 6 8 10 12 14 16 18 )
b = ( 3 6 9 12 15 18 21 24 27 30 )
a + b = ( 3 8 13 18 23 28 33 38 43 48 )
a - b = ( -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 )
|a| = 33.7639
normalized a = ( 0 0.0592349 0.11847 0.177705 0.23694 0.296174 0.355409 0.414644 0.473879 0.533114 )
a * b = 1980
mean of a = 9
distance (a , b) = 25.3969