ドキュメンテーション センター

  • 評価版
  • 製品アップデート

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

構文

M = magic(n)

説明

M = magic(n) は、1 から n^2 までの整数を使用して、行方向と列方向の和が等しくなる nn 列の行列を返します。次数 n は、3 以上のスカラーでなければいけません。

3 次の魔方陣は、次のようになります。

M = magic(3)

M = 

    8    1    6
    3    5    7
    4    9    2

これは、各列の要素の和が等しいため、魔方陣と呼ばれます。

 sum(M) =

     15    15    15

そして、2 度の転置を行うことで、各行の要素についても和が等しいことがわかります。

 sum(M')' = 

     15
     15
     15

これは、対角要素の和も等しいので、特殊魔方陣でもあります。

sum(diag(M)) =

     15

次数 n の魔方陣の特性和の値は、

sum(1:n^2)/n

となり、n = 3 のとき、15 となります。

制限

n3 より小さい場合、magic は魔方陣ではない行列、または 1[] を返します。

詳細

すべて展開する

ヒント

魔方陣は、その和によってスケーリングされた二十確率です。

アルゴリズム

3 つの異なるアルゴリズムがあります。

  • 奇数の n に対して

  • 偶数の n で、4 の倍数でないものに対して

  • 偶数の n で、4 の倍数のものに対して

これらを明らかにするには、次のように入力してください。

for n = 3:20
    A = magic(n);
    r(n) = rank(A);
end

n が奇数の場合、魔方陣のランクは、n になります。n が 4 の倍数の場合、ランクは 3 になり、4 の倍数でない偶数の場合、ランクは n/2 + 2 になります。

[(3:20)',r(3:20)']
ans =
     3     3
     4     3
     5     5
     6     5
     7     7
     8     3
     9     9
    10     7
    11    11
    12     3
    13    13
    14     9
    15    15
    16     3
    17    17
    18    11
    19    19
    20     3

n = 18、19、20 のプロットは、各カテゴリの特徴を示すプロットになります。

参考

|

この情報は役に立ちましたか?