Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [C] Матрица Адамара


Автор: rujmaster 5.10.2009, 11:12
Требуется создать матрицу Адамара размерром 32х32(NxN). Сама матрица выглядит следующим образом:
Код

//для N=2
1  1
1 -1

//для N=4
1  1  1  1
1 -1  1 -1
1  1 -1 -1
1 -1 -1  1

И так далее, т.е для N=8 берем матрицу N=4, размещаем ее в 4 позиции. В посл позицию (справа снизу) записываются элементы с обратным знаком.

Автор: Rodman 5.10.2009, 16:02
Код

#include "stdio.h"
#include "conio.h"

void adamar(int** m, int n, int i, int j, int sign)
{
if(n==1) m[i][j] = sign;
else
{
adamar(m, n/2, i, j, sign);
adamar(m, n/2, i, n/2+j, sign);
adamar(m, n/2, n/2+i, j, sign);
adamar(m, n/2, n/2+i, n/2+j, -sign);
}
}

void main()
{
int n;
int i,j;
clrscr();
printf("Enter the size of matrix: ");
scanf("%d",&n);
int** m = new int*[n];
for(i=0; i<n; i++) m[i]=new int[n];
adamar(m,n,0,0,1);
for(i=0; i<n; i++)
for(j=0; j<n; j++)
{
gotoxy(2*i+1,j+3);
if(m[i][j] == 1) printf(" ");
printf("%d",m[i][j]);
}
getch();
}


http://forum.codenet.ru/archive/index.php/t-37706.html

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)