当前位置:首页 » 操作系统 » 拉丁算法

拉丁算法

发布时间: 2022-08-15 04:27:04

Ⅰ 拉丁方阵的C语言实例 拉丁方阵

构造 NXN 阶的拉丁方阵(2<=N<=9),使方阵中的每一行和每一列中数字1到N只出现一次。如N=4时:
1 2 3 4
2 3 4 1
3 4 1 2
4 1 2 3
*问题分析与算法设计
构造拉丁方阵的方法很多,这里给出最简单的一种方法。观察给出的例子,可以发现:若将每 一行中第一列的数字和最后一列的数字连起来构成一个环,则该环正好是由1到N顺序构成;对于第i行,这个环的开始数字为i。按照 此规律可以很容易的写出程序。下面给出构造6阶拉丁方阵的程序。
*程序说明与注释
#include<stdio.h>
#define N 6 /*确定N值*/
int main()
{
int i,j,k,t;
printf("The possble Latin Squares of order %d are: ",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(" ");
}
printf(" ");
}
}
*运行结果
The possble Latin Squares of order 6 are:
1 2 3 4 5 6 2 3 4 5 6 1 3 4 5 6 1 2
2 3 4 5 6 1 3 4 5 6 1 2 4 5 6 1 2 3
3 4 5 6 1 2 4 5 6 1 2 3 5 6 1 2 3 4
4 5 6 1 2 3 5 6 1 2 3 4 6 1 2 3 4 5
5 6 1 2 3 4 6 1 2 3 4 5 1 2 3 4 5 6
6 1 2 3 4 5 1 2 3 4 5 6 2 3 4 5 6 1
4 5 6 1 2 3 5 6 1 2 3 4 6 1 2 3 4 5
5 6 1 2 3 4 6 1 2 3 4 5 1 2 3 4 5 6
6 1 2 3 4 5 1 2 3 4 5 6 2 3 4 5 6 1
1 2 3 4 5 6 2 3 4 5 6 1 3 4 5 6 1 2
2 3 4 5 6 1 3 4 5 6 1 2 4 5 6 1 2 3
3 4 5 6 1 2 4 5 6 1 2 3 5 6 1 2 3 4

Ⅱ 哪位了解重复拉丁矩阵问题的算法的

//package p1; /**拉丁矩阵*/ public class Latin { /**主方法*/ static int len,sum=0;//len是矩阵的阶数,sum用来统计输出次数 static int[][] a;//用来保存举证 public static void main(String[] args) { len=Integer.parseInt(args[0]); a=new int[len][len]; set(0,0);//从第一个开始放 } /**在a[row][col]中放数字,当没数字可放或者放最后一个数字成功时,返回false*/ static boolean set(int row,int col) { for(int value=1;value<=len;++value) //System.out.println("value="+value); //该语句用来调试逻辑错误 if(check(row,col,value))//调用check()来判断是否能放数字 { a[row][col]=value;//放数字 if(len==row+1 len==col+1)//如果矩阵填满,输出结果并返回 false { print(); return false; } if(++col==len)//到行末换行 { ++row; col=0; } if(!set(row,col) --col<0{ System.out.println("Method "+(++sum)); for(int i=0;i[j]); System.out.println(); } } }

热点内容
ftp06n08n代替 发布:2025-01-16 06:53:43 浏览:233
androidstudio结构 发布:2025-01-16 06:39:22 浏览:245
五区布鲁是什么服务器 发布:2025-01-16 06:35:13 浏览:865
androidhandler更新ui 发布:2025-01-16 06:21:28 浏览:171
java与mvc 发布:2025-01-16 06:20:40 浏览:333
lol最新刷金币脚本 发布:2025-01-16 05:56:22 浏览:564
电脑登陆加密 发布:2025-01-16 05:21:57 浏览:153
安卓怎么修复闪退 发布:2025-01-16 05:21:54 浏览:554
易盾加密 发布:2025-01-16 05:20:51 浏览:895
html上传图片的代码 发布:2025-01-16 05:16:55 浏览:601