ドキュメンテーション

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

構文

M = magic(n)

説明

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

すべて折りたたむ

3 次の魔方陣 M を計算します。

M = magic(3)
M =

     8     1     6
     3     5     7
     4     9     2

各列の要素の合計と各行の要素の合計は同じです。

sum(M)
ans =

    15    15    15

sum(M,2)
ans =

    15
    15
    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 のプロットは、各カテゴリの特徴を示すプロットになります。

参考

|

R2006a より前に導入

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