English   Japanese
Home   Site Map   Top   Prev.   Next   3-D ( 1   2   3   4   5 )   4-D ( 1   2   3   4   5   6 )

面斜立体方陣の作成アルゴリズム

[4の倍数次] [奇数次] [半偶数次]

1. 4の倍数次

 4の倍数次の面斜立体方陣は,次数が8以上の場合に限って存在する.対称面斜立体方陣も,同じ条件下で存在する.

1.1 対称な面斜方陣 (m = 4x, m ≧ 8)

求める対称面斜立体方陣 aijk (i,j,k = 0,...,m-1) は以下の式によって与えられる.
aijk = a*pqr,

ここで
p = i (i < m/2),   3m/2 - 1 - i (i ≧ m/2),
q = j (j < m/2),   3m/2 - 1 - j (j ≧ m/2),
r = k (k < m/2),   3m/2 - 1 - k (k ≧ m/2).

a*pqr は,完備体汎斜面斜立体方陣,または,完備全汎斜立体方陣である.具体的な作成法は,体汎斜面斜立体方陣または全汎斜立体方陣の項を参照.

Back

2. 奇数次

 奇数次の面斜立体方陣は,次数が5以上の場合に限って存在する.対称面斜立体方陣も,同じ条件下で存在する.ここでは,次数が7以上の場合についてのアルゴリズムを紹介する.

5次の面斜立体方陣の実例はこちらを参照.5次面斜立体方陣の代数的構成法は未だ知られていない.
※ 5次の対称面斜立体方陣が存在するか否かは知られていない.

2.1 対称な面斜方陣 (m = 2x+1, m ≧ 7)

 この条件は,対称な面汎斜立体方陣(7以上の全ての奇数次に対して存在)によって満たされる.なお,面汎斜でない対称面斜立体方陣は,以下の方法によって作成できる.
 a*ijk (i,j,k = 0,...,m-1) を対称な面汎斜立体方陣とするとき,求める面斜立体方陣 aijk は以下の式によって与えられる.
aijk = a*pqr,

ここで
p = f(i), q = f(j), r = f(k),
f(0) = 1, f(1) = 0, f(m-2) = m-1, f(m-1) = m-2, f(x) = x (1 < x < m-1).

Back

3. 半偶数次(4の倍数ではない偶数次)

 半偶数次の面斜立体方陣は,全ての6以上の次数に対して存在する.ここでは,次数が10以上の場合についてのアルゴリズムを紹介する.

6次面斜立体方陣の実例はこちらを参照.6次面斜立体方陣の代数的構成法は未だ知られていない.
※ 半偶数次の対称面斜立体方陣は存在しない.

3.1 非対称な面斜方陣 (m = 4x+2, m ≧ 10)

求める面斜立体方陣 aijk (i,j,k = 0,...,m-1) は以下の式によって与えられる.
m が3の倍数でない場合:
aijk = bijk (m/2)3 + cijk (m/2)2 + dijk (m/2) + eijk + 1,

m が3の倍数である場合:
aijk = bijk (m/2)3 + Sm/2,3(cijk) (m/2)2 + Sm/2,3(dijk) (m/2) + Sm/2,3(eijk) + 1,

ここで
Sm/2,3(x) = Qm/6,3([x/3], x mod 3).

Qp,q(x, y) (0 ≦ x < p, 0 ≦ y < q)は,以下の式によって与えられる(全汎斜立体方陣用の定義と同一).
Qp,q(x, y) = qx + y (0 < x < p-1, x が偶数),
qx + (q-1-y) (0 < x < p-1, x が奇数),
y/2 + (q-1)/2 (x = 0, y が偶数),
(y-1)/2 (x = 0, y が奇数),
y/2 + (p-1)q (x = p-1, y が偶数),
(y-1)/2 + pq - (q-1)/2 (x = p-1, y が奇数).

関数 Qp,q(x, y), Sm,q(x) の具体例については,全汎斜立体方陣のページを参照のこと.

bijk, cijk, dijk, eijk は次のように定義される.
bijk = D(G8(v, z), i, j, k),
cijk ≡ 2i* + j* + k*   (mod. m/2),   0 ≦ cijk < m/2,
dijk ≡ i* + 2j* + k*   (mod. m/2),   0 ≦ dijk < m/2,
eijk ≡ i* + j* + 2k*   (mod. m/2),   0 ≦ eijk < m/2,

ここで
i* = min{i, m-1-i},   j* = min{j, m-1-j},   k* = min{k, m-1-k},
v = 4[2i/m] + 2[2j/m] + {([2i/m] + [2j/m] +[2k/m]) mod 2},   (0 ≦ v ≦ 7),
z ≡ i* + j* - 2k*   (mod. m/2),   0 ≦ z < m/2.

GN(v, z) (N は2のべき乗, 0 ≦ v < N, z ≧ 0)は次のように定義される.
v が偶数のとき:
GN(v, 0) = v,
GN(v, 1) = v + 1,
GN(v, 2) = N/2 - 1 - v/2,
GN(v, 3) = N - 1 - v/2,
GN(v, 2x+4) = N - 1 - v    (x ≧ 0),
GN(v, 2x+5) = v    (x ≧ 0).

v が奇数のとき:
GN(v, 0) = v,
GN(v, 1) = v - 1,
GN(v, 2) = N - 1 - (v-1)/2,
GN(v, 3) = N/2 - 1 - (v-1)/2,
GN(v, 2x+4) = N - 1 - v    (x ≧ 0),
GN(v, 2x+5) = v    (x ≧ 0).

GN(v, z) は以下の性質を満たす(逆に,以下の性質を満たしていさえすればよい).

(1) 全ての z (0 ≦ z < m/2) に対して { GN(v, z) | 0 ≦ v < N } = { 0, 1, ..., N-1 },
(2) v が偶数のとき Σ z=0,m/2-1 {GN(v, z)} = (N-1)(m-2)/4 + N/2,
(3) v が奇数のとき Σ z=0,m/2-1 {GN(v, z)} = (N-1)(m-2)/4 + N/2 - 1,
(4) GN(2v, 0) = GN(2v+1, 1), GN(2v, 1) = GN(2v+1, 0), GN(2v, 1) - GN(2v, 0) = 1,
(5) GN(v, 0) + GN(N-1-v, 0) = N-1.

条件(4)は,下記の D(x, i, j, k) による変換を成立させるために必要である.また,条件(5)は,bijk の立体対角線を成立させるために必要である.

D(x, i, j, k) は,bijk の平面対角線を成立させるための変換である.これは次のように定義される.
D(x, i, j, k) = x または {x + (-1)x},

ここで,D(x, i, j, k) = x + (-1)x となるのは,次のいずれかの条件が満たされる場合に限る.
ここで,既に定義したように,i* = min{i, m-1-i}, j* = min{j, m-1-j}, k* = min{k, m-1-k} である.

こちらのページに m = 10 の場合の例を示す.

Back


Home   Site Map   Top   Prev.   Next   3-D ( 1   2   3   4   5 )   4-D ( 1   2   3   4   5   6 )

中村 光利(メールはこちら) メールを送信するためには JavaScript を有効にして下さい.
【特定電子メール法に基づく表示】広告メール、迷惑メールの送信はお断りします

本ページの最終更新日:2016年8月8日
「立体方陣と高次元方陣−三次元以上の魔方陣」   http://magcube.la.coocan.jp/magcube/jp/
Copyright © 2004-2016, Mitsutoshi Nakamura. All rights reserved.

track feed 立体方陣と高次元方陣−三次元以上の魔方陣 powered by InfoMaker RSS
SEO
loading
立体方陣と高次元方陣