defintion_of_subsets-j
This is an old revision of the document!
Table of Contents
小集合の定義
魔方陣全体の集合を小集合に分けるために、いくつかの用語を定義します。
魔方列とその2進数表現
- n次の魔方列 とは、[1..n2]の範囲のn個の異なる整数からなる集合で、要素の和がn次の魔方和( ( n2 + 1 ) * n ) / 2に等しいものです。
- 例:
- { 2, 9, 4 } は 3次の魔方列です。
- { 10, 7, 14, 3 } は 4次の魔方列です。
- 異なる正整数の集合{ a1, a2, a3 … }は値が 2a1-1 + 2a2-1 + 2a3-1 + … に等しい一つの整数で表現できます。これを整数集合の2進数表現と呼ぶことにします。
- 例:
- { 2, 9, 4 } は 1 0000 10012 = 0x10b と表現できます。
- { 10, 7, 14, 3 } は 0010 0010 0100 01002 = 0x2244 と表現できます。
異なる正整数集合の順序(大小関係)
- 異なる正整数集合の大小関係は、2進数表現の大小で定義することができます。
- 例:
- 魔方列 { 5, 16, 2, 11 } は魔法列 { 12, 1, 15, 6 } よりも大きいと定義されます。なぜなら、それらの2進数表現は1000 0100 0001 0010 ( = 0x8412 ) と 0100 1000 0010 0001 ( = 0x4821 )であり、0x8412 > 0x4821だからです。
魔方列の補列
魔方列の各要素 x をすべて n2 + 1 - x で置き換えてできる集合も魔方列になります。 このようにしてできる魔方列を元の魔法列の 補列(complement)と呼びます。
- 4次における例:
- { 12, 1, 15, 6 } は { 5, 16, 2, 11 } の補列です。
- { 7, 10, 3, 14 } は自分自身の補列です。
2進数表現においては、補列は 2進数の逆順(bit reversal)で得られます。
- 4次の例:
- 1000 0100 0001 0010 の補列は 0100 1000 0010 0001 です。
魔方陣の代表魔法列
魔方陣のすべての行と列は魔方列です。ここで 代表魔方列 を 「魔方陣の行、列、行の補列、列の補列のうち、最大のもの」と定義します。なお、対角列は代表魔方列には関係しないことに注意してください。
例: 魔方陣
16 12 1 5 7 3 14 10 9 13 4 8 2 6 15 11
の代表魔法列は { 16, 13, 3, 2 } = 0x9006であり、これは3列目の補列です。
魔方陣をその代表魔方列によって小集合に分類します。この分類は魔方陣の回転、反転、M変換、相補変換のもとで不変な分類となります。
defintion_of_subsets-j.1720752766.txt.gz · Last modified: 2024/07/12 11:52 by mino
