Advertisement
desdemona

co jest aż tak bardzo nie tak w tym kodzie?

Mar 22nd, 2013
252
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.66 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. unsigned long pow_int(int k)
  6. {
  7.     unsigned long wynik =1;
  8.     for(int i=1; i<k; i++)
  9.     {
  10.         wynik=wynik*2;
  11.     }
  12.     return wynik;
  13. }
  14.  
  15. bool xor(bool a, bool b)
  16. {
  17.     if(a==b)
  18.         return 0;
  19.     else
  20.         return 1;
  21. }
  22.  
  23. int main()
  24. {
  25.     unsigned long *ciag= new unsigned long[1000000];
  26.    
  27.     unsigned long long int M;
  28.     unsigned int a;
  29.     unsigned int c;
  30.  
  31.  
  32.     M = 2147483647; //2^31 - 1
  33.     a=69069;
  34.     c=1;
  35.  
  36.     ciag[0] = 15;
  37.     for(int i=1; i<1000000; i++)
  38.     {
  39.         ciag[i]=(ciag[i-1]*a)% M ;
  40.     }
  41.  
  42.     unsigned long int przedzialy[10];
  43.  
  44.     for(int i=0; i<10; i++)
  45.     {
  46.         przedzialy[i]=0;
  47.     }
  48.  
  49.     for(int i=0; i<1000000; i++)
  50.     {
  51.         int licznik = 1;
  52.         if(ciag[i] < (M/10))
  53.         {
  54.             przedzialy[0]++;
  55.         }
  56.         else if(ciag[i] < (M/10)*2)
  57.         {
  58.             przedzialy[1]++;
  59.         }
  60.         else if(ciag[i] < (M/10)*3)
  61.         {
  62.             przedzialy[2]++;
  63.         }
  64.         else if(ciag[i] < (M/10)*4)
  65.         {
  66.             przedzialy[3]++;
  67.         }
  68.         else if(ciag[i] < (M/10)*5)
  69.         {
  70.             przedzialy[4]++;
  71.         }
  72.         else if(ciag[i] < (M/10)*6)
  73.         {
  74.             przedzialy[5]++;
  75.         }
  76.         else if(ciag[i] < (M/10)*7)
  77.         {
  78.             przedzialy[6]++;
  79.         }
  80.         else if(ciag[i] < (M/10)*8)
  81.         {
  82.             przedzialy[7]++;
  83.         }
  84.         else if(ciag[i] < (M/10)*9)
  85.         {
  86.             przedzialy[8]++;
  87.         }
  88.         else
  89.         {
  90.             przedzialy[9]++;
  91.         }
  92.  
  93.     }
  94.  
  95.     for(int i=0; i<10; i++)
  96.     {
  97.         cout << "przedzial " << (i)*214748365 << " do " << (i+1)*214748365 << " liczb: " << przedzialy[i] << "\n";
  98.     }
  99.  
  100.     int p=3;
  101.     int q=7;
  102.     int n=100000;
  103.    
  104.     bool tab[3100000];
  105.     tab[0]=0;
  106.     tab[1]=1;
  107.     tab[2]=1;
  108.     tab[3]=1;
  109.     tab[4]=0;
  110.     tab[5]=1;
  111.     tab[6]=1;
  112.  
  113.     for(int i=7; i<n*31; i++)
  114.     {
  115.         tab[i] = xor(tab[i-p], tab[i-q]);
  116.     }
  117.  
  118.     int losowe[100000];
  119.     for(int i=0; i<n; i++)
  120.     {
  121.         losowe[i]=0;
  122.     }
  123.  
  124.     for(int i=0; i<n; i++)
  125.     {
  126.         for(int j=0; j<31; j++)
  127.         {
  128.             if(tab[i*j])
  129.             {
  130.                 losowe[i]+=pow_int(j);
  131.             }
  132.         }
  133.     }
  134.  
  135.     for(int i=0; i<10; i++)
  136.     {
  137.         przedzialy[i]=0;
  138.     }
  139.  
  140.     for(int i=0; i<n; i++)
  141.     {
  142.         if(losowe[i] < (M/10))
  143.         {
  144.             przedzialy[0]++;
  145.         }
  146.         else if(losowe[i] < (M/10)*2)
  147.         {
  148.             przedzialy[1]++;
  149.         }
  150.         else if(losowe[i] < (M/10)*3)
  151.         {
  152.             przedzialy[2]++;
  153.         }
  154.         else if(losowe[i] < (M/10)*4)
  155.         {
  156.             przedzialy[3]++;
  157.         }
  158.         else if(losowe[i] < (M/10)*5)
  159.         {
  160.             przedzialy[4]++;
  161.         }
  162.         else if(losowe[i] < (M/10)*6)
  163.         {
  164.             przedzialy[5]++;
  165.         }
  166.         else if(losowe[i] < (M/10)*7)
  167.         {
  168.             przedzialy[6]++;
  169.         }
  170.         else if(losowe[i] < (M/10)*8)
  171.         {
  172.             przedzialy[7]++;
  173.         }
  174.         else if(losowe[i] < (M/10)*9)
  175.         {
  176.             przedzialy[8]++;
  177.         }
  178.         else
  179.         {
  180.             przedzialy[9]++;
  181.         }
  182.  
  183.     }
  184.  
  185.  
  186.     cout << endl;
  187.         for(int i=0; i<10; i++)
  188.     {
  189.         cout << "przedzial " << (i)*214748365 << " do " << (i+1)*214748365 << " liczb: " << przedzialy[i] << "\n";
  190.     }
  191.     return 0;
  192.  
  193. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement