首页 > 其他 > 详细

拉丁矩阵

时间:2016-08-04 11:43:33      阅读:152      评论:0      收藏:0      [点我收藏+]
#include <stdio.h>
#define N 6                                             /*确定N值*/
int main1()
{
	int i, j, k, t;
	printf( "The possble Latin Squares of order %d are:\n", N );
	for ( j = 0; j < N; j++ )                       /*构造N个不同的拉丁方阵*/
	{
		for ( i = 0; i < N; i++ )
		{
			t = (i + j) % N;                /*确定该拉丁方阵第i 行的第一个元素的值*/
			for ( k = 0; k < N; k++ )       /*按照环的形式输出该行中的各个元素*/
				printf( "%d", (k + t) % N + 1 );
			printf( "\n" );
		}
		printf( "\n" );
	}
}


int  main2()
{
	int	a[2 * N];
	int	b[N][N];
	int	i, j, k = 0;
	a[0] = 2;
	/* for( i=0;i<2*N;i++) a[i]=i%N+1; */
	for ( i = 0; i < 2 * N; i++ )
	{
		a[i] = i % 7 + 2;
		if ( a[i] > N )
			a[i] %= N;
	}

	for ( i = 0; i < N; i++ )
	{
		k = i;
		for ( j = 0; j < N; j++ )
		{
			b[i][j] = a[k++];
		}
	}
	for ( i = 0; i < N; i++ )
	{
		for ( j = 0; j < N; j++ )
		{
			printf( " %d ", b[i][j] );
		}
		printf( "\n" );
	}

	return(0);
}


int main()
{
	int	b[N][N];
	int	i, j, k = 0;

	for ( i = 5; i >= 0; i-- )
	{
		for ( j = 0; j < N; j++ )
		{
			b[j][i] = (i + j + 7) % 6 + 1;
		}
	}
	for ( i = 5; i >= 0; i-- )
	{
		for ( j = 0; j < N; j++ )
		{
			b[j][i] = (i + j + 5) % 6 + 1;
		}
	}


	for ( i = 0; i < N; i++ )
	{
		for ( j = 0; j < N; j++ )
		{
			printf( " %d ", b[i][j] );
		}
		printf( "\n" );
	}

	return(0);
}


拉丁矩阵

原文:http://wzsts.blog.51cto.com/10251779/1834218

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!