美文网首页
拉丁方阵

拉丁方阵

作者: chca | 来源:发表于2017-04-13 19:18 被阅读62次

拉丁方阵是一种n×n的方阵,方阵中恰有n种不同的元素,每种元素恰有n个,并且每种元素在一行和一列中 恰好出现一次。著名数学家和物理学家欧拉使用拉丁字母来作为拉丁方阵里元素的符号,拉丁方阵因此而得名。

百度百科的解释:
来自n个部队的n种军衔的n×n名军官,如果能排成一个正方形,每一行,每一列的n名军官来自不同的部队并且军衔各不相同,那么就称这个方阵叫正交拉丁方阵。欧拉猜测在

n=2,6,10,14,18,…

时,正交拉丁方阵不存在。然而到了上世纪60年代,人们用计算机造出了n=10的正交拉丁方阵,推翻了欧拉的猜测。现在已经知道,除了n=2,6以外,其余的正交拉丁方阵都存在,而且有多种构造的方法。

php的实现方法

function latin($a, $m){
    $r = array();
    $n = count($a);
    if ($m <= 0 || $m > $n) {
        return $r;
    }
    for ($i=0; $i<$n; $i++) {
        $b = $a;
        $t = array_splice($b, $i, 1);
        if ($m == 1) {
            $r[] = $t;
        } else {
            $c = latin($b, $m-1);
            foreach ($c as $v) {
                $r[] = array_merge($t, $v);
            }
            
        }
    }
    return $r;
}

function test(){
    echo '<pre>';
    $data = array('a','b','c');
    $res = latin($data, count($data));
    print_r($res);
}
test();

相关文章

  • 拉丁方阵

    拉丁方阵是一种n×n的方阵,方阵中恰有n种不同的元素,每种元素恰有n个,并且每种元素在一行和一列中 恰好出现一次。...

  • 拉丁方阵问题

    一个N*N的矩阵,任何一个元素在同一行或同一列都只出现一次:1 2 32 3 13 1 2 解法 每一行除了开始的...

  • 拉丁方阵问题 -- python实现

    问题描述 拉丁方阵是一种n×n的方阵,方阵中恰有n种不同的元素,每种元素恰有n个,而且每种元素在一行和一列中 恰好...

  • 《方阵》

    文/陈雄辉 我踟蹰在这方阵里 承受着钢筋水泥的凝固和冰冷 没有一种思路像炊烟一样柔软 没有一种表达像乡愁一样自然 ...

  • 方阵

    白云、丛兰、诗香、菩提、碧漪…… 收获、小窗、眉长、汤河、细雨 甲虫、她她、寒秋、安然、旖旎 枫红、南飞、月明、频...

  • 运动会(原文)

    11月10日星期五,我们学校举行了运动会。 先是走方阵,鲜花方阵,红旗方阵,然后是几个班级的方阵。我在走方阵时忘了...

  • 【胡小豆日记43】开运动会

    今天我们学校开运动会。 运动会非常好看,也非常精彩,一开始,是开幕式,各方阵入场,之后菲尔拉丁舞蹈队带来加油舞蹈。...

  • Python3 欧拉计划 问题96-100

    96、数独 详细解法参见   数独是一种热门的谜题。它的起源已不可考,但它与欧拉发明的一种类似的谜题拉丁方阵之...

  • 3-16方阵问题

    从植树问题,我们扩展到了方阵的问题。 方阵问题是很重要的数形结合应用。 方阵有实心和空心两种,实心方阵暂时放下,那...

  • C语言代码输出一个“魔方阵”

    C语言代码输出一个“魔方阵” 算法实现: 本程序要输出魔方阵,魔方阵如下: 1) #include #define...

网友评论

      本文标题:拉丁方阵

      本文链接:https://www.haomeiwen.com/subject/anqiattx.html