拉丁方陣(非正交拉丁方陣)

2021-08-25 23:54:05 字數 694 閱讀 7668

#include#include#include#include#includeusing namespace std; int main() else num[i-1]=i; } for (i = 0;i < n;i++) //外迴圈保證輸出n行 { for (j = i;j < n+i;j++) //內迴圈輸出一行的每個數字 { cout<

拉丁方陣:

據說普魯士的腓特列大帝曾組成一支儀仗隊,儀仗隊共有36名軍官,來自6支部隊,每支部隊中,上校、中校、少校、上尉、中尉、少尉各一名。他希望這36名軍官排成6×6的方陣,方陣的每一行,每一列的6名軍官來自不同的部隊並且軍銜各不相同。令他惱火的是,無論怎麼絞盡腦汁也排不成。

後來,他去求教瑞士著名的大數學家尤拉。尤拉發現這是乙個不可能完成的任務。

來自n個部隊的n種軍銜的n×n名軍官,如果能排成乙個正方形,每一行,每一列的n名軍官來自不同的部隊並且軍銜各不相同,那麼就稱這個方陣叫正交拉丁方陣。尤拉猜測在

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

時,正交拉丁方陣不存在。然而到了上世紀60年代,人們用計算機造出了n=10的正交拉丁方陣,推翻了尤拉的猜測。現在已經知道,除了n=2,6以外,其餘的正交拉丁方陣都存在,而且有多種構造的方法。

正交拉丁方陣每個元素有2個屬性。 aa

bccb

bbca

accc

abba

若只有乙個屬性則不是正交拉丁方陣。

codeup22110 拉丁方陣

時空限制 1000ms 128mb 乙個n n的拉丁正方形含有整數1 n,且在任意的行或列中都不出現重複資料,一種可能的6 6拉丁正方形如下 6 3 1 4 2 5 1 4 5 6 3 2 5 6 2 1 4 3 2 1 3 5 6 4 3 5 4 2 1 6 4 2 6 3 5 1 該拉丁方陣的產...

演算法 拉丁方陣(Latin Square)

拉丁方陣 英語 latin square 是一種n n的方陣,在這種 n n 的方陣裡,恰有n 種不同的元素,每一種不同的元素在同一行或同一列裡只出現一次。以下是兩個拉丁方陣舉例 拉丁方陣有此名稱是因為瑞士數學家和物理學家尤拉使用拉丁字母來做為拉丁方陣裡的元素的符號。演算法步驟 1 package ...

七階拉丁方陣 C語言 輸出N階拉丁方陣並統計個數

題目如下 在 行 列的數陣中,數 在每行和每列 現且僅 出現一次,這樣的數陣叫 階拉丁方陣。例如下圖就是乙個五階拉丁方陣。編一程式,從鍵盤輸入 值後,列印出所有不同的 階拉丁方陣,並統計個數。1 2 3 4 5 2 3 4 5 1 3 4 5 1 2 4 5 1 2 3 5 1 2 3 4 incl...