Advertisement
Guest User

Untitled

a guest
Dec 4th, 2016
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.16 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4.  
  5. int x;
  6. int p=2319;
  7. int x=2319;
  8. int a=8005;
  9. int c=1;
  10. int m=65536;
  11. double rpos[100]={};
  12. double rpossq[100]={};
  13. int na;
  14. int nb;
  15. double prob;
  16. int y;
  17. int z;
  18. FILE*finout;
  19.  
  20. int main(void) {
  21. setvbuf(stdout,NULL,_IONBF,0);
  22. setvbuf(stderr,NULL,_IONBF,0);
  23. finout=fopen("data_output.xls", "w");
  24.  
  25. for (na=0; na<1000; na++)
  26. {
  27.     p=0;
  28.     y=0;
  29.     z=0;
  30.     for(nb=0; nb<100; nb++)
  31.     {
  32.         x=(a*x+c)%m;
  33.         prob=((double)x/((double)m-1));
  34.         if (prob<0.11595)
  35.         {
  36.             p=p+1;
  37.         }
  38.         if ((0.11595<prob) && (prob<0.2319))
  39.         {
  40.             p=p-1;
  41.         }
  42.  
  43.         x=(a*x+c)%m;
  44.         prob=((double)x/((double)m-1));
  45.         if (prob<0.11595)
  46.         {
  47.             y=y+1;
  48.         }
  49.         if ((0.11595<prob) && (prob<0.2319))
  50.         {
  51.             y=y-1;
  52.         }
  53.  
  54.         x=(a*x+c)%m;
  55.         prob=((double)x/((double)m-1));
  56.         if (prob<0.11595)
  57.         {
  58.             z=z+1;
  59.         }
  60.         if ((0.11595<prob) && (prob<0.2319))
  61.         {
  62.             z=z-1;
  63.         }
  64.  
  65.         rpos[nb]+=sqrt(pow(p,2)+pow(y,2)+pow(z,2));
  66.         rpossq[nb]+=pow(sqrt(pow(p,2)+pow(y,2)+pow(z,2)),2);
  67.     }
  68.  
  69. }
  70.  
  71. for(nb=0; nb<100; nb++)
  72. {
  73.     rpos[nb]=rpos[nb]/1000;
  74.     rpossq[nb]=rpossq[nb]/1000;
  75.     fprintf(finout, "%d\t%g\t%g\n",nb,rpos[nb],rpossq[nb]);
  76. }
  77. return 0;
  78. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement