Advertisement
Guest User

Untitled

a guest
Oct 21st, 2017
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.50 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4.  
  5. int mem(int **a, int n)
  6. {
  7.     int i;
  8.     a=(int**)malloc(n*sizeof(int*));
  9.     for (i=0; i<n; i++)
  10.         a[i]=(int*)malloc(n*sizeof(int));
  11. }
  12.  
  13. int kvadr(int **a, int **c, int n)
  14. {
  15.     int i, j, k;
  16.     for (i=0; i<n; i++)
  17.         for (j=0; i<n; i++)
  18.         {
  19.             c[i][j]=0;
  20.             for (k=0; i<n; i++)
  21.                 c[i][j]+=a[i][k]*a[k][i];
  22.         }
  23. }
  24.  
  25. int tranz1(int **a, int **ctr, int n)
  26. {
  27.     int i, j, **c2;
  28.     mem(c2, n);
  29.     for (i=0; i<n; i++)
  30.         for (j=0; j<n; j++)
  31.             ctr[i][j]=a[i][j];
  32.     kvadr(ctr, c2, n);
  33.     i=0;
  34.     j=0;
  35.     while (ctr[i][j]==c2[i][j])
  36.     {
  37.         i++;
  38.         j++;
  39.     }
  40.     if((i==n)&&(j==n))
  41.     {
  42.         for (i=0; i<n; i++)
  43.             for(j=0; j<n; j++)
  44.             {
  45.                 if (c2[i][j]!=ctr[i][j])
  46.                     ctr[i][j]=1;
  47.             }
  48.         kvadr(ctr, c2, n);
  49.     }
  50. }
  51.  
  52. int tranz2(int **a, int ** ctr, int n)
  53. {
  54.     int i, j;
  55.     for (i=0; i<n; i++)
  56.         for (i=0; i<n; i++)
  57.             ctr[i][j]=a[i][j];
  58.     kvadr(a,a,n);
  59.     for (i=3; i<n; i++)
  60.         kvadr(a,a,n);
  61.     for (i=0; i<n; i++)
  62.         for (j=0; j<n; j++)
  63.         {
  64.             if (a[i][j]!=ctr[i][j])
  65.                 ctr[i][j]=1;
  66.         }
  67. }
  68.  
  69. int gener(int **a, int m, int n)
  70. {
  71.     int i=0, j=0, x=0;
  72.     while ((i<n)&&(j<n)&&(x<m))
  73.     {
  74.         a[i][j]=rand()%1;
  75.         if (a[i][j]==1)
  76.             x++;
  77.         i++;
  78.         j++;
  79.     }
  80.     return 0;
  81. }
  82.  
  83. int timed(int **a, int **b, int m, int n)
  84. {
  85.     int i, x1=0, x2=0, z1=1000, z2=1000;
  86.     int start, finish;
  87.     for (i=1; i<100; i++)
  88.     {
  89.         start=clock();
  90.         gener(a, m, n);
  91.         tranz1(a, b, n);
  92.         finish=clock();
  93.         if (finish>x1)
  94.             x1=finish;
  95.         if (finish<z1)
  96.             z1=finish;
  97.         tranz2(a, b, n);
  98.         finish=clock();
  99.         if (finish>x2)
  100.             x2=finish;
  101.         if (finish<z2)
  102.             z2=finish;
  103.     }
  104.     printf("min %d max %d\n", x1, z1);
  105.     printf("min %d max %d\n", x2, z2);
  106. }
  107.  
  108. int main()
  109. {
  110.     int i, n, m, **a, **b;
  111.     mem(a, 50);
  112.     mem(b, 50);
  113.     printf("vvedite chislo par: ");
  114.     scanf("%d", &m);
  115.     timed(a, b, m, 50);
  116.     mem(a, 100);
  117.     mem(b, 100);
  118.     printf("vvedite chislo par: ");
  119.     scanf("%d", &m);
  120.     timed(a, b, m, 100);
  121.     mem(a, 150);
  122.     mem(b, 150);
  123.     printf("vvedite chislo par: ");
  124.     scanf("%d", &m);
  125.     timed(a, b, m, 150);
  126.     return 0;
  127. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement