vakho

Modelirebis Sak2 [BETA]

Dec 15th, 2013
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.31 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4.  
  5. // Diskretulad ganawilebuli
  6. /* magalitad:
  7.     (0      :   0.22] => 21
  8.     (0.22   :   0.39] => 10
  9.     (0.39   :      1) => 18
  10. */
  11. int diskretuli(float r)
  12. {
  13.     if (r > 0 && r <= 0.22)     return 21;
  14.     if (r > 0.22 && r <= 0.39)  return 10;
  15.     if (r > 0.39 && r < 1)      return 18;
  16.     return 0; // tu araa [0:1] shualedshi ricxvi (anu shecdomaa)
  17. }
  18.  
  19. // Uwyveti
  20. // lambda mocemulia:
  21. float lambda;
  22. float uwyveti(float r)
  23. {
  24.     return (-1)/lambda * log(r);
  25. }
  26.  
  27. // Tanabrad ganawilebuli
  28. // shualedi mocemulia [a : b]
  29. float a, b;
  30. float tanabradGanawilebuli(float r)
  31. {
  32.     return r * (b-a) + a;
  33. }
  34.  
  35. // mocemulia a, c, m
  36. int a, c, m;
  37. float wanacvlebuli_wkg(int zi_1)
  38. {
  39.     __int64 zi = zi_1;
  40.     zi = (a*zi + c) & m;
  41.     return zi / (float)m;
  42. }
  43.  
  44. float multiplikaciuri_wkg(int zi_1)
  45. {
  46.     __int64 zi = zi_1, k;
  47.     k = (a * zi) >> 31; // modulia 2^31
  48.     zi = (a * zi) & m; // m = 2^31 -1
  49.  
  50.     zi += k;
  51.     if (zi >= m)
  52.         zi -= m;
  53.  
  54.     return zi / (float)m;
  55. }
  56.  
  57.  
  58. // tu mocemulia b, q => m = 2^b - q
  59. float generator(int zi_1, int b, int q)
  60. {
  61.     __int64 zi, k;
  62.     zi = zi_1;
  63.  
  64.     m = q << b - q; // 2^b = (1 << b)
  65.    
  66.     k = (a * zi) >> m;
  67.     zi = (a * zi) & m;
  68.  
  69.     zi += k;
  70.     if (zi >= m)
  71.         zi -= m;
  72.  
  73.     return zi / (float)m;
  74. }
  75.  
  76. int main()
  77. {
  78.     system("COLOR F0");
  79.  
  80.  
  81.  
  82.     system("PAUSE");
  83.     return 0;
  84. }
Advertisement
Add Comment
Please, Sign In to add comment