Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdlib.h>
- #include <stdio.h>
- #include <math.h>
- #define SIZE 8
- int ArrayRand[SIZE] = {1, 7, 11, 12, 15, 37, 98, 101};
- int a = 101;
- int c = 1;
- int m = 128; // 2^7
- float wkg_wanacvlebuli(int zi_1)
- {
- __int64 zi = zi_1;
- zi = (a*zi + c) & (~(~0 << 7));
- return zi/(float)m;
- }
- float simulaciuriGayofa(int a, int b, int q)
- {
- int m = pow(2.0, b);
- m -= q;
- float k = a / m;
- float zi = a % m;
- zi += (k * q);
- while (zi >= m)
- zi -= m;
- return zi / (float)m;
- }
- int diskretuli(float num)
- {
- if (num > 0 && num <= 0.22) return 21;
- if (num > 0.22 && num <= 0.39) return 10;
- if (num > 0.39 && num < 1) return 18;
- return -1;
- }
- int main()
- {
- float ArrayRand2[SIZE] = {0};
- for (int i = 0; i < SIZE; i++)
- {
- ArrayRand2[i] = wkg_wanacvlebuli(ArrayRand[i]);
- printf("ArrayRand2[%d] = \t%f\n", i, ArrayRand2[i]);
- }
- printf("\n");
- for (int i = 0; i < 6; i++)
- printf("%d =\t%d\n", (i+1), diskretuli(ArrayRand2[i]));
- printf("\n");
- for (int i = 0; i < SIZE; i++)
- printf("simulac(87,4,1) = %f\n", simulaciuriGayofa(ArrayRand[i], 4, 1));
- system("PAUSE");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment