問題:
ラテン広場(英語:ラテン広場)がある\(N×N \) N-の$×におけるN-広場の、\(正確に\四角) N- $異なる要素、各元素の種類が同じ行または列に一度だけ現れます。
\ [\開始{bmatrix} 1&2&3 \\\ 2&3&1 \\\ 3&1&2 \端{bmatrix} \ {bmatrix} A&B&D&C始める\\\ B&C&A&D \\\ C&D&B&\\\ D&A&C&B \端{bmatrix} \]
現在、計算する一切の式が存在しない(N×Nを\)\のラテン方陣の数。
標準
最初の列の順に配列要素のラテン方陣行列の最初の行は、これは標準的なラテン方陣である場合。
図は標準タイプです。
\(\左[\ {CCCC} {アレイを}開始1&2&3&4 \\\ 2&1&4&3 \\\ 3&4&1&2 \\\ 4・3・2・1 \端{アレイ} \右] \)
カテゴリの同じタイプ
多くの操作が可能になるための新たなラテンラテン方陣の正方形を作ります。例えば、彼は交換ラインにおけるラテン方陣は述べ、為替ラテン角柱、または要素で交換シンボルラテン広場に、新しいラテンの正方形を取得します。交換ラインもたらすラテン方陣記号、ラテン方陣で交換カラム、ラテン方陣または新しいと元ラテン方陣ラテン方陣内のスイッチング素子は、アイソタイプ(同位体)と呼ばれます。アイソタイプ(isotopismは)ので、すべての集合によって形成されたラテン方陣のサブセットのアイソタイプクラス(同位体クラス)に分割することができる、同値関係であり、ラテン語の同じタイプは、正方形同一のアイソタイプのカテゴリに属していない、同一のアイソタイプのカテゴリに属していますラテン正方形は異なるタイプです。
計算の同じタイプ
撮影した知識人は尋ねるのが大好き
第一歩
最も単純な第一の組の排出方法の一つには、最初の行1、列1で想定されています
最初の行、\(N-1〜、\)、
2行目の、\(〜N-2 ,. 1、\)
第三列、\(N-〜3、1,2、\)
4行目、\(4〜 nは、1,2,3、\)
の\(N-1 \)行、\(1-N-、〜1 ,. N-(2-N-)、\)
の\(\ N-)行、\(N、 1〜(N-1)、 \)
第二のステップ
第\(2 \)第二に、\(N- \)の合計の要件を満たすように再配置任意の位置変換器における行(行全体)の合計\((N-1)! \) 種放電法、
第三段階
第\(2 \)第二に、\(N- \) 、総合計の要件を満たすように再配置任意の位置トランスデューサでカラム(整列)\((N-1)! \) 種放電法を
第四段階
第\(1 \)行\(1 \)はそれぞれ、第二に切り替えることができる\(2〜N \)最初のカウント前にカラム、\(1 \)カラム、合計\(\ N-)種放電法、
そう合計\(N \倍(N- 1)!\倍(N-1)!= N!\倍(N-1)!\) シード吐出方法。
終わり
これは、同じタイプで、ラテン語正方形のために知られている\(nは!\タイムズ(N -1)!\) のTh
リピートの理由から、いわゆる「為替の公知の溶液ランク」
撮影が知っているほとんど
あなたが最初に何気なく、そしてあなただけの中断行を並べ替えることができ、状況のセットを思い付く会うと仮定\(4!= 24 \) 、また、共感列を\(4!= 24 \)
一緒に2例、\ (24 * 24 = 576 \) 。上記の溶液は言うかもしれない「為替の既知の解決策ランク。」
(1)\(n回のn \ \)の形を、交換の結果がランクされて\(S = N-を!\ N-タイムズ!\) 。以下のための\(2 \回2 \)と\(3 \回3 \)テーブルにおける\(S \)されている(4,36 \)\、実際にのみ\(2,12 \)可能。だから、最初の推測では、為替の仲間入りを複製します。
(2)交換複製溶液のランクかどうかを確認するために、私は、プログラム使用\(4 \ 4倍\)をデエンファシスされた後のランクを、交換した構成(144 \)\種繰り返し存在します。
(3)その後、正しい結果がされる(144 \)は\ですか?その後、網羅的であるすべてのスクリーニングソリューションを一覧表示、デエンファシスがある\(576 \)すべてのソリューションがカバーすることはできません、既知の解決のために見られた種は、交換をランク付けします。上記の点は、(それがが意見交換のランクが間違っている証明\(4 \回4 \)の結果を修正するための時間を持っ)。
から話します:
あなたはラベルのランクを与えることができます:
もし最初の行\(N-1,2,3,4 ...... \) 。
列交換後の第二の行は最初の行と一致することができ、行前の行と残りの新しい一致のそれぞれは、その行の交換は元の行列と一致を得ることができます。そこ\(\ n)のラインが、そこに\(\ n)を重複のようなものが。
得られるように同じ所定のラテンの正方形は、同じタイプである(\ FRAC {N} = \ N \倍(N-1)\ {!(N ^ 2)}!) のTh
テイク\(4 \回4 \)の例を作成します
たとえば、ラテン方陣が知られています:
\(\開始{アレイ}&&&1&2&3&4 \端{アレイ} \\\ \開始{アレイ} {} 1つの\\ 2 \\ 3 \\ 4 \端{アレイ} \ {始まりますbmatrix} {} 1&2&3&4 \\\ 2&3&4&1 \\\ 3&4&1&2 \\\ 4&1&2&3 \端{bmatrix} \)
最初に実行列交换
した後:
$ \開始{アレイ}&&&4&1&2&3 \端{アレイ} \ \開始{アレイ} {} 1 \ 2 \ 3 \ 4 \端{アレイ} \開始{bmatrix} {} 4&エンド\ 1&2&3 \ 1&2&3&4 \ 2&3&4&1 \ 3&4&1&2 {bmatrix} $
そして、行交换
後:
$ \開始{アレイ}&&&4&1&2&3 \端{アレイ} \ \開始{アレイ} {} 2 \ 3 \ 4 \ 1 \端{アレイ} \開始{bmatrix} {} 1& 2&3&4 \ 2&3&4&1 \ 3&4&1&2 \ 4&1&2&3 \端{bmatrix} $
行列标号的排列
\(1,2,3,4 / 1,2,3,4 \)となり\(2,3,4,1 / 4,1,2,3 \)が、ラテンの正方形未变
。
以下のための缶(I \)\行が最初の行となり、ラベルの列のを排列
、見つけることができる唯一一个
ラテンスクエア同じ行ラベルを可能に配置します。
上記のように行列标号的排列
、同一のラテン方陣取得する排列
と、\(4 \)種。
\(1,2,3,4 / 1,2,3,4 \)
\(2,3,4,1 / 4,1,2,3 \)
\(3,4,1,2 / 3,4,1,2 \)
\(4,1,2,3 / 2,3,4,1 \)
標準の計算
まで世界が唯一の暴力を見つけることができるかのように\(N-11 = \) 。
あなたは見ることができOEIS(オンライン整数列大辞典)のA000315
最初の書き込みに独自のコードを果たします。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#include<ctime>
#define fr(x) freopen(#x ".in","r",stdin);freopen(#x ".out","w",stdout)
#define mem(a,b) memset(a,b,sizeof(a))
#define max(a,b) ((a)>(b)?(a):(b))
#define min(a,b) ((a)<(b)?(a):(b))
using namespace std;
const int MaxL=20,Max=1e5;
typedef long long ll;
int M[Max][MaxL];
int *m[MaxL];
int n,tot=0,numtot=0;
void dfs(int,int);
bool check(int);
void make();
int main()
{
// fr(latin);
int T[Max];
scanf("%d",&n);
for(int i=0;i<n;i++) T[i]=i+1;
do
{
++numtot;
for(int j=0;j<n;j++) M[numtot][j]=T[j];
}while(next_permutation(T,T+n));
m[1]=&M[1][0];
dfs(2,1);
printf("%d\n",tot);
fprintf(stderr,"%.3f s\n",clock()*1.0/CLOCKS_PER_SEC);
return 0;
}
void dfs(int line,int num)
{
if(line>n) return ++tot,make(),void();
if(num>numtot) return;
for(int i=num;i<=numtot;i++)
{
m[line]=&M[i][0];
if(check(line)) dfs(line+1,i+1);
}
// while(!check(line)) m[line]=&M[++num][0];
return;
}
bool check(int line)
{
for(int i=line-1;i;i--)
{
for(int j=0;j<n;j++)
if(!((*(m[line]+j))^(*(m[i]+j)))) return false;
}
return true;
}
void make()
{
for(int i=1;i<=n;i++)
{
for(int j=0;j<n;j++) printf("%d ",(*(m[i]+j)));
puts("");
}
puts("");
}
ラテンの正方形の数のすべて
なぜ前に言うの标准型
?
そのためのために\(\ N-)オーダーラテン広場の間に、異なる標準ではない同型
、言い換えれば、限り、知られているように(\ N-)\同じタイプの数を乗じた標準のラテン方陣の数を、注文、すべてのことをされて\(N \)オーダーラテン広場の数。
までしかし、国際社会が唯一の暴力を見つけることができます\(N-11 = \) 。
PS:
私は暴力的な表情をしてプログラムを書きました\(N = 7 \)時の数標準:
10001.097秒
米国\(2h50minの\) (怖がっ~~)
高校数学
(4×4 \)\各グリッド内の四角形が充填されている\(1,2,3,4- \)各行を必要とする、4つの数字の列番号が繰り返されていない、異なる塗りつぶしフランスの合計()
A. \(24 \)種B. \(144 \)種C. \(432 \)種D. \(576 \)種
すでにラテン方陣を知っている、と知っている場合は、\を(N = 4 \)規格番号がされて\(4 \)ときおめでとうございます、この質問のスパイク〜
あなたはそれについて何も知らない場合には、その......
より多くの従来の方法があります。
ベギン
私たちは、行ごとに決定することができます。
最初の行は制限、の合計ではない\(4!= 24 \)種。
抽出の集合と仮定する\([A、B、C 、D] \) 最初の行のように。
問題間違った行の結論によれば、第2行が有する\(9 \)種。
その第三の行それ?
我々は、物事が異なる状況で第二列、三列が有していてもよいので、単純ではないことが判明\(2 \)二つまたは\(4 \)種を......
方法は?
唯一のカテゴリートークや原因を参照\を(2 \) 2または\(4 \)の両方のケースで種子を生産。
最初のライン:\([A、B、C、D] \)
第二のラインは、条件を満たすように構成された確かに最初ではない\(\) 、することができる\(B、C、Dの\ ) 媒体は、選択されたと仮定\(B \)を、行う第その?
それがあってもよい(C、Dの\) \ 媒体ので、差が始まる......
まず、選択した\(\)を
そのような選挙場合、このラインは、決定されます:\([B、A、D、C] \)
機能を見てください:
\([A、B、C、D] \\ [B、D、C] \)
実際、私が見つかりました\(、B \)の交換、\(C、Dの\)交換を。
リングは、このような画像に変換されます。
我々はそれに名前を与えました:对称
この時間は、どのような第三のラインを決定します。
最初の二つのみ置く\(C、D \) 、のみ第3四放電\(A、B \)を得、そして二つのスイッチング位置を内部溶液は、条件を満たしています。
したがって、この場合には、3番目の列が存在する\(2 \回2 = 4 \) 種が。
このような場合には、どのように多くのですか?
図4は、選択された二組に対応するが、一度それは2重量に加えて必要とされる、他の対も決定され、対を選択し、ことに留意しなければなりません。
CO \(\ FRAC {C_4 ^ 2 } {2} = 3 \) 種。
第二に、選挙\(C \)または\(D \)
実際には、これらの二つの選挙と仮定すると、等価です(C \)\を。
それはその第三?
一見も選択することができます(A、Dの\)\、実際には、のみ選択することができます(dは\)\、なぜ?
グループから選択した場合は、\(\) 、リングに描か:
\(dは\)が出て隔離されているが、最後の1を置くことができない\(dは\を)、それは真実ではありません。
オプション\(Dの\)環内に引き込まれ、:
条件を満たすために。
我々はそれに名前を与えました:轮换
\([A、B、C、D] \\ [B、C、D、] \)
この時間は、どのような第三のラインを決定します。
私たちは、このようなからのように、このリングに沿って行くことを続けることができます\(のb \)する\(のC \) 、他の変異体が続きます
溶液を得る:\を([C、D、A、B] \)
我々は、よりように、外出をスキップすることができる\(Bの\)する(D \)を\他の変形例を順次ジャンプされ、
与えるために別の解決策:\([D、A、B、C] \) (第2行に対してではない对称
右......)
2つだけあります。
したがって、この場合には、3番目の列が存在する\(2 \)種が。
このような場合には、どのように多くのですか?
この全体の変換は次が、開始を選択し、リングである(3 \)\種、次いで、次\(2 \)変換が決定された後種、リングを選択しました。
共同\(3 \回2 = 6 \) 種。
概要
常にあります\(4!\タイムズ(\ FRAC {C_4 ^ 2} {2} \回4 + 3 \ times2 \ times2)= 576 \) 種。