`
wujianjun0410
  • 浏览: 103700 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Latin矩阵算法的Java实现

阅读更多
今天遇到一道算法题目,要求写出四阶拉丁矩阵中第一行为1,2,3,4的情形的其余三行的数,由于数目比较多,直接归纳写容易重复或者是遗忘,所以搞个程序输出就比较容易了。这个程序是我在网上找的例子后来又小改了下,贴出来备忘,呵呵
package com.test;
public class Latin {
    private final int n;
    private int[][] m;
    private int count = 0;
    
    public Latin(int n) {
        this.n = n;
        m = new int[n][n];
        fill(0);
    }
    
    public boolean check(int i, int j, int a) {
        for(int col=0; col<j; col++)
            if(m[i][col] == a) return false;
        for(int row=0; row<i; row++)
            if(m[row][j] == a) return false;
        return true;
    }
    
    public void fill(int i) {
        int row = i/n;
        int col = i%n;
        for(int a=1; a<=n; a++) {
            if(check(row, col, a)) {
                m[row][col] = a;
                if(i == n*n-1) {
                    count++;
                    System.out.println(count);
                    for(int[] line : m) {
                        for(int x : line)
                            System.out.print(x);
                        System.out.println();
                    }
                    System.out.println("********");
                }
                else fill(i+1);
            }
        }
    }
    
    public static void main(String[] args) {
        new Latin(4);
    }
}
分享到:
评论

相关推荐

    java-pig-latin:Pig Latin,使用Java!

    《Java实现Pig Latin:语言转换的艺术》 在编程世界中,Pig Latin是一种常用于教学和娱乐的语言游戏,它通过特定的规则将英语单词转换为另一种形式。在这个专题里,我们将探讨如何使用Java来实现Pig Latin的转换...

    Pig-Latin:Java Pig Latin转换器

    2. **Java实现步骤**: - 分析输入的单词,检查第一个字母是否是元音。 - 如果是元音,直接在末尾添加"ay"。 - 如果是辅音,遍历单词找到第一个元音,将之前的所有辅音剪切并移到末尾,然后添加"ay"。 - 对于...

    拉丁矩阵问题.zip

    拉丁矩阵(Latin square)是一种特殊的方阵,其中每一行和每一列都包含从1到n的不同数字,并且每个数字在矩阵中只出现一次。在数学、统计学和计算机科学等领域,拉丁矩阵有着广泛的应用,例如在编码理论、设计实验和...

    Java实现验证码的代码

    本文详细介绍了如何使用Java实现网页登录时使用的验证码功能。通过对图像的创建、字符随机生成、字体随机选择及干扰元素的添加等环节的深入探讨,不仅展示了实现验证码的技术细节,同时也增强了其安全性和实用性。...

    Latin Modern Math Font

    Latin Modern Math是OpenType格式的数学字体,是Latin Modern字体家族中的一种免费打字机数学字体,对于Lua LaTX或XLaTX,unicode-math包提供了支持。拉丁现代数学Latin Modern Math字体完成了由Donald E. Knuth设计...

    Stock-Volatility-Computation-using-Pig-Latin:使用Pig-Latin实现的股票波动率计算

    使用Pig-Latin实现的股票波动率计算 该项目使用Pig-Latin实现了约3000只纳斯达克股票的股票波动率计算。 该项目是纽约州立大学布法罗分校Vipin Chaudhary博士在CSE587-数据密集计算(2015年Spring)课程中实施的一...

    java,php,GOLang,JavaScript,AES加密解密代码互通

    创建一个`Cipher`对象,设置加密模式(如`Cipher.getInstance("AES/ECB/PKCS5Padding")`),然后使用`KeyGenerator`生成128位密钥,最后调用`doFinal`方法进行加密和解密。 2. **PHP的AES ECB加密解密**: PHP使用...

    Stemming-Latin:Porter拉丁词干算法的实现

    总的来说,Porter拉丁词干算法的Java实现是一种强大的工具,能够帮助开发者在处理拉丁语系文本时,有效地减少词汇的多样性和复杂性,提高文本处理的效率。理解和掌握这个算法的实现原理,对于进行自然语言处理相关的...

    3.拉丁超立方采样.zip

    latin_hs.m 文件可能包含了一个基本的拉丁超立方采样算法的实现,"hs"可能表示豪斯霍尔德变换(Householder Transformation),这是一种线性变换,可用于构造拉丁超立方样本。 lhs_stein.m 文件则可能实现了Stein's...

    Latin samping.rar_LTSAM_latin Hyper cube_latin cube_mannerwqq

    在提供的标签中,“ltsam”、“latin_hyper_cube”和“latin_cube”是与LHS直接相关的关键词,它们分别指代了LHS方法、拉丁超立方体这一概念,以及可能与之相关的算法或程序库。而“mannerwqq”没有明确的解释,但...

    ISOLatin-1字符集[借鉴].pdf

    很多编程语言和应用程序都支持ISOLatin-1字符集,如Java、Python、C++等。 ISOLatin-1字符集的优点包括: 1. 广泛支持:ISOLatin-1字符集被广泛支持于多种操作系统、编程语言和应用程序中。 2. 完整性:ISOLatin-1...

    Latin-Hypercube-Sampling.rar_matlab拉丁_拉丁超_拉丁超立方_相关性_超拉丁抽样

    Cholesky分解是线性代数中的一种方法,用于将对称正定矩阵分解为一个下三角矩阵和其转置的乘积。在本情境中,Cholesky分解被用来构造一个相关性结构,这在模拟真实世界系统时尤其有用,因为许多变量之间往往存在某种...

    基于matlab编程实现的超拉丁立方抽样matlab-latin-sampling.rar

    在这个名为“基于matlab编程实现的超拉丁立方抽样matlab-latin-sampling.rar”的压缩包中,我们可以找到一个用MATLAB编程语言实现的LHS算法。MATLAB是广泛应用于科学计算、图像处理和数据分析的高级编程环境,其语法...

    java字符串的各种编码转换

    根据提供的文件信息,本文将详细解释Java中字符串的不同编码转换方法及原理,并深入探讨每种编码格式的特点。 ### Java字符串的编码转换 在Java中,处理不同字符集之间的字符串转换是一项常见任务。尤其是在处理...

    pig java 编程jar包

    在IT行业中,Pig是Apache ...Java编程在这里扮演了扩展Pig功能的角色,允许开发者用Java实现自定义逻辑。通过Ant进行编译管理,整个流程变得更加高效和便捷。对于处理大数据问题,这种组合提供了强大而灵活的解决方案。

    20超拉丁立方抽样matlab-latin-sampling

    在MATLAB中,"20超拉丁立方抽样matlab-latin-sampling"可能是一个包含示例代码、函数或者脚本的资源包,它为用户提供了实现这一抽样方法的工具。通过学习和使用这个资源包,你可以更好地理解和运用超拉丁立方抽样...

    JAVA程序的编码格式详解

    - **String类**:Java中的String类提供了getBytes和构造函数来实现字符到字节的转换。 - **示例代码**: ```java String s = "这是一段中文字符串"; byte[] b = s.getBytes("UTF-8"); String n = new String(b, ...

Global site tag (gtag.js) - Google Analytics