演算法 拉丁方陣(Latin Square)

2022-06-24 21:51:12 字數 1089 閱讀 7638

拉丁方陣(英語:latin square)是一種n × n方陣,在這種 n × n 的方陣裡,恰有n 種不同的元素,每一種不同的元素在同一行或同一列裡只出現一次。以下是兩個拉丁方陣舉例:

拉丁方陣有此名稱是因為瑞士數學家物理學家尤拉使用拉丁字母來做為拉丁方陣裡的元素的符號。

演算法步驟:

1

package

algorithm;23

/**4

* 拉丁方陣5*/

6public

class

latinsquare

2324

//每行後面補 1...k-1

25for (int j = 1; j < k; j++)

2829 k--;

30system.out.println();31}

32}3334

public

static

void

main(string args)

38 }

設有兩個階數相同(為)的拉丁方陣

,其中將所有放置位置相同的元素組合成乙個元組,組合成乙個新的矩陣

。 當這個新的矩陣

中每乙個元素互不相同時,拉丁方陣

和 是互相正交的。 此時,

和即為一對正交拉丁方。 而在階數固定的情況下,所有兩兩正交的拉丁方所成的集合稱為正交拉丁方族

如當 n=3 時,存在兩個正交的拉丁方。

可能有不止一種可能的拉丁方形。

目前,沒有公式可以計算 n × n 的拉丁方陣的數量,而當前最精確的公式在當 n 很大時,拉丁方陣的數量的最精確的估計值,其上下界也相差很遠。 具體估計公式為:

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

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 拉丁方陣 據說普魯...

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 該拉丁方陣的產...

七階拉丁方陣 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...