(57)【特許請求の範囲】
【請求項１】
連続自然数である互いに異なるｎ2個の記号を、ｎ行ｎ列の行列の各行、各列、主対角要素及び副対角要素の各和がそれぞれ相等しくなるように配列要素として設定した、次数ｎの魔方陣を作成する魔方陣作成装置であって、
ｎ行ｎ列の全部でｎ2個の記憶素子を有し、該記憶素子のそれぞれには、互いに異なるｎ2個の記号が重複を許すことなく格納される魔方陣記憶用配列と、
前記魔方陣記憶用配列のｎ2個の記憶素子のうち、設定された位置の記憶素子を指定する指定手段と、
前記指定手段により指定された位置の記憶素子から記憶記号を読み出す読み出し手段と、
前記指定手段により指定された位置の記憶素子に、入力された記号を格納する設定手段と、
前記読み出し手段により読み出した記号と入力された記号とを比較する記号比較手段と、
前記魔方陣記憶用配列の各行ｎ個ずつの記憶素子に格納されている各行それぞれの記号の和と、前記魔方陣記憶用配列の各列ｎ個ずつの記憶素子に格納されている各列それぞれの記号の和と、前記魔方陣記憶用配列の主対角上のｎ個の記憶素子に格納されている記号の和と、前記魔方陣記憶用配列の副対角上のｎ個の記憶素子に格納されている記号の和とを、それぞれ格納する行・列・対角要素和記憶部と、
作成しようとする魔方陣の次数ｎと、前記記号の選択順序と、前記魔方陣記憶用配列の前記記号が最初に格納される位置と、前記記号を前記魔方陣記憶用配列の行方向又は列方向に沿って配列する順序とがそれぞれ設定されると共に、前記次数ｎの魔方陣における各行、各列、主対角要素及び副対角要素の所定の和が設定され、前記記号比較手段からの比較結果を受けて、前記指定手段、前記読み出し手段、前記設定手段を制御して、前記行・列・対角要素和記憶部に格納された前記魔方陣記憶用配列の各行、各列、主対角要素、副対角の各記憶素子の各和が、設定された前記所定の和にそれぞれ等しくなるように、前記魔方陣記憶用配列にｎ2個の記号を格納させる演算部と
を有し、前記演算部は、前記魔方陣記憶用配列の前記記号が最初に格納される位置として設定された前記記憶素子に、最初の値の記号を格納した後、前記配列する順序に従って前記記号を前記魔方陣記憶用配列の各記憶素子に格納し、その記憶素子にそれまでの記号と異なる記号を格納できないときは一つ前の位置の前記記憶素子に戻って、その位置の前記記憶素子に格納されている次の選択順序の記号から前記選択順序に従って、それまで格納されている記号と同一とならない記号を格納し、同一とならない記号を格納できたときは、次の位置に進んでそれまで格納されている記号と異なる記号を該次の位置の前記記憶素子に格納する処理を繰り返して、前記選択順序に従って前記魔方陣記憶用配列の最後の位置の記憶素子まですべて異なる記号を配列し、前記魔方陣記憶用配列のすべての前記記憶素子に互いに異なる記号が格納され終わってから、前記魔方陣記憶用配列の各行、各列、主対角要素及び副対角要素の各和を計算して、前記行・列・対角要素和記憶部に格納する一連の処理を、前記行・列・対角要素和記憶部に格納された前記魔方陣記憶用配列の各行、各列、主対角、副対角の各記憶素子の各和が、設定された前記所定の和にそれぞれ等しくなるまで繰り返すことにより、前記魔方陣記憶用配列に魔方陣を作成することを特徴とする魔方陣の作成装置。
【請求項２】
連続自然数である互いに異なるｎ2個の記号を、ｎ行ｎ列の行列の各行、各列、主対角要素及び副対角要素の各和がそれぞれ相等しくなるように配列要素として設定した、次数ｎの魔方陣を作成する魔方陣作成装置であって、
ｎ行ｎ列の全部でｎ2個の記憶素子を有し、該記憶素子のそれぞれには、互いに異なるｎ2個の記号が重複を許すことなく格納される魔方陣記憶用配列と、
前記魔方陣記憶用配列のｎ2個の記憶素子のうち、設定された位置の記憶素子を指定する指定手段と、
前記指定手段により指定された位置の記憶素子から記憶記号を読み出す読み出し手段と、
前記指定手段により指定された位置の記憶素子に、入力された記号を格納する設定手段と、
前記読み出し手段により読み出した記号と入力された記号とを比較する記号比較手段と、
前記魔方陣記憶用配列の各行ｎ個ずつの記憶素子に格納されている各行それぞれの記号の和と、前記魔方陣記憶用配列の各列ｎ個ずつの記憶素子に格納されている各列それぞれの記号の和と、前記魔方陣記憶用配列の主対角上のｎ個の記憶素子に格納されている記号の和と、前記魔方陣記憶用配列の副対角上のｎ個の記憶素子に格納されている記号の和とを、それぞれ格納する行・列・対角要素和記憶部と、
作成しようとする魔方陣の次数ｎと、前記記号の選択順序と、前記魔方陣記憶用配列の前記記号が最初に格納される位置と、前記記号を前記魔方陣記憶用配列の行方向又は列方向に沿って配列する順序とがそれぞれ設定されると共に、前記次数ｎの魔方陣における各行、各列、主対角要素及び副対角要素の所定の和が設定され、前記記号比較手段からの比較結果を受けて、前記指定手段、前記読み出し手段、前記設定手段を制御して、前記行・列・対角要素和記憶部に格納された前記魔方陣記憶用配列の各行、各列、主対角、副対角の各記憶素子の各和が、設定された前記所定の和にそれぞれ等しくなるように、前記魔方陣記憶用配列にｎ2個の記号を格納させる演算部と
を有し、前記演算部は、前記魔方陣記憶用配列に既存の魔方陣を設定する第１のステップと、該既存の魔方陣の前記記号が最初に格納される位置又は指定された位置の前記記憶素子に格納された記号が前記選択順序の最後の記号であるか判定し、最後の記号であるときは一つ前の位置に戻してその位置の前記記憶素子に格納されている記号が最後の記号かどうか判定する第２のステップと、最後の記号でないと判定された記号の位置の前記記憶素子に格納されている次の選択順序の記号から前記選択順序に従って、それまで格納されている記号と同一とならない記号を前記記憶素子に格納し、同一とならない記号を格納できたときは、次の位置に進んでそれまで格納されている記号と同一とならない記号を該次の位置の前記記憶素子に格納する動作を繰り返し、同一とならない記号を格納できないときは、前記第２のステップによる処理を再度行わせる第３のステップと、前記第３のステップにより前記魔方陣記憶用配列のすべての記憶素子に互いに異なる記号が格納され終わってから、前記魔方陣記憶用配列の各行、各列、主対角要素及び副対角要素の各和を計算して、前記行・列・対角要素和記憶部に格納し、前記行・列・対角要素和記憶部に格納された前記魔方陣記憶用配列の各行、各列、主対角、副対角の各記憶素子の各和が、設定された前記所定の和にそれぞれ等しいかどうか判定し、等しくない判定結果が得られたときには、前記第２及び第３のステップによる処理を再度行わせる第４のステップの各処理を、前記行・列・対角要素和記憶部に格納された前記魔方陣記憶用配列の各行、各列、主対角、副対角の各記憶素子の各和が、設定された前記所定の和にそれぞれ等しくなるまで行うことにより、前記魔方陣記憶用配列に魔方陣を作成することを特徴とする魔方陣の作成装置。
【請求項３】
連続自然数である互いに異なるｎ2個の記号を、ｎ行ｎ列の行列の各行、各列、主対角要素及び副対角要素の各和がそれぞれ相等しくなるように配列要素として設定した、次数ｎの魔方陣を作成する魔方陣作成装置であって、
ｎ行ｎ列の全部でｎ2個の記憶素子を有し、該記憶素子のそれぞれには、互いに異なるｎ2個の記号が重複を許すことなく格納される魔方陣記憶用配列と、
前記魔方陣記憶用配列のｎ2個の記憶素子のうち、設定された位置の記憶素子を指定する指定手段と、
前記指定手段により指定された位置の記憶素子から記憶記号を読み出す読み出し手段と、
前記指定手段により指定された位置の記憶素子に、入力された記号を格納する設定手段と、
前記読み出し手段により読み出した記号と入力された記号とを比較する記号比較手段と、
前記魔方陣記憶用配列の各行ｎ個ずつの記憶素子に格納されている各行それぞれの記号の和と、前記魔方陣記憶用配列の各列ｎ個ずつの記憶素子に格納されている各列それぞれの記号の和と、前記魔方陣記憶用配列の主対角上のｎ個の記憶素子に格納されている記号の和と、前記魔方陣記憶用配列の副対角上のｎ個の記憶素子に格納されている記号の和とを、それぞれ格納する行・列・対角要素和記憶部と、
作成しようとする魔方陣の次数ｎと、前記記号の選択順序と、前記魔方陣記憶用配列の前記記号が最初に格納される位置と、前記記号を前記魔方陣記憶用配列の行方向又は列方向に沿って配列する順序とがそれぞれ設定されると共に、前記次数ｎの魔方陣における各行、各列、主対角要素及び副対角要素の所定の和が設定され、前記記号比較手段からの比較結果を受けて、前記指定手段、前記読み出し手段、前記設定手段を制御して、前記行・列・対角要素和記憶部に格納された前記魔方陣記憶用配列の各行、各列、主対角、副対角の各記憶素子の各和が、設定された前記所定の和にそれぞれ等しくなるように、前記魔方陣記憶用配列にｎ2個の記号を格納させる演算部と
を有し、前記演算部は、前記魔方陣記憶用配列の前記記号が最初に格納される位置として設定された前記記憶素子に、最初の値の記号を格納する第１のステップと、直前のステップで記号を格納した位置の前記記憶素子が列の最後であるときはその記憶素子を含む行のｎ個の記憶素子に格納された記号の和を計算し、行の最後であるときはその記憶素子を含む列のｎ個の記憶素子に格納された記号の和を計算し、主対角の最後の位置の前記記憶素子であるときはその記憶素子を含む主対角のｎ個の記憶素子に格納された記号の和を計算し、副対角の最後の位置の前記記憶素子であるときはその記憶素子を含む副対角のｎ個の記憶素子に格納された記号の和を計算し、それぞれ計算した和が、設定された前記所定の和と一致するかどうか比較する第２のステップと、前記第２のステップによる計算結果が得られない位置の前記記憶素子に記号を格納したとき、又は前記第２のステップにより計算された前記行、列、主対角及び副対角のそれぞれｎ個ずつの記憶素子に格納された記号の和が前記所定の和と一致するときには、行列の最後の位置の前記記憶素子かどうか判定する第３のステップと、前記第３のステップにより行列の最後の位置の前記記憶素子でないと判定されたときに、次の位置の前記記憶素子に前記最初の値の記号を格納してから前記選択順序に従って、それまで格納されている記号と同一とならない記号を格納し、同一とならない記号を格納できたときは、前記第２のステップによる処理を行わせる第４のステップと、前記第２のステップにより計算された前記行、列、主対角及び副対角のそれぞれｎ個ずつの記憶素子に格納された記号の各和のどれか一つが前記所定の和と不一致であるときには、その不一致である和を前記所定の和と大小比較する第５のステップと、前記第５のステップにより前記不一致である和が前記所定の和より大きいと判定されたとき、又は前記第４のステップにより記号を格納できないときに、一つ前の位置に戻して前記第４のステップによる処理を行わせる第６のステップの処理を順次行い、前記第３のステップにより行列の最後の位置の前記記憶素子であると判定されたときの前記魔方陣記憶用配列に格納されている行列を、魔方陣として作成することを特徴とする魔方陣の作成装置。
【請求項４】
連続自然数である互いに異なるｎ2個の記号を、ｎ行ｎ列の行列の各行、各列、主対角要素及び副対角要素の各和がそれぞれ相等しくなるように配列要素として設定した、次数ｎの魔方陣を作成する魔方陣作成装置であって、
ｎ行ｎ列の全部でｎ2個の記憶素子を有し、該記憶素子のそれぞれには、互いに異なるｎ2個の記号が重複を許すことなく格納される魔方陣記憶用配列と、
前記魔方陣記憶用配列のｎ2個の記憶素子のうち、設定された位置の記憶素子を指定する指定手段と、
前記指定手段により指定された位置の記憶素子から記憶記号を読み出す読み出し手段と、
前記指定手段により指定された位置の記憶素子に、入力された記号を格納する設定手段と、
前記読み出し手段により読み出した記号と入力された記号とを比較する記号比較手段と、
前記魔方陣記憶用配列の各行ｎ個ずつの記憶素子に格納されている各行それぞれの記号の和と、前記魔方陣記憶用配列の各列ｎ個ずつの記憶素子に格納されている各列それぞれの記号の和と、前記魔方陣記憶用配列の主対角上のｎ個の記憶素子に格納されている記号の和と、前記魔方陣記憶用配列の副対角上のｎ個の記憶素子に格納されている記号の和とを、それぞれ格納する行・列・対角要素和記憶部と、
作成しようとする魔方陣の次数ｎと、前記記号の選択順序と、前記魔方陣記憶用配列の前記記号が最初に格納される位置と、前記記号を前記魔方陣記憶用配列の行方向又は列方向に沿って配列する順序とがそれぞれ設定されると共に、前記次数ｎの魔方陣における各行、各列、主対角要素及び副対角要素の所定の和が設定され、前記記号比較手段からの比較結果を受けて、前記指定手段、前記読み出し手段、前記設定手段を制御して、前記行・列・対角要素和記憶部に格納された前記魔方陣記憶用配列の各行、各列、主対角、副対角の各記憶素子の各和が、設定された前記所定の和にそれぞれ等しくなるように、前記魔方陣記憶用配列にｎ2個の記号を格納させる演算部と
を有し、前記演算部は、前記魔方陣記憶用配列の前記記号が最初に格納される位置として設定された前記記憶素子に、最初の値の記号を格納する第１のステップと、直前のステップで記号を格納した前記記憶素子の位置と同じ行で、かつ、その位置までの前記記憶素子に格納された記号の和と、同じ列で、かつ、その位置までの記憶素子に格納された記号の和とを計算し、前記直前のステップで記号を格納した前記記憶素子の位置が主対角上の位置であるときはその位置を含む主対角上のそこまでの記憶素子に格納された記号の和を計算し、副対角上の位置であるときはその位置を含む副対角上のそこまでの記憶素子に格納された記号の和を計算し、それぞれ計算した和が前記所定の和以下であるどうか比較する第２のステップと、前記第２のステップにより計算された前記行、列、主対角及び副対角の各記憶素子に格納された記号の各和のすべてが前記所定の和以下であると判定されたときには、前記第２のステップの直前のステップで記号を格納した記憶素子が前記魔方陣記憶用配列の最後の位置の前記記憶素子かどうか判定する第３のステップと、前記第３のステップにより前記魔方陣記憶用配列の最後の位置の前記記憶素子でないと判定されたときは、前記配列順序の次の位置の前記記憶素子に、前記記憶素子にそれまで格納されていない記号で、かつ、前記記号の選択順序のうち最先の記号を格納し、同一とならない記号を格納できたときは、前記第２のステップによる処理を行わせる第４のステップと、前記第３のステップにより前記魔方陣記憶用配列の最後の位置の前記記憶素子であると判定されたときは、前記第２のステップにより計算された前記行、列、主対角及び副対角の各記憶素子に格納された記号の各和のすべてが前記所定の和と一致するかどうか判定し、不一致のときは前記第４のステップによる処理を行わせる第５のステップと、前記第２のステップにより計算された前記各和のどれか一つが前記所定の和より大であるとき、又は前記第４のステップにより記号を格納できないときに、一つ前の位置に戻して前記第４のステップによる処理を行わせる第６のステップの各処理を順次に行い、前記第５のステップにより一致判定されたときの前記魔方陣記憶用配列に格納されている行列を、魔方陣として作成することを特徴とする魔方陣の作成装置。
【請求項５】
連続自然数である互いに異なるｎ2個の記号を、ｎ行ｎ列の行列の各行、各列、主対角要素及び副対角要素の各和がそれぞれ相等しくなるように配列要素として設定した、次数ｎの魔方陣を作成する魔方陣作成装置であって、
ｎ行ｎ列の全部でｎ2個の記憶素子を有し、該記憶素子のそれぞれには、互いに異なるｎ2個の記号が重複を許すことなく格納される魔方陣記憶用配列と、
前記魔方陣記憶用配列のｎ2個の記憶素子のうち、設定された位置の記憶素子を指定する指定手段と、
前記指定手段により指定された位置の記憶素子から記憶記号を読み出す読み出し手段と、
前記指定手段により指定された位置の記憶素子に、入力された記号を格納する設定手段と、
前記読み出し手段により読み出した記号と入力された記号とを比較する記号比較手段と、
前記魔方陣記憶用配列の各行ｎ個ずつの記憶素子に格納されている各行それぞれの記号の和と、前記魔方陣記憶用配列の各列ｎ個ずつの記憶素子に格納されている各列それぞれの記号の和と、前記魔方陣記憶用配列の主対角上のｎ個の記憶素子に格納されている記号の和と、前記魔方陣記憶用配列の副対角上のｎ個の記憶素子に格納されている記号の和とを、それぞれ格納する行・列・対角要素和記憶部と、
作成しようとする魔方陣の次数ｎと、前記記号の選択順序と、前記魔方陣記憶用配列の前記記号が最初に格納される位置と、前記記号を前記魔方陣記憶用配列の行方向又は列方向に沿って配列する順序とがそれぞれ設定されると共に、前記次数ｎの魔方陣における各行、各列、主対角要素及び副対角要素の所定の和が設定され、前記記号比較手段からの比較結果を受けて、前記指定手段、前記読み出し手段、前記設定手段を制御して、前記行・列・対角要素和記憶部に格納された前記魔方陣記憶用配列の各行、各列、主対角、副対角の各記憶素子の各和が、設定された前記所定の和にそれぞれ等しくなるように、前記魔方陣記憶用配列にｎ2個の記号を格納させる演算部と
を有し、前記演算部は、前記魔方陣記憶用配列に既存の魔方陣を設定する第１のステップと、前記既存の魔方陣が設定された前記魔方陣記憶用配列の最初の位置又はその時点での比較対象位置の前記記憶素子に前記選択順序の最後の記号が格納されたか判定し、前記最後の記号であるときは前記配列順序の一つ前の位置に戻してその比較対象位置の前記記憶素子に格納されている記号が最後の記号かどうか判定する第２のステップと、前記第２のステップにより判定した位置の前記記憶素子に前記最後の記号が格納されていないと判定されたときには、該判定した位置の前記記憶素子に格納されている記号の次の前記選択順序の記号を格納する第３のステップと、直前のステップで記号が格納された比較対象位置の前記記憶素子に、それまで格納されている記号と同一とならない前記選択順序で最先の記号を格納し、前記同一とならない記号を格納した前記記憶素子の位置が列の最後であるときはその位置を含む行のｎ個の記憶素子に記憶されている記号の和を計算し、行の最後であるときはその位置を含む列のｎ個の記憶素子に記憶されている記号の和を計算し、主対角の最後の位置であるときはその位置を含む主対角上にあるｎ個の記憶素子に記憶されている記号の和を計算し、副対角の最後の位置であるときはその位置を含む副対角上にあるｎ個の記憶素子に記憶されている記号の和を計算し、それぞれ計算した和が設定された前記所定の和と一致するかどうか比較し、同一とならない記号を格納できないときは、前記第２のステップによる処理を再度行わせる第４のステップと、前記第４のステップによる計算結果が得られない位置の前記記憶素子に記号を格納したとき、又は前記第４のステップにより計算された前記行、列、主対角及び副対角に位置する各記憶素子の記号の各和のすべてが前記所定の和と一致するときには、前記魔方陣記憶用配列の配列順序の最後の位置かどうか判定する第５のステップと、前記第５のステップにより前記魔方陣記憶用配列の配列順序の最後の位置でないと判定されたときに、配列順序で次の位置の前記記憶素子に前記最初の値の記号を格納してから前記第４のステップによる処理を行わせる第６のステップと、前記第４のステップにより計算された前記行、列、主対角及び副対角に位置する各記憶素子の記号の各和のどれか一つが前記所定の和と不一致であるときには、その不一致である和を前記所定の和と大小比較し、前記不一致である和が前記所定の和より小さいときは前記第２のステップによる処理を行わせ、前記不一致である和が前記所定の和以上であるときは、一つ前の位置に戻して前記第２のステップによる処理を行わせる第７のステップとからなる処理を順次に行い、前記第５のステップにより前記魔方陣記憶用配列の配列順序の最後の位置であると判定されたときの前記魔方陣記憶用配列に格納されている行列を、魔方陣として作成することを特徴とする魔方陣の作成装置。
【請求項６】
連続自然数である互いに異なるｎ2個の記号を、ｎ行ｎ列の行列の各行、各列、主対角要素及び副対角要素の各和がそれぞれ相等しくなるように配列要素として設定した、次数ｎの魔方陣を作成する魔方陣作成装置であって、
ｎ行ｎ列の全部でｎ2個の記憶素子を有し、該記憶素子のそれぞれには、互いに異なるｎ2個の記号が重複を許すことなく格納される魔方陣記憶用配列と、
前記魔方陣記憶用配列のｎ2個の記憶素子のうち、設定された位置の記憶素子を指定する指定手段と、
前記指定手段により指定された位置の記憶素子から記憶記号を読み出す読み出し手段と、
前記指定手段により指定された位置の記憶素子に、入力された記号を格納する設定手段と、
前記読み出し手段により読み出した記号と入力された記号とを比較する記号比較手段と、
前記魔方陣記憶用配列の各行ｎ個ずつの記憶素子に格納されている各行それぞれの記号の和と、前記魔方陣記憶用配列の各列ｎ個ずつの記憶素子に格納されている各列それぞれの記号の和と、前記魔方陣記憶用配列の主対角上のｎ個の記憶素子に格納されている記号の和と、前記魔方陣記憶用配列の副対角上のｎ個の記憶素子に格納されている記号の和とを、それぞれ格納する行・列・対角要素和記憶部と、
作成しようとする魔方陣の次数ｎと、前記記号の選択順序と、前記魔方陣記憶用配列の前記記号が最初に格納される位置と、前記記号を前記魔方陣記憶用配列の行方向又は列方向に沿って配列する順序とがそれぞれ設定されると共に、前記次数ｎの魔方陣における各行、各列、主対角要素及び副対角要素の所定の和が設定され、前記記号比較手段からの比較結果を受けて、前記指定手段、前記読み出し手段、前記設定手段を制御して、前記行・列・対角要素和記憶部に格納された前記魔方陣記憶用配列の各行、各列、主対角、副対角の各記憶素子の各和が、設定された前記所定の和にそれぞれ等しくなるように、前記魔方陣記憶用配列にｎ2個の記号を格納させる演算部と
を有し、前記演算部は、前記魔方陣記憶用配列に既存の魔方陣を設定する第１のステップと、前記既存の魔方陣が設定された前記魔方陣記憶用配列の最初の位置又はその時点での比較対象位置の前記記憶素子に前記選択順序の最後の記号が格納されたか判定し、前記最後の記号であるときは前記配列順序の一つ前の位置に戻してその比較対象位置の前記記憶素子に格納されている記号が最後の記号かどうか判定する第２のステップと、前記第２のステップにより判定した位置の前記記憶素子に前記最後の記号が格納されていないと判定されたときには、該判定した位置の前記記憶素子に格納されている記号の次の前記選択順序の記号を格納する第３のステップと、直前のステップで記号が格納された比較対象位置の前記記憶素子に、それまで格納されている記号と同一とならない前記選択順序で最先の記号を格納し、前記同一とならない記号を格納した前記記憶素子の位置を含む行及び列それぞれの記憶素子に記憶されている記号の和をそれぞれ計算し、該同一とならない記号を格納した前記記憶素子の位置が主対角上の位置であるときはその位置を含む主対角上の位置にある前記記憶素子に格納されている記号の和を計算し、副対角上の位置であるときはその位置を含む副対角上の位置にある前記記憶素子に格納されている記号の和を計算し、それぞれ計算した和が前記所定の和以下であるどうか比較し、同一とならない記号を格納できないときは、前記第２のステップによる処理を再度行わせる第４のステップと、前記第４のステップにより計算された前記行、列、主対角及び副対角にそれぞれ位置する各記憶素子の記号の和のすべてが前記所定の和以下であると判定されたときには、前記魔方陣記憶用配列の最後の位置かどうか判定し、前記行、列、主対角及び副対角にそれぞれ位置する各記憶素子の記号の各和のどれか一つが前記所定の和より大きいと判定されたときには、前記第２のステップによる処理を行わせる第５のステップと、前記第５のステップにより前記魔方陣記憶用配列の最後の位置でないと判定されたときに、次の位置に配列順序で最初の記号を格納して、前記第４のステップによる処理を行わせる第６のステップと、前記第５のステップにより前記魔方陣記憶用配列の配列順序の最後の位置であると判定されたときに、前記行、列、主対角及び副対角にそれぞれ位置する各記憶素子の記号の各和のすべてが前記所定の和に一致するかどうか判定し、一致しないときは前記第２のステップの処理を再度行わせる第７のステップとからなる処理を順次に行い、前記第７のステップにより前記行、列、主対角及び副対角にそれぞれ位置する各記憶素子の記号の各和のすべてが前記所定の和に一致すると判定されたときの前記魔方陣記憶用配列に格納されている行列を、魔方陣として作成することを特徴とする魔方陣の作成装置。
【請求項７】
前記記憶素子に格納する記号が使用済みか未使用かを示す目印を設け、格納した記号は使用済みの目印を付け、格納しようとする記号は未使用の目印のある記号を、前記選択順序に従って格納することを特徴とする請求項１乃至６のうちいずれか一項記載の魔方陣の作成装置。
【請求項８】
前記演算部は、前記最初に格納される位置の前記記憶素子として、前記配列順序で先頭の位置の記憶素子を設定することを特徴とする請求項１、３又は４記載の魔方陣の作成装置。
【請求項９】
前記演算部は、前記第１のステップにより判定を行う前記最初の位置の前記記憶素子として、前記配列順序で最後の位置を設定することを特徴とする請求項２、５又は６記載の魔方陣の作成装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は魔方陣の作成装置に係り、特に暗号通信に使用される変換表やゲームなどに利用される魔方陣の作成装置に関する。
【０００２】
【従来の技術】
魔方陣は、正方行列に連続自然数を並べ、各行、各列、主対角線、副対角線に配列された配列要素の各値の和をすべて相等しくしたものをいう。例えば、３次の魔方陣は、図１４に示すように、９つの配列要素Ｅ１１、Ｅ１２、Ｅ１３、Ｅ２１、Ｅ２２、Ｅ２３、Ｅ３１、Ｅ３２及びＥ３３からなる３行３列の正方行列において、第１行の要素Ｅ１１、Ｅ１２及びＥ１３の和と、第２行の要素Ｅ２１、Ｅ２２及びＥ２３の和と、第３行の要素Ｅ３１、Ｅ３２及びＥ３３の和と、第１列の要素Ｅ１１、Ｅ２１及びＥ３１の和と、第２列の要素Ｅ１２、Ｅ２２及びＥ３２の和と、第３列の要素Ｅ３１、Ｅ３２及びＥ３３の和と、主対角線の要素（主対角要素）Ｅ１１、Ｅ２２及びＥ３３の和と、副対角線の要素（副対角要素）Ｅ１３、Ｅ２２及びＥ３１の和とがそれぞれ等しくされている。ここで、配列要素Ｅ１１〜Ｅ３３は連続自然数であり、互いに異なる自然数である。
【０００３】
１からｎ2までの連続自然数の要素からなるｎ次の魔方陣の各行、各列、主対角要素及び副対角要素の各々の和Ｓは互いに等しく、それぞれｎ（ｎ2＋１）／２となる。０からｎ2−１までの連続自然数の要素からなるｎ次の魔方陣の各行、各列、主対角要素及び副対角要素の各々の和Ｓは互いに等しく、それぞれ｛ｎ（ｎ2＋１）／２｝−ｎ＝ｎ（ｎ2−１）／２となる。
【０００４】
従って、例えば１から３2までの連続自然数の要素からなる３次の魔方陣は、図１５（ａ）に示され、各行、各列、主対角要素及び副対角要素の各々の和Ｓは互いに等しく、それぞれ「１５」であり、０から３2−１（＝８）までの連続自然数の要素からなる３次の魔方陣は、図１５（ｂ）に示され、各行、各列、主対角要素及び副対角要素の各々の和Ｓは互いに等しく、それぞれ「１２」である。
【０００５】
１から始まる連続自然数の魔方陣の個数の数え方は、回転、裏返し、あるいはそれらの組み合わせによって得られる方陣は、一般的には同一視される。１次の魔方陣の個数は要素が一つなので１個である。２次の魔方陣は存在せず、３次の魔方陣は１個のみ存在し、４次の魔方陣は８８０個、５次の魔方陣は２７５３０５２２４個存在するが、６次以上の魔方陣の数は知られていない。なお、本方式では、後述するように規則的な作成によりすべての魔方陣を作成するため、回転、裏返し、あるいはそれらの組み合わせによって得られるものを排除しないので、求まる魔方陣の個数は１次を除いた各々の次数において８倍の数となる。
【０００６】
このような魔方陣は、従来はそれぞれの次数において、異なった作成方法が用いられていた。更に、偶数次の場合と奇数次の場合とでも異なった作成方法用いられている。例えば、３次の魔方陣を作成するには、まず、図１６（ａ）に示すように、数字を斜めに順に配置し、次に同図（ｂ）に矢印で示す位置に方形の外に記述された数字を配置する。これにより、図１６（ｃ）に示す３次の魔方陣が完成する。
【０００７】
【発明が解決しようとする課題】
ところで、魔方陣は中国では西暦紀元前から知られていたといわれる。魔方陣に興味を持ち、研究する人たちは東洋西洋共に多く、大数学者でも例外ではなかった。フェルマーやオイラーやデュードニーのような人々も魔方陣の作成方法を研究した。日本では高木貞治も魔方陣・オイラー方陣の研究を行った。しかし、数学者やアマチュアの多くの努力にもかかわらず、６次以上の魔方陣に対してはすべての可能な方陣を作る方法を所有していなかったばかりか、多くの未解決の問題を持っており、このため魔方陣の利用範囲を狭めると共に、魔方陣の利用価値及び利用効果を高めることができないという問題があった。
【０００８】
本発明は以上の点に鑑みなされたもので、所望の次数の魔方陣を一定の手法に従って規則的に作成し得る魔方陣の作成装置を提供することを目的とする。
また、本発明の他の目的は、すべての可能な魔方陣を導出することにより、魔方陣の利用範囲を広げ、かつ、魔方陣の利用価値及び利用効果を飛躍的に高め得る魔方陣の作成装置を提供することにある。
【０００９】
【課題を解決するための手段】
上記の目的を達成するため、請求項１記載の発明に係る魔方陣作成装置は、連続自然数である互いに異なるｎ2個の記号を、ｎ行ｎ列の行列の各行、各列、主対角要素及び副対角要素の各和がそれぞれ相等しくなるように配列要素として設定した、次数ｎの魔方陣を作成する魔方陣作成装置であって、ｎ行ｎ列の全部でｎ2個の記憶素子を有し、記憶素子のそれぞれには、互いに異なるｎ2個の記号が重複を許すことなく格納される魔方陣記憶用配列と、魔方陣記憶用配列のｎ2個の記憶素子のうち、設定された位置の記憶素子を指定する指定手段と、指定手段により指定された位置の記憶素子から記憶記号を読み出す読み出し手段と、指定手段により指定された位置の記憶素子に、入力された記号を格納する設定手段と、読み出し手段により読み出した記号と入力された記号とを比較する記号比較手段と、魔方陣記憶用配列の各行ｎ個ずつの記憶素子に格納されている各行それぞれの記号の和と、魔方陣記憶用配列の各列ｎ個ずつの記憶素子に格納されている各列それぞれの記号の和と、魔方陣記憶用配列の主対角上のｎ個の記憶素子に格納されている記号の和と、魔方陣記憶用配列の副対角上のｎ個の記憶素子に格納されている記号の和とを、それぞれ格納する行・列・対角要素和記憶部と、作成しようとする魔方陣の次数ｎと、記号の選択順序と、魔方陣記憶用配列の記号が最初に格納される位置と、記号を魔方陣記憶用配列の行方向又は列方向に沿って配列する順序とがそれぞれ設定されると共に、次数ｎの魔方陣における各行、各列、主対角要素及び副対角要素の所定の和が設定され、記号比較手段からの比較結果を受けて、指定手段、読み出し手段、設定手段を制御して、行・列・対角要素和記憶部に格納された魔方陣記憶用配列の各行、各列、主対角要素、副対角の各記憶素子の各和が、設定された所定の和にそれぞれ等しくなるように、魔方陣記憶用配列にｎ2個の記号を格納させる演算部とを有する構成である。
ここで、請求項１記載の発明の演算部は、魔方陣記憶用配列の記号が最初に格納される位置として設定された記憶素子に、最初の値の記号を格納した後、配列する順序に従って記号を魔方陣記憶用配列の各記憶素子に格納し、その記憶素子にそれまでの記号と異なる記号を格納できないときは一つ前の位置の記憶素子に戻って、その位置の記憶素子に格納されている次の選択順序の記号から選択順序に従って、それまで格納されている記号と同一とならない記号を格納し、同一とならない記号を格納できたときは、次の位置に進んでそれまで格納されている記号と異なる記号を次の位置の記憶素子に格納する処理を繰り返して、選択順序に従って魔方陣記憶用配列の最後の位置の記憶素子まですべて異なる記号を配列し、魔方陣記憶用配列のすべての記憶素子に互いに異なる記号が格納され終わってから、魔方陣記憶用配列の各行、各列、主対角要素及び副対角要素の各和を計算して、行・列・対角要素和記憶部に格納する一連の処理を、行・列・対角要素和記憶部に格納された魔方陣記憶用配列の各行、各列、主対角、副対角の各記憶素子の各和が、設定された所定の和にそれぞれ等しくなるまで繰り返すことにより、魔方陣記憶用配列に魔方陣を作成することを特徴とする。
【００１０】
この発明では、第１のステップで作成する魔方陣の次数ｎを設定すると共に、この次数分の記号を順列及び順列に従った選択順序を定めて設定するが、この記号の選択順序とは、例えば次数ｎが４次で記号として１から始まる連続自然数を設定した場合、１−２−３−４−５−６−７−８−９−１０−１１−１２−１３−１４−１５−１６を順列（自然順列）とすると定めることであり、また、１→２→３→４→５→６→７→８→９→１０→１１→１２→１３→１４→１５→１６の順に選択することを定めることである。
【００１１】
魔方陣を構成する行列に設定される記号は特に限定されるものではなく、上記の例のほかに０から始まる連続自然数を設定することもできることは、図１５等と共に前述したとおりである。１から始まる連続自然数からなる魔方陣は、パズル等に使用される一般的な魔方陣である。０から始まる連続自然数からなる魔方陣は、ディジタル通信の変換表等に用いられる。
【００１２】
この発明では、選択順序に従って行列の最後の位置まですべて異なる記号を配置し終わってから、行列の各行、各列、主対角要素及び副対角要素の各和を計算して、それらの計算結果がそれぞれ第１のステップで計算した所定の各和と等しいかどうか判定し、等しい場合は魔方陣として採用し、等しくない場合は最後の位置から次の順位の記号を置いていき、置けるものがない場合は、置ける位置まで遡って記号の配置を行って、行列の最後の位置まで記号を配置したときに再び上記の各和を計算して、上記の所定の各和と比較する処理を繰り返すことにより、魔方陣を規則的に作成することができる。
【００１３】
また、請求項２記載の発明に係る魔方陣作成装置では、上記の目的を達成するため、魔方陣記憶用配列に既存の魔方陣を設定する第１のステップと、既存の魔方陣の記号が最初に格納される位置又は指定された位置の記憶素子に格納された記号が選択順序の最後の記号であるか判定し、最後の記号であるときは一つ前の位置に戻してその位置の記憶素子に格納されている記号が最後の記号かどうか判定する第２のステップと、最後の記号でないと判定された記号の位置の記憶素子に格納されている次の選択順序の記号から選択順序に従って、それまで格納されている記号と同一とならない記号を記憶素子に格納し、同一とならない記号を格納できたときは、次の位置に進んでそれまで格納されている記号と同一とならない記号を次の位置の記憶素子に格納する動作を繰り返し、同一とならない記号を格納できないときは、第２のステップによる処理を再度行わせる第３のステップと、第３のステップにより魔方陣記憶用配列のすべての記憶素子に互いに異なる記号が格納され終わってから、魔方陣記憶用配列の各行、各列、主対角要素及び副対角要素の各和を計算して、行・列・対角要素和記憶部に格納し、行・列・対角要素和記憶部に格納された魔方陣記憶用配列の各行、各列、主対角、副対角の各記憶素子の各和が、設定された所定の和にそれぞれ等しいかどうか判定し、等しくない判定結果が得られたときには、第２及び第３のステップによる処理を再度行わせる第４のステップの各処理を、行・列・対角要素和記憶部に格納された魔方陣記憶用配列の各行、各列、主対角、副対角の各記憶素子の各和が、設定された所定の和にそれぞれ等しくなるまで行うことにより、魔方陣記憶用配列に魔方陣を作成することを特徴とする。この発明では、既存の魔方陣から同一の次数の魔方陣を作成することができる。
【００１４】
また、上記の目的を達成するため、請求項３記載の発明は請求項１記載の発明が行列のすべての位置に互いに異なる記号が配置され終わってから、ｎ行ｎ列の行列の各行、各列、主対角要素及び副対角要素の各和を計算して、それらの計算結果がそれぞれ第１のステップで計算した各和と等しいかどうか判定していたものを、各行、各列あるいは各対角要素のいずれかの位置に記号が配置された時点で、上記所定の和に等しいかどうか判定し、等しくなるまで請求項１記載の発明と同様の処理を行うようにしたものである。
【００１５】
また、上記の目的を達成するため、請求項４記載の発明は、請求項３記載の発明が各行、各列あるいは各対角要素のいずれかの位置に記号が配置された時点で、上記所定の和に等しいかどうか判定していたものを、記号を配置する毎にその行あるいはその列のそこまでの和、更には記号を配置する位置が主対角上の位置であれば主対角要素の和、副対角上の位置であれば副対角要素の和を計算し、その計算した和が作成しようとする魔方陣の次数と記号により定まる所定の和の値以下かどうかそれぞれ判定し、計算した和のどれか一つでも上記の所定の和の値よりも大きいときには、再度他に配置された記号と異なる記号を配置する処理を行い、計算した和のすべてが上記の所定の和の値以下であるときには、各行、各列及び主対角要素と副対角要素のそれぞれが上記の所定の和と一致するか判定し、一致したときにその行列を魔方陣として採用するようにしたものである。この発明では、各行、各列、各対角要素のいずれも記号が配置されなくても、記号を配置する毎により確からしい記号を配置することができる。
【００１６】
また、上記の目的を達成するため、請求項５記載の発明は請求項２記載の発明が、既存の魔方陣のすべての位置に互いに異なる記号が配置され終わってから、ｎ行ｎ列の行列の各行、各列、主対角要素及び副対角要素の各和を計算して、それらの計算結果がそれぞれ第１のステップで計算した各和と等しいかどうか判定していたものを、各行、各列あるいは各対角要素のいずれかの位置に記号が配置された時点で、上記所定の和に等しいかどうか判定し、等しくなるまで請求項１記載の発明と同様の処理を行うようにしたものである。
【００１７】
また、上記の目的を達成するため、請求項６記載の発明は、請求項５記載の発明が既存の魔方陣の各行、各列あるいは各対角要素のいずれかの位置に記号が配置された時点で、上記所定の和に等しいかどうか判定したものを、記号を配置する毎にその行あるいはその列のそこまでの和、更には記号を配置する位置が主対角上の位置であれば主対角要素の和、副対角上の位置であれば副対角要素の和を計算し、その計算した和が作成しようとする魔方陣の次数と記号により定まる所定の和の値以下かどうかそれぞれ判定し、計算した和のどれか一つでも上記の所定の和の値よりも大きいときには、再度他に配置された記号と異なる記号を配置する処理を行い、計算した和のすべてが上記の所定の和の値以下であるときには、各行、各列及び主対角要素と副対角要素のそれぞれが上記の所定の和と一致するか判定し、一致したときにその行列を魔方陣として採用するようにしたものである。この発明では、各行、各列、各対角要素のいずれも記号が配置されなくても、既存の魔方陣に別の記号を配置する毎により確からしい記号を配置することができる。
【００１８】
また、上記の目的を達成するため、請求項７記載の発明は、配置する記号が使用済みか未使用かを示す目印を設け、配置した記号は使用済みの目印を付け、配置しようとする記号は未使用の目印のある記号を、選択順序に従って配置することを特徴とする。この発明では、配置できる記号がなく、記号を配置する位置を一つ前の位置に遡ったときに、記号が使用済みから未使用に戻った場合には、未使用である目印からその前の位置で使用されているかどうかの判定が不要となり、未使用の記号のみを迅速に配置できる。
【００１９】
また、上記の目的を達成するため、請求項８及び９記載の発明は、最初に記号を配置する位置を特定したものである。これにより、魔方陣を効率良く作成することができる。
【００２０】
【発明の実施の形態】
次に、本発明の実施の形態について図面と共に説明する。なお、以下の説明においては、説明の便宜上、次数ｎを３とし、記号ｍは１から始まる９個の自然数（１，２，３，４，５，６，７，８，９）とし、その順列及び選択順は自然順列の通りとする。
【００２１】
図１は本発明になる魔方陣の作成方法の第１の実施の形態のフローチャート、図２は図１の実施の形態により作成される魔方陣の作成手順例の途中過程を示す図である。この魔方陣の作成方法について説明する前に、魔方陣の作成方法を実現する本発明になる魔方陣作成装置の一実施の形態の構成について、図３のブロック図と共に説明する。同図において、演算部１は、ソフトウェア的に演算処理を実行する他に、次数ｎ、記号ｍ、記号ｍの順列と選択順、最初に配置要素ＥIJを選択決定する順序、そして本実施の形態で作成される既存の魔方陣のそれぞれの設定を行う回路部で、この演算部１は予め定められた制御プログラムに従って各種の演算の実行を行い、作成する魔方陣Ｍのデータの行列位置の指定と比較判断及び設定、読み取りを行う。
【００２２】
上記の作成する魔方陣Ｍは、次数がｎの場合は図４に示すように、ｎ行ｎ列からなり、Ｉ行Ｊ列の位置はＫIJで表され、その位置ＫIJに配列される配列要素（記号ｍ）はＥIJで表される。図３中の魔方陣記憶用配列９は、ｎ次の魔方陣を作成するときには、図４に示した魔方陣Ｍと同様にｎ行ｎ列の、全部でｎ2個の配列子（記憶素子）からなり、そのうちのＩ行Ｊ列の位置ＫIJの配列子は９IJで表される。ここで、各配列子９IJは、それぞれ１つの記号ｍを記憶する。なお、前記したように、ここではｎ＝３である。
【００２３】
図３の行位置設定用記憶部２は、演算部１の出力信号に基づいて選択決定される記号ｍの行位置を、魔方陣記憶用配列９に対して指定する。列位置設定用記憶部３は、演算部１の出力信号に基づいて選択決定される記号ｍの列位置を、魔方陣記憶用配列９に対して指定する。行位置比較用記憶部４は、演算部１の出力信号に基づいて選択決定される記号ｍと比較される記号ｍ'の行位置を、また、列位置比較用記憶部５は、演算部１の出力信号に基づいて選択決定される記号ｍと比較される記号ｍ'の列位置を、それぞれ魔方陣記憶用配列９に対して指定する。
【００２４】
また、設定用記号記憶部６は、演算部１の出力信号に基づいて選択決定される記号ｍを記憶したり、魔方陣記憶用配列９からの記号ｍを記憶する。比較用記号記憶部７は、魔方陣記憶用配列９から読み出された、比較される記号ｍ'を記憶する。記号比較部８は、設定用記号記憶部６に記憶された、演算部１により設定された記号ｍと、比較用記号記憶部７に記憶された、比較される記号ｍ'とを比較し、その比較結果を演算部１へ出力する。更に、行・列・対角要素和記憶部１０は、魔方陣記憶用配列９の各行毎の配列要素の和と、各列毎の配列要素の和と、主対角要素の和と、副対角要素の和のそれぞれを記憶する。
【００２５】
次に、上記の魔方陣作成装置を用いて作成される本発明の魔方陣作成方法の第１の実施の形態について図１乃至図５と共に説明する。まず、演算部１に対して、次数ｎ、記号ｍ、記号ｍの順列と選択順をそれぞれ設定し、各行、各列、各対角要素の和を計算する（図１のステップＳ１）。ここでは、前述したように、次数ｎは３であり、また、記号ｍは１から始まる自然数（１，２，３，４，５，６，７，８，９）とし、その順列及び選択順は自然順列の通りとするが、この記号ｍの順列及び順列に従った選択順とは、１−２−３−４−５−６−７−８−９を順列（自然順列）とすると定めることであり、また、１→２→３→４→５→６→７→８→９の順に選択することを定めることである。また、上記の和は前述したように「１５」である。
【００２６】
続いて、演算部１に対して、最初に配置要素ＥIJを選択決定する位置ＫIJ、配列要素ＥIJを選択決定する順序を設定する（図１のステップＳ２）。この配列要素ＥIJを選択決定する順序には、図５（ａ）に矢印で示すように、１行１列、１行２列、．．．、３行２列、３行３列という順序の列方向と、図５（ｂ）に矢印で示すように、１行１列、２行１列、．．．、２行３列、３行３列という順序の行方向とがある。ここでは列方向を設定するものとする。また、最初に配置要素ＥIJを選択決定する位置ＫIJは、先頭の位置Ｋ11である。
【００２７】
続いて、演算部１が行位置設定用記憶部２と列位置設定用記憶部３に魔方陣記憶用配列９の最初の位置Ｋ11を指定して、設定用記号記憶部６を介して最初の記号の値「１」を設定する（図１のステップＳ３）。これにより、魔方陣記憶用配列９の記憶内容は図２（ａ）に示すようになる。
【００２８】
続いて、設定した記号の位置は最後の位置かどうか判定し（図１のステップＳ４）、ここでは最後の位置ではないので、次の位置Ｋ12を指定して、最初の記号の値、すなわち「１」を設定用記号記憶部６に設定する（図１のステップＳ５）。次に、いま設定用記号記憶部６に設定した記号が使用済みかどうか比較用記号記憶部７から読み出した、現在よりも前の位置Ｋ11の記号の値「１」と記号比較部８で比較し（図１のステップＳ６）、演算部１は記号比較部８から一致の比較結果を受け、使用済みと判断して（図１のステップＳ７）、その記号の値が最後の値かどうかチェックする（図１のステップＳ８）。
【００２９】
ここでは最後の値、すなわち「９」ではないので、演算部１が行位置設定用記憶部２と列位置設定用記憶部３に魔方陣記憶用配列９の位置Ｋ12を指定して、設定用記号記憶部６を介して次の記号の値「２」を設定する（図１のステップＳ９）。これにより、魔方陣記憶用配列９の記憶内容は図２（ｂ）に示すようになる。次に、再び演算部１は、いま設定用記号記憶部６に設定した記号の値「２」が使用済みかどうか、比較用記号記憶部７から読み出した、現在よりも前の位置Ｋ11の記号の値「１」と記号比較部８で比較し（図１のステップＳ６）、演算部１は記号比較部８から不一致の比較結果を受け、使用済みでないと判断して（図１のステップＳ７）、ステップＳ４に戻り、その記号の位置が行列の最後の位置かどうかチェックする。
【００３０】
演算部１は以下、上記と同様の動作を行列の最後の位置に記号を設定するまで繰り返す。これにより、魔方陣記憶用配列９の記憶内容は、図２（ｃ）→（ｄ）→（ｅ）に示すように推移する（途中省略）。ステップＳ４で行列の最後の位置であると判定すると、次に魔方陣記憶用配列９の各行、各列、各対角要素の和をそれぞれ行・列・対角要素和記憶部１０から求め（図１のステップＳ１０）、その各和がステップＳ１で計算した和（ここでは「１５」）とすべて等しいかどうか判定する（図１のステップＳ１１）。図２（ｅ）の状態では上記の各和は「１５」に等しくないので、最後の位置の値が最後の値であるかどうか判定する（図１のステップＳ８）。
【００３１】
図２（ｅ）の最後の位置の値「９」は最後の値、すなわち「９」と等しいので、先頭の位置かどうか判定し（図１のステップＳ１２）、先頭の位置ではないので、一つ前の位置Ｋ32に戻し（図１のステップＳ１３）、その位置Ｋ32の記号が最後の値かどうか判定し（図１のステップＳ８）、その位置Ｋ32の記号「８」は最後の値ではないので、次の値「９」を設定する（図２のステップＳ９）。演算部１が行位置設定用記憶部２と列位置設定用記憶部３に魔方陣記憶用配列９の位置Ｋ32を指定して、設定用記号記憶部６を介して次の記号の値「９」を設定する（図１のステップＳ９）。これにより、魔方陣記憶用配列９の記憶内容は図２（ｆ）に示すようになる。
【００３２】
次に、演算部１は、いま設定用記号記憶部６に設定した記号の値「９」が使用済みかどうか、比較用記号記憶部７から読み出した、現在よりも前の位置Ｋ11〜Ｋ31の各値と記号比較部８で比較し（図１のステップＳ６）、演算部１は記号比較部８から不一致の比較結果を受け、使用済みでないと判断して（図１のステップＳ７）、ステップＳ４に戻り、その記号の位置が行列の最後の位置かどうかチェックする。位置Ｋ32は行列の最後の位置ではないので、次の位置Ｋ33を指定して、最初の記号の値、すなわち「１」を設定用記号記憶部６に設定する（図１のステップＳ５）。
【００３３】
続いて、ステップＳ６、Ｓ７、Ｓ８、Ｓ９の処理を繰り返して、前の位置Ｋ11〜Ｋ32で使用済みでない記号「８」を位置Ｋ33に設定する。これにより、魔方陣記憶用配列９の記憶内容は図２（ｇ）に示すようになる。続いて、ステップＳ４で行列の最後の位置であると判定されるため、次に各行、各列、各対角要素の和をそれぞれ行・列・対角要素和記憶部１０から求め（図１のステップＳ１０）、その各和がステップＳ１で計算した和（ここでは「１５」）とすべて等しいかどうか判定し（図１のステップＳ１１）、図２（ｇ）の状態では上記の各和は「１５」に等しくないので、最後の位置の値が最後の値であるかどうか判定し（図１のステップＳ８）、最後の値でないとの判定結果を得る。
【００３４】
以下、演算部１は、ステップＳ９、Ｓ６、Ｓ７、Ｓ８の処理を繰り返し、最後の値に設定しても使用済みであるときには、ステップＳ１２、Ｓ１３、Ｓ８を経て一つ前の位置Ｋ32にてその位置の値が最後の値かどうか判定し、最後の値でないときには、更にステップＳ９、Ｓ６、Ｓ７、Ｓ８の処理を繰り返し、最後の値に設定しても使用済みであるときには、ステップＳ１２、Ｓ１３、Ｓ８を経て更に一つ前の位置Ｋ31にてその位置の値が最後の値かどうか判定する。位置Ｋ31の値は「７」であるので、最後の値でないので、次の値「８」を魔方陣記憶用配列９に設定する（図１のステップＳ９）。これにより、魔方陣記憶用配列９の記憶内容は図２（ｈ）に示すようになる。
【００３５】
以下、演算部１は、上記と同様の動作を行うことにより、魔方陣記憶用配列９の記憶内容は、図２（ｉ）→（ｊ）→（ｋ）→（ｌ）と推移していき、最後に図２（ｍ）に示すように、最後の位置に他の位置で使用していない「８」を設定することにより、各行、各列、各対角要素の値がすべてステップＳ１で計算した「１５」と等しくなるため、ステップＳ１１で各和がＯＫであるとの判定結果を得て、魔方陣の作成を終了する（図１のステップＳ１４）。
【００３６】
なお、ステップＳ８で最後の値と判定され、続いてステップＳ１２で先頭の位置と判定されたときには、設定できる要素をすべて書き尽くしたことになるので、魔方陣が存在しないと判断して終了する（図１のステップＳ１５）。このように、この実施の形態では、３次の魔方陣を規則的に、簡単、かつ、確実に作成することができる。
【００３７】
次に、本発明の第２の実施の形態について説明する。図６は本発明になる魔方陣作成方法の第２の実施の形態のフローチャートを示す。同図中、図１と同一処理部分には同一符号を付してある。この実施の形態は、既存の魔方陣Ｍ′から同じ次数の新たな別の魔方陣を作成する点に特徴がある。図６の実施の形態の動作について、図３及び図７を併せ参照して説明する。
【００３８】
まず、演算部１に対して、次数ｎ、記号ｍ、記ｍの順列と選択順をそれぞれ設定し、各行、各列、各対角要素の和を計算する（図６のステップＳ１）。ここでは、前述したように、次数ｎは３であり、また、記号ｍは１から始まる自然数（１，２，３，４，５，６，７，８，９）とする。
【００３９】
続いて、演算部１に対して、最初に配置要素ＥIJを選択決定する位置ＫIJ、配列要素ＥIJを選択決定する順序を設定する（図６のステップＳ２１）。この配列要素ＥIJを選択決定する順序として、ここでは列方向を設定するものとする。また、最初に配置要素ＥIJを選択決定する位置ＫIJは、最後の位置Ｋ33である。次に、演算部１が行位置設定用記憶部２と列位置設定用記憶部３に魔方陣記憶用配列９のすべての位置を指定して、設定用記号記憶部６を介して既存の魔方陣Ｍ′を魔方陣記憶用配列９の各配列子に設定する（図６のステップＳ２２）。ここでは、既存の魔方陣Ｍ′として、第１の実施の形態で作成した図２（ｍ）で示した魔方陣を用いるものとする。これにより、魔方陣記憶用配列９の記憶内容は図７（ａ）に示すようになる。
【００４０】
次に、演算部１は、最初に記号を設定する位置として設定された行列の最後の位置Ｋ33に設定されている記号は、最後の値かどうか判定する（図６のステップＳ５）。ここでは、「８」が設定されているので、最後の値ではないと判定され、次の値「９」を設定する（図６のステップＳ９）。続いて、次に、いま設定用記号記憶部６に設定した記号が使用済みかどうか比較用記号記憶部７から読み出した、現在よりも前の位置Ｋ11〜Ｋ32の記号と記号比較部８で比較し（図６のステップＳ６）、演算部１は記号比較部８から一致の比較結果を受け、使用済みと判断して（図６のステップＳ７）、その記号の値が最後の値かどうかチェックする（図６のステップＳ８）。
【００４１】
ここでは設定された記号は最後の値、すなわち「９」であるので、設定されたその記号の位置が最初の位置かどうか判定する（図６のステップＳ１２）。ここでは最後の位置であるから、最初の位置でないと判定され、一つ前の位置に戻し（図６のステップＳ１３）、位置Ｋ32の記号が最後の値かどうか判定する（図６のステップＳ８）。位置Ｋ32の記号は図７（ａ）に示したように「３」であるので、最後の値でないと判定され、次の値（ここでは「４」）に設定用記号記憶部６に設定する（図１のステップＳ５）。
【００４２】
次に、いま設定用記号記憶部６に設定した記号が使用済みかどうか比較用記号記憶部７から読み出した、現在よりも前の位置の記号の値と記号比較部８で比較し（図６のステップＳ６）、演算部１は記号比較部８から一致の比較結果を受け、使用済みと判断して（図６のステップＳ７）、その記号の値が最後の値かどうかチェックする（図６のステップＳ８）。ここでは記号の値は「４」であり、最後の値、すなわち「９」ではないので、演算部１が行位置設定用記憶部２と列位置設定用記憶部３に魔方陣記憶用配列９の位置Ｋ32を指定して、設定用記号記憶部６を介して次の記号の値「５」を設定する（図１のステップＳ９）。以下、ステップＳ６、Ｓ７、Ｓ８、Ｓ９の動作を繰り返し、「８」を設定した時点で使用済みでないとステップＳ７で判定される。これにより、魔方陣記憶用配列９の記憶内容は図７（ｂ）に示すようになる。
【００４３】
次に、演算部１は、いま記号を設定した位置が行列の最後の位置Ｋ33かどうか判定する（図６のステップＳ２３）。ここでは、最後の位置ではないので、演算部１が行位置設定用記憶部２と列位置設定用記憶部３に魔方陣記憶用配列９の次の位置Ｋ33を指定して、設定用記号記憶部６を介して最初の記号の値「１」を設定する（図６のステップＳ２４）。続いて、その位置Ｋ３３での記号が他の位置で使用していない記号となるまで、演算部１はステップＳ６、Ｓ７、Ｓ８、Ｓ９の動作を繰り返し、「３」を設定した時点で他の位置で使用していないとステップＳ７で判定される。これにより、魔方陣記憶用配列９の記憶内容は図７（ｃ）に示すようになる。
【００４４】
続いて、演算部１は、いま記号を設定した位置が行列の最後の位置Ｋ33かどうか判定する（図６のステップＳ２３）。ここでは、最後の位置であるので、各行、各列、各対角要素の和をそれぞれ行・列・対角要素和記憶部１０から求め（図６のステップＳ２５）、その各和がステップＳ１で計算した和（ここでは「１５」）とすべて等しいかどうか判定し（図１のステップＳ２６）、図７（ｃ）の状態では上記の各和は「１５」に等しくないので、最後の位置の値が最後の値であるかどうか判定し（図６のステップＳ８）、最後の値でないとの判定結果を得る。
【００４５】
以下、演算部１は、ステップＳ９、Ｓ６、Ｓ７、Ｓ８の処理を繰り返し、最後の値に設定しても使用済みであるときには、ステップＳ１２、Ｓ１３、Ｓ８を経て一つ前の位置Ｋ32にてその位置の値が最後の値かどうか判定し、最後の値でないときには、更にステップＳ９、Ｓ６、Ｓ７、Ｓ８の処理を繰り返し、最後の値に設定しても使用済みであるときには、ステップＳ１２、Ｓ１３、Ｓ８を経て更に一つ前の位置Ｋ31にてその位置の値が最後の値かどうか判定する。位置Ｋ31の値は「４」であるので、最後の値でないので、次の値「５」を魔方陣記憶用配列９に設定する（図６のステップＳ９）。上記と同様の動作を繰り返すことにより、位置Ｋ31に「８」が設定され、魔方陣記憶用配列９の記憶内容は図６（ｄ）に示すようになる。
【００４６】
その後、上記と同様の動作を、行列の最後の位置に記号を設定するまで繰り返す。これにより、魔方陣記憶用配列９の記憶内容が図７（ｅ）に示すようになった時点で（途中省略）、ステップＳ２３で行列の最後の位置であると判定され、次に魔方陣記憶用配列９の各行、各列、各対角要素の和をそれぞれ行・列・対角要素和記憶部１０から求め（図６のステップＳ２５）、その各和がステップＳ１で計算した和（ここでは「１５」）とすべて等しいかどうか判定し（図６のステップＳ２６）、すべて等しいと判定されるため、魔方陣の作成を終了する（図６のステップＳ２７）。
【００４７】
なお、ステップＳ８で最後の値と判定され、続いてステップＳ１２で先頭の位置と判定されたときには、設定できる要素をすべて書き尽くしたことになるので、魔方陣が存在しないと判断して終了する（図６のステップＳ１５）。このように、この実施の形態では、第１の実施の形態と同様の特長を有し、それに加えて既存の魔方陣から別の３次の魔方陣を規則的に、簡単、かつ、確実に作成することができるため、魔方陣の利用範囲を広げ、魔方陣の利用価値及び利用効果を飛躍的に高めることができる。
【００４８】
次に、本発明の第３の実施の形態について図８及び図９のフローチャートと共に説明する。両図中、図１と同一処理ステップには同一符号を付し、その説明を省略する。この実施の形態は、魔方陣を最初から作成する点で第１の実施の形態と同様であるが、第１の実施の形態では魔方陣記憶用配列９のすべての配列子に配列要素を配置してから各行、各列、各対角要素のそれぞれの和が所定値になったかどうか判定し、所定値でないときには再び配列要素を配置する位置を遡るようにしているが、この実施の形態では各行、各列あるいは各対角要素に配列要素を配置した時点でその和が所定値であるかどうか判定することで、処理時間をより高速化したものである。
【００４９】
図８において、演算部１はステップＳ３にて最初の位置に最初の値（記号）を設定してから、列の最後の位置かどうか判定する（図８のステップＳ３１）。この最初の時点では列の最後の位置でないので、行の最後の位置かどうか判定する（図８のステップＳ３４）。最初は行の最後の位置でもないので、主対角の最後の位置かどうか判定する（図８のステップＳ３７）。最初は主対角の最後の位置でもないので、更に副対角の最後の位置かどうか判定する（図９のステップＳ４０）。最初の時点では副対角の最後の位置でもないので、行列の最後の位置かどうか判定する（図９のステップＳ４４）。最初の値を最初の位置（１行１列目）に設定しているので、行列の最後の位置でもないので、次の位置に最初の値を設定する（図９のステップＳ５）。
【００５０】
以下、演算部１は上記と同様の動作により、列方向に記号を配置する場合は１行目に最初の値から始まる連続自然数を、魔方陣記憶用配列９に順番に設定していく。行方向に記号を配置する場合は１列目に最初の値から始まる連続自然数を、魔方陣記憶用配列９に順番に設定していく。列方向に記号を配置するものとすると、図２（ｃ）に示す記憶状態となった時点で、図８のステップＳ３１で列の最後の位置であると判定されるので、その行、すなわち第１行の和を計算し（図８のステップＳ３２）、その和がステップＳ１で計算した、作成しようとする魔方陣の次数において所定の値（例えば、前述した３次の魔方陣で、１から始まる連続自然数を配置するときは「１５」）に一致するかどうか判定する（図８のステップＳ３３）。図２（ｃ）に示した記憶状態では上記の計算した行の和は所定値と一致しない。
【００５１】
この場合は、図９のステップＳ４３に進んで、計算した和が所定の和（前記所定値）よりも小さいかどうか判定する。この時点では上記の計算した行の和は所定値よりも小さい。このときは、列の最後の位置に設定した記号（図２（ｃ）の例では「３」）が最後の値かどうか判定し（図９のステップＳ８）、最後の値でないので次の値を設定する（図９のステップＳ９）。以下、演算部１は３次の魔方陣の作成時は、１行３列目に次の記号を設定する毎にその行の和を計算し、その和が所定値に一致するかどうか判定するが（図９のステップＳ６、Ｓ７、図８のステップＳ３１、Ｓ３２、Ｓ３３、図８のステップＳ４３）、最後の値「９」となっても一致しないので、先頭の位置でないことを確認して一つ前の位置に戻す（図９のステップＳ１２、Ｓ１３）。
【００５２】
そして、その位置、つまり１行２列目Ｋ12で再びその位置に配置されている記号の次の値の記号を配置してから、１行３列目の位置Ｋ13に進んで同じ行で使用されていない記号を設定する毎にその行の和を計算し、その和が所定値に一致するかどうか判定する。以下、上記と同様の動作を繰り返すことにより、最終的に１行目に配置した記号の和が所定値に一致する。
【００５３】
１行目の和が所定値に一致すると、演算部１は２行目についても上記と同様の動作を行い、２行目の和を所定値に一致させる。続いて、３行目の第１列Ｋ31に記号が配置されるが、このとき副対角線の記号がすべて配置されるので、副対角線の最後の位置であると判定され（図９のステップＳ４０）、副対角要素の和が計算され（図９のステップＳ４１）、その和が所定値と一致するかどうか判定される（図９のステップＳ４２）。副対角要素の和が所定値に一致しない場合は、第３行第１列の位置Ｋ31に他の記号で使用していない記号を最後の値になるまで、あるいは所定値以上になるまで変化させていく途中で副対角要素の和が所定値に一致すれば、その位置Ｋ31にその記号を配置してから次の位置Ｋ32に進むが、一致しなければ一つ前の位置Ｋ23に戻って上記と同様の動作を再び繰り返す。
【００５４】
このように、この実施の形態では各行、各列あるいは各対角要素に配列要素を配置した時点でその和が所定値であるかどうか判定することで、処理時間をより高速化することができる。
【００５５】
次に、本発明の第４の実施の形態について図１０及び図１１のフローチャートと共に説明する。両図中、図６と同一処理ステップには同一符号を付し、その説明を省略する。この実施の形態は、既存の魔方陣から同じ次数の別の魔方陣を作成する点で第２の実施の形態と同様であるが、第２の実施の形態では魔方陣記憶用配列９のすべての配列子に配列要素を配置してから各行、各列、各対角要素のそれぞれの和が所定値になったかどうか判定し、所定値でないときには再び配列要素を配置する位置を遡るようにしているが、この実施の形態では各行、各列あるいは各対角要素に配列要素を配置した時点でその和が所定値であるかどうか判定することで、処理時間をより高速化したものである。
【００５６】
図１０において、演算部１は既存の魔方陣の最初に記号を設定する位置として設定された行列の最後の位置の記号が最後の値かどうか判定し（図１０のステップＳ８）、最後の値であれば一つ前の位置に戻して、最後の値でなければ位置を戻すことなく、その位置の記号の次の値以降で他に使用されていない記号を配置するが、配置できないときは一つ前の位置に戻して同様の動作を行う（図１０のステップＳ９、Ｓ６、Ｓ７、Ｓ８、Ｓ１２、Ｓ１３）。
【００５７】
使用済みでない記号を配置できたときは、列の最後の位置かどうか判定し（図１０のステップＳ３１）、列の最後の位置であれば、その位置と同じ行の和を計算して所定値と一致するかどうか判定し（図１０のステップＳ３２、Ｓ３３）、行の最後の位置であれば、その位置と同じ列の和を計算して所定値と一致するかどうか判定する（図１１のステップＳ３４、Ｓ３５、Ｓ３６）。主対角要素、副対角要素の位置であれば、同様に主対角要素の和、副対角要素の和が所定値と一致するかどうか判定する（図１１のステップＳ３７〜Ｓ４２）。
【００５８】
上記の和のどれか一つでも所定値と一致しなければ、その和が所定値より小さいかどうか判定し（図１１のステップＳ４３）、小さければ、最後に配置した位置の記号が最後の値となるまでのうち他の記号と異なる記号を配置して上記と同様の動作を行う（図１０のステップＳ８、Ｓ９、Ｓ６、Ｓ７、Ｓ３１〜Ｓ３３、図１１のステップＳ３４〜Ｓ４３）。最後の値となっても記号を配置できないときは一つ前の位置に戻して再び上記と同様の動作を行う（図１０のステップＳ１２、Ｓ１３）。
【００５９】
上記のステップＳ４３で上記の和が所定値以上であると判定されれば、その記号の位置が最初の位置の位置かどうか判定し、最初の位置であればすべての処理が終わっても配置できる記号がなかったので、魔方陣が存在しないとして処理を終了し（図１０のステップＳ１５）、最初の位置でなければ一つ前の位置に戻して再び上記と同様の動作を行う（図１０のステップＳ１２、Ｓ１３、Ｓ８、Ｓ９、Ｓ６、Ｓ７、Ｓ３１〜Ｓ３３、図１１のステップＳ３４〜Ｓ４３）。行列の最後の位置まで記号を配置した状態で各行、各列、各対角要素のすべてが所定値と一致した時に、魔方陣が完了する（図１１のステップＳ４４、Ｓ４５）。このように、この実施の形態では各行、各列あるいは各対角要素に配列要素を配置した時点でその和が所定値であるかどうか判定することで、処理時間をより高速化することができる。
【００６０】
次に、本発明の第５の実施の形態について図１２のフローチャートと共に説明する。同図中、図１と同一処理ステップには同一符号を付し、その説明を省略する。この実施の形態は、魔方陣を最初から作成する点で第１及び第３の実施の形態と同様であるが、第３の実施の形態では魔方陣記憶用配列９の各行、各列あるいは各対角要素に配列要素を配置した時点でその和が所定値であるかどうか判定しているが、この実施の形態では記号を配置する毎に各行、各列あるいは各対角要素に配列要素を配置した時点でその和が所定値であるかどうか判定することで、処理時間を更に高速化したものである。
【００６１】
図１２において、演算部１は最初の値を行列の最初の位置に設定した後、その行のそこまでの和、その列のそこまでの和、その位置が主対角上であれば主対角のそこまでの和、副対角上であれば副対角のそこまでの和をそれぞれ計算し、それらの計算結果のどれか一つでもステップＳ１で計算した、作成しようとする魔方陣に定められた各行、各列、各対角要素の各和の所定値よりも大きいかどうか判定する（図１２のステップＳ５１〜Ｓ６０）。
【００６２】
最初の値を行列の最初の位置に設定した時には、上記の和はすべて上記の所定値以下であるので、このときには行列の最後の位置かどうか判定し（図１２のステップＳ６１）、行列の最後の位置ではないので次の位置（列方向に作成するときはＫ12、行方向に作成するときはＫ21）に、使用されていない値の記号を設定する（図１２のステップＳ５〜Ｓ９）。そして、再び演算部１は、その行のそこまでの和、その列のそこまでの和、その位置が主対角上であれば主対角のそこまでの和、副対角上であれば副対角のそこまでの和をそれぞれ計算し、それらの計算結果のどれか一つでも各和の所定値よりも大きいかどうか判定する（図１２のステップＳ５１〜Ｓ６０）が、上記の和はすべて上記の所定値以下であるので、再び次の位置（列方向に作成するときはＫ13、行方向に作成するときはＫ31）に、使用されていない値の記号を設定する（図１２のステップＳ５〜Ｓ９）。
【００６３】
以下、上記と同様にして記号を設定する毎にその行のそこまでの和、その列のそこまでの和、その位置が主対角上であれば主対角のそこまでの和、副対角上であれば副対角のそこまでの和をそれぞれ計算し、それらの計算結果のどれか一つでも各和の所定値よりも大きいかどうか判定する（図１２のステップＳ５１〜Ｓ６０）。上記の計算結果のどれか一つが各和の所定値よりも大きくなったときには、その位置が先頭でないことを確認して、一つ前の位置に戻して使用済みでない次の値を設定する（図１２のステップＳ１２、Ｓ１３、Ｓ８、Ｓ９、Ｓ６、Ｓ７）。
【００６４】
以下、上記と同様にして最後の位置まで記号を設定した段階で、その行のそこまでの和、その列のそこまでの和、主対角のそこまでの和、副対角のそこまでの和をそれぞれ計算し、それらの計算結果のすべてが所定値以下であるときは、各行、各列、主対角要素と副対角要素の各和が所定値とそれぞれ一致するかどうか判定し、一致したときに魔方陣の作成を完了する（図１２のステップＳ５１〜Ｓ６１、Ｓ１０、Ｓ１１、Ｓ１４）。
【００６５】
次に、本発明の第６の実施の形態について図１３のフローチャートと共に説明する。同図中、図６、図１２と同一処理ステップには同一符号を付してある。この実施の形態は、既存の魔方陣から同じ次数の別の魔方陣を作成する点で第２及び第４の実施の形態と同様であるが、第４の実施の形態では魔方陣記憶用配列９の各行、各列あるいは各対角要素に配列要素を配置した時点でその和が所定値であるかどうか判定しているが、この実施の形態では記号を配置する毎に各行、各列あるいは各対角要素に配列要素を配置した時点でその和が所定値であるかどうか判定することで、処理時間を更に高速化したものである。
【００６６】
図１３において、演算部１は既存の魔方陣の最初に記号を設定する位置として設定された行列の最後の位置の記号が最後の値かどうか判定し（図１３のステップＳ８）、最後の値であれば一つ前の位置に戻して、最後の値でなければ位置を戻すことなく、その位置の記号の次の値以降で他に使用されていない記号を配置するが、最後の位置の記号の次の値以降で他に使用されていない記号は最初の段階では存在しないので、一つ前の位置に戻して同様の動作を行う（図１３のステップＳ９、Ｓ６、Ｓ７、Ｓ８、Ｓ１２、Ｓ１３）。
【００６７】
その位置で使用済みでない記号を配置できたときは、その行のそこまでの和、その列のそこまでの和、その位置が主対角上であれば主対角のそこまでの和、副対角上であれば副対角のそこまでの和をそれぞれ計算し、それらの計算結果のどれか一つでもステップＳ１で計算した、作成しようとする魔方陣に定められた各行、各列、各対角要素の各和の所定値よりも大きいかどうか判定する（図１３のステップＳ５１〜Ｓ６０）。
【００６８】
配置できた記号は既存の魔方陣の、例えば最後の位置の一つ前の位置に設定しているので、主対角上あるいは副対角上にないが、計算できたそこまでの和はすべて上記の所定値以下であるか、どれか一つ以上の和が上記の所定値よりも大きい場合がある。計算できたそこまでの和がすべて上記の所定値以下であるときには、既存の魔方陣の最後の位置かどうか判定し（図１３のステップＳ２３）、行列の最後の位置ではないので次の位置に進んで、使用されていない値の記号を設定し（図１３のステップＳ２４、Ｓ６〜Ｓ９）、再びその行のそこまでの和、その列のそこまでの和、その位置が主対角上であれば主対角のそこまでの和、副対角上であれば副対角のそこまでの和をそれぞれ計算して、上記の所定値以下であるかどうかの判定を行う（図１３のステップＳ５１〜Ｓ６０）。
【００６９】
一方、計算できたそこまでの和のどれか一つでも上記所定値よりも大きいときには、行列の先頭位置でないことを確認して一つ前の位置に戻して、使用されていない値の記号を設定し（図１３のステップＳ１２、Ｓ１３、Ｓ８、Ｓ９、Ｓ６、Ｓ７）、再びその行のそこまでの和、その列のそこまでの和、その位置が主対角上であれば主対角のそこまでの和、副対角上であれば副対角のそこまでの和をそれぞれ計算して、上記の所定値以下であるかどうかの判定を行う（図１３のステップＳ５１〜Ｓ６０）。
【００７０】
以下、上記と同様にして最後の位置まで記号を設定した段階で、その行のそこまでの和、その列のそこまでの和、主対角のそこまでの和、副対角のそこまでの和をそれぞれ計算し、それらの計算結果のすべてが所定値以下であるときは、各行、各列、主対角要素と副対角要素の各和が所定値と一致するかどうか判定し、一致したときに魔方陣の作成を完了する（図１３のステップＳ５１〜Ｓ６１、Ｓ２３、Ｓ２５、Ｓ２６、Ｓ２７）。
【００７１】
なお、本発明は以上の実施の形態に限定されるものではなく、例えば、上記の各実施の形態において、記号を配置する毎に、配置したその記号を使用済みであることを示す目印を付け、未使用の記号は上記の使用済みの目印がついていないか、あるいは未使用専用の目印を付けることにより判別して、未使用の記号のみを配置するようにすることもできる。
【００７２】
【発明の効果】
以上説明したように、請求項１及び２記載の発明によれば、記号が何も配置されていない行列から、あるいは既存の魔方陣から、新たに魔方陣を規則的に作成することができるため、魔方陣を確実に、かつ、簡単に作成することかでき、また、請求項２記載の発明では、新たに作成した魔方陣から同じ次数の別の魔方陣を作成することができるので、すべての魔方陣を作成することができ、もって、魔方陣の利用範囲を広げ、かつ、魔方陣の利用価値及び利用効率を飛躍的に高めることができる。
【００７３】
また、請求項３及び５記載の発明によれば、記号が何も配置されていない行列から、あるいは既存の魔方陣に記号を新たに配置するときに、各行、各列あるいは各対角要素のいずれかの位置に記号が配置された時点で、魔方陣により定まる所定の和に等しいかどうか判定し、等しいときには先に進み等しくないときには再度記号の配置をやり直すようにしているため、行列の最後の位置まですべて記号が配置し終わってから上記の所定の和と等しいかどうか判定する請求項１及び２の発明に比べて短時間に魔方陣を作成することができる。また、作成途中でそれまで作成した内容の棄却ができるので、魔方陣の作成処理量を少なくすることができる。
【００７４】
また、請求項４及び６記載の発明によれば、記号が何も配置されていない行列から、あるいは既存の魔方陣に記号を新たに配置するときに、記号を配置する毎にその行あるいはその列のそこまでの和、更には記号を配置する位置が主対角上の位置であれば主対角要素の和、副対角上の位置であれば副対角要素の和を計算し、その計算した和が作成しようとする魔方陣の次数と記号により定まる所定の和の値以下かどうかそれぞれ判定し、計算した和のどれか一つでも上記の所定の和の値よりも大きいときには、再度他に配置された記号と異なる記号を配置する処理を行い、計算した和のすべてが上記の所定の和の値以下であるときには、各行、各列及び主対角要素と副対角要素のそれぞれが上記の所定の和と一致するか判定し、一致したときにその行列を魔方陣として採用することにより、各行、各列、各対角要素のいずれも記号が配置されなくても、既存の魔方陣に別の記号を配置する毎により確からしい記号を配置することができるため、請求項３及び５記載の発明に比べて、さらに魔方陣の作成処理量を少なくすることができ、確実性と簡単性を犠牲にすることなく、より一層短時間で魔方陣を作成することができる。
【００７５】
また、請求項７記載の発明によれば、配置できる記号がなく、記号を配置する位置を一つ前の位置に遡ったときに、記号が使用済みから未使用に戻った場合には、未使用である目印からその前の位置で使用されているかどうかの判定が不要となり、未使用の記号のみを迅速に配置できるため、魔方陣の作成を高速化できる。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態のフローチャートである。
【図２】図１の作成方法による魔方陣の作成手順の一例の具体的説明図である。
【図３】本発明方法を作成する魔方陣作成装置の一実施の形態のブロック図である。
【図４】本発明により作成する魔方陣の構成を示す図である。
【図５】本発明により作成する魔方陣の作成方向の説明図である。
【図６】本発明の第２の実施の形態のフローチャートである。
【図７】図６の作成方法による魔方陣の作成手順の一例の具体的説明図である。
【図８】本発明の第３の実施の形態のフローチャート（その１）である。
【図９】本発明の第３の実施の形態のフローチャート（その２）である。
【図１０】本発明の第４の実施の形態のフローチャート（その１）である。
【図１１】本発明の第４の実施の形態のフローチャート（その２）である。
【図１２】本発明の第５の実施の形態のフローチャートである。
【図１３】本発明の第６の実施の形態のフローチャートである。
【図１４】魔方陣の説明図である。
【図１５】３次の魔方陣の各例の説明図である。
【図１６】従来の魔方陣の作成方法の一例の説明図である。
【符号の説明】
１  演算部
２  行位置設定用記憶部
３  列位置設定用記憶部
４  行位置比較用記憶部
５  列位置比較用記憶部
６  設定用記号記憶部
７  比較用記号記憶部
８  記号比較部
９  魔方陣記憶用配列
９IJ  配列子（記憶素子）
１０  行・列・対角要素和記憶部
Ｍ  魔方陣
【図１】
0003722659.tif 000002
【図２】
0003722659.tif 000003
【図３】
0003722659.tif 000004
【図４】
0003722659.tif 000005
【図５】
0003722659.tif 000006
【図６】
0003722659.tif 000007
【図７】
0003722659.tif 000008
【図８】
0003722659.tif 000009
【図９】
0003722659.tif 000010
【図１０】
0003722659.tif 000011
【図１１】
0003722659.tif 000012
【図１２】
0003722659.tif 000013
【図１３】
0003722659.tif 000014
【図１４】
0003722659.tif 000015
【図１５】
0003722659.tif 000016
【図１６】
0003722659.tif 000017