Advertisement
Guest User

2. labor 3.feladat PageRank

a guest
Feb 27th, 2017
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.04 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<math.h>
  3.  
  4. void kiir (double tomb[], int db){
  5.   int i;
  6.   for(i=0;i<db;++i)
  7.   {printf("%f\n", tomb[i]);}
  8. }
  9.  
  10. double tavolsag (double PR[], double PRv[], int n){
  11.   int i;
  12.   double osszeg=0;
  13.  
  14.   for (i=0;i<n;++i)
  15.     osszeg += (PRv[i] - PR[i]) * (PRv[i] - PR[i]);
  16.  
  17.   return sqrt (osszeg);
  18. }
  19.  
  20. int main (void){
  21.  
  22. /*double L[4][4] = {
  23.   {0.0, 0.0, 1.0 / 3.0, 0.0},
  24.   {1.0, 1.0 / 2.0, 1.0 / 3.0, 1.0},  
  25.   {0.0, 1.0 / 2.0, 0.0, 0.0},
  26.   {0.0, 0.0, 1.0 / 3.0, 0.0},
  27. };*/
  28.  
  29. double L[4][4] = {
  30.   {0.0, 0.0, 1.0 / 3.0, 0.0},
  31.   {1.0, 1.0 / 2.0, 1.0 / 3.0, 0.0},  
  32.   {0.0, 1.0 / 2.0, 0.0, 0.0},
  33.   {0.0, 0.0, 1.0 / 3.0, 1.0},
  34. };
  35.  
  36. double PR[4] = {0.0, 0.0, 0.0, 0.0};
  37. double PRv[4] = {1.0 / 4.0, 1.0 / 4.0, 1.0 / 4.0, 1.0 / 4.0};
  38.  
  39. int i,j;
  40.  
  41. for(;;)
  42. {
  43.   for(i=0; i<4;++i)
  44.   {
  45.     PR[i] = 0.0;
  46.     for (j=0;j<4;++j)
  47.       PR[i]+= (PRv[j] * L[i][j]);
  48.      
  49.   }
  50.  
  51.  
  52.   if (tavolsag (PR, PRv, 4) < 0.0000000001)
  53.     break;
  54.   for (i=0;i<4;++i)
  55.     PRv[i] = PR[i];
  56. }
  57.  
  58. kiir (PR, 4);
  59.  
  60. return 0;
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement