1.
A, n x n. , , .
, , , .
(1) (2), (i,j). l k. (1) (. .1) : l = j i + k, (2) : l = j + i - k. . , , . , k 1 i. l 1 £ l £ n. (1) l > j i + k, (2) - l < j + i - k. , . , , , 1 n. , k 1 i, l (1) (2). 0 n if. :
i =1 ¸ n
j =1 ¸ n
k = 1 ¸ i
l = j i + k ¸ j + i k
1 £ l £ n
l
k
j
i
.
#include <stdio.h>
#include <conio.h>
#define m 6
void main()
{ int i,j,k,l,n;
float a[m][m],b[m][m];
clrscr();
gotoxy(5,5); printf(" ");
gotoxy(5,6); printf(" b(i,j)=max a(k,l), k,l ");
gotoxy(9,7); printf(" ");
gotoxy(35,10); printf("┌ ┐");
gotoxy(35,11); printf("│ * * * * * * * * * * * * * │");
gotoxy(35,12); printf("│ * * * * * * * * * * * * │");
gotoxy(35,13); printf("│ * * * * * * * * * * * │");
gotoxy(35,14); printf("│ * * * * * * * * * │");
gotoxy(35,15); printf("│ * * * * * * * │");
gotoxy(35,16); printf("│ * * * * * │");
gotoxy(35,17); printf("│ * * * │");
gotoxy(35,18); printf("│ * │");
gotoxy(35,19); printf("│ │");
gotoxy(35,20); printf("│ │");
gotoxy(35,21); printf("│ │");
gotoxy(35,22); printf("└ ┘");
|
|
getchar();clrscr();
do{
printf("\n\n <=%d ",m);
scanf("%d",&n);
}while(!(n>0 && n<=m));clrscr();
for (i=1;i<=n;i++)
for (j=1;j<=n;j++){
printf(" a(%d,%d)=",i,j);scanf("%f",&a[i-1][j-1]);
}
clrscr();
printf(" \n");
for (i=1;i<=n;i++){
for (j=1;j<=n;j++)
printf("%7.2f",a[i-1][j-1]);
printf("\n");
}
for (i=1;i<=n;i++)
for (j=1;j<=n;j++){
b[i-1][j-1]=-1.e20;
for (k=1;k<=n;k++)
for (l=j-i+k;l<=j+i-k;l++)
if (l>=1 && l<=n && a[k-1][l-1]>b[i-1][j-1])
b[i-1][j-1]=a[k-1][l-1];
}
printf(" \n");
for (i=1;i<=n;i++){
for (j=1;j<=n;j++)
printf("%7.2f",b[i-1][j-1]);
printf("\n");
}
getchar();getchar();
}
:
b(i,j)=max a(k,l), k,l
┌ ┐
│* * * * * * * * * * * * * │
│ * * * * * * * * * * * * │
│ * * * * * * * * * * * │
│ * * * * * * * * * │
│ * * * * * * * │
│ * * * * * │
│ * * * │
│ * │
│ │
│ │
│ │
└ ┘
<=6 4
a(1,1)= 1.00
a(1,2)= 4.00
a(1,3)= 2.00
a(1,4)= -3.60
a(2,1)= 8.90
a(2,2)= -22.10
a(2,3)= 5.00
a(2,4)= 0.78
a(3,1)= -3.45
a(3,2)= 2.40
a(3,3)= 9.80
a(3,4)= 6.12
a(4,1)= -23.50
a(4,2)= 1.00
a(4,3)= 7.00
a(4,4)= 89.00
1.00 4.00 2.00 -3.60
8.90 -22.10 5.00 0.78
-3.45 2.40 9.80 6.12
-23.50 1.00 7.00 89.00
1.00 4.00 2.00 -3.60
8.90 4.00 5.00 2.00
8.90 8.90 9.80 6.12
8.90 9.80 9.80 89.00
2.
A, n x n. , , . l, j n. , : l j n, k j+i-l l-j+i. , . .
#include <stdio.h>
#include <conio.h>
#define m 6
void main()
{ int i,j,k,l,n;
float a[m][m],b[m][m];
clrscr();
gotoxy(5,5);
printf(" ");
gotoxy(5,6);
printf(" b(i,j)=min a(k,l), k,l ");
gotoxy(9,7);
printf(" ");
gotoxy(35,10); printf("┌ ┐");
gotoxy(35,11); printf("│ │");
gotoxy(35,12); printf("│ * │");
gotoxy(35,13); printf("│ * * │");
gotoxy(35,14); printf("│ * * * │");
gotoxy(35,15); printf("│ * * * * │");
|
|
gotoxy(35,16); printf("│ * * * * * │");
gotoxy(35,17); printf("│ * * * * * * │");
gotoxy(35,18); printf("│ * * * * * │");
gotoxy(35,19); printf("│ * * * * │");
gotoxy(35,20); printf("│ * * * │");
gotoxy(35,21); printf("│ * * │");
gotoxy(35,22); printf("│ * │");
gotoxy(35,23); printf("└ ┘");
getchar();clrscr();
do{
printf("\n\n <=%d ",m);
scanf("%d",&n);
}while(!(n>0 && n<=m));clrscr();
for (i=1;i<=n;i++)
for (j=1;j<=n;j++){
printf(" a(%d,%d)=",i,j);scanf("%f",&a[i-1][j-1]);
}
clrscr();
printf(" \n");
for (i=1;i<=n;i++){
for (j=1;j<=n;j++)
printf("%7.2f",a[i-1][j-1]);
printf("\n"); }
for (i=1;i<=n;i++)
for (j=1;j<=n;j++){
b[i-1][j-1]=1.e20;
for (l=j;l<=n;l++)
for (k=j+i-l;k<=l-j+i;k++)
if (k>=1 && k<=n && a[k-1][l-1]<b[i-1][j-1])
b[i-1][j-1]=a[k-1][l-1]; }
printf(" \n");
for (i=1;i<=n;i++){
for (j=1;j<=n;j++)
printf("%7.2f",b[i-1][j-1]);
printf("\n"); }
getchar();getchar();}
:
b(i,j)=min a(k,l), k,l
┌ ┐
│ │
│ * │
│ * * │
│ * * * │
│ * * * * │
│ * * * * * │
│ * * * * * * │
│ * * * * * │
│ * * * * │
│ * * * │
│ * * │
│ * │
└ ┘
<=6 4
a(1,1)= 2.50
a(1,2)= 3.80
a(1,3)=-2.28
a(1,4)= 4.00
a(2,1)= 6.21
a(2,2)= 9.80
a(2,3)=-3.54
a(2,4)= 6.00
a(3,1)= 1.34
a(3,2)= 6.80
a(3,3)=-2.13
a(3,4)= 5.00
a(4,1)= 4.00
a(4,2)= 8.12
a(4,3)= 5.00
a(4,4)= 3.00
2.50 3.80 -2.28 4.00
6.21 9.80 -3.54 6.00
1.34 6.80 -2.13 5.00
4.00 8.12 5.00 3.00
-3.54 -3.54 -2.28 4.00
-3.54 -3.54 -3.54 6.00
-3.54 -3.54 -2.13 5.00
-3.54 -2.13 3.00 3.00
3. 64. 8, , , .
, . l. 0 1 .
#include<stdio.h>
#include<math.h>
#include<conio.h>
void main()
{ clrscr();
float p[64];
float a[8][8];
int n=8,i=0,j=0,k,l=0;
for (k=0;k<n*n;k++)
p[k]=k;
for (k=0;k<n*n;k++)
{ a[i][j]=p[k];
if (j==0 && i<n-1 && l==0)
{ i++;l=1; }
else if (i==0 && j<n-1 && l==1)
{ j++; l=0;}
else if (j==n-1 && l==1)
{ i++;l=0; }
else if (i==n-1 && l==0)
{ j++; l=1;}
else if (l==0)
{ i++; j--;}
else
{ i--; j++; }
}
for (i=0;i<n;i++)
{ for (j=0;j<n;j++)
printf("%3.0f ",a[i][j]);
printf ("\n");
}
}
1. A, n x n. , , 1-10.
2. A, n x n. , A , 1-10.
|
|
1. 2.
3. 4.
5. 6.
7. 8.
9. 10.
3. 64. 8, , , . 11-17
11 12
13 14
15 16
- .., .., .., .. . - .:, , 1998.
- . . .., ... .: , 2000.-80 .
- . . .., ... .: , 2000.-78 .
- .. . - .:, , 1989.
.
-
( , , )
___________________________________________
. 60´84 1/16
. . . . .
300 . ..
____________________________________________________
. .. .
603600 -20, ., . , 23.
___________________________________________
,603000,., . . 37.
___________________________________________