(57)【特許請求の範囲】
【請求項１】
ｎ行ｎ列（ｎは６を除く３以上の整数）の全部でｎ2個の記憶素子を有し、該記憶素子のそれぞれには、互いに異なるｎ個の記号の中から重複を許して任意に選択した２つの記号ｍ１とｍ２とが対になった記号ｍが格納されるオイラー方陣記憶用配列と、
前記オイラー方陣記憶用配列のｎ2個の記憶素子のうち、設定された位置の記憶素子を指定する指定手段と、
前記指定手段により指定された位置の記憶素子から記憶記号を読み出す読み出し手段と、
前記指定手段により指定された位置の記憶素子に、入力された記号を格納する書き込み手段と、
前記読み出し手段により読み出した記号と入力された記号とを比較する記号比較部と、
作成しようとするオイラー方陣の次数ｎと、前記記号ｍ１及びｍ２を前記ｎ個の記号の中から選択する選択順序と、前記オイラー方陣記憶用配列の前記記号ｍが最初に配列される位置と、前記記号ｍを前記オイラー方陣記憶用配列の行方向又は列方向に沿って配列する順序と、前記記号ｍの最初の値がそれぞれ設定され、前記記号比較部からの比較結果を受けて、前記指定手段、読み出し手段及び書き込み手段を制御して前記オイラー方陣記憶用配列にｎ次のオイラー方陣を格納させる演算部と
を有し、前記演算部は、前記オイラー方陣記憶用配列の最初の配列位置として設定された前記記憶素子に、設定された前記最初の値の記号ｍを設定し、続いて、前記最初の配列位置の次の位置の前記記憶素子に、前記記号ｍの最初の値を前記書き込み手段及び指定手段を介して格納してから、その記憶素子に格納する記号ｍを、前記記号比較部の出力比較結果に基づいて、その位置よりも前の位置の前記記憶素子に格納されている記号と同じ記号が無くなるまで前記選択順序で次々と変えていき、前の位置の前記記憶素子に格納されている記号と同じ記号が無く、かつ、同じ行と列のそれまでの位置の各記憶素子に同じ値の前記記号ｍ１又はｍ２が無い記号ｍを格納した後、更に次の位置の前記記憶素子に前記最初の値の記号ｍを前記書き込み手段及び指定手段を介して格納してから、該次の位置の記憶素子の記号ｍを、前記記号比較部の出力比較結果に基づき、該次の位置の記憶素子よりも前の位置の各記憶素子に同じ記号が無く、かつ、同じ行と列のそれまでの位置に同じ値の前記記号ｍ１又はｍ２が無い記号ｍが現れるまで前記選択順序で次々と変えて格納していくことを、前記ｎ行ｎ列の最後の位置の記憶素子まで、前記設定配列順序に従って繰り返し、同じ値の前記記号ｍを構成する２つの記号ｍ１とｍ２の対が、前記オイラー用方陣記憶用配列の全ての記憶素子に２回以上格納されないようにしてオイラー方陣を作成することを特徴とするオイラー方陣の作成装置。
【請求項２】
前記演算部は、前記オイラー用方陣記憶用配列の各記憶素子毎に、その記憶素子に格納する記号ｍを、前記記号比較部の出力比較結果に基づいて、その位置よりも前の位置の前記記憶素子に格納されている記号と同じ記号が無くなるまで前記選択順序で次々と変えていったときに、最後の記号まで調べ終わって選択決定できる記号ｍが無いときは、その位置ＫIJの一つ前の位置ＫI(J-1)又はＫ(I-1)Jの記憶素子に、前記記号ｍの最初の値を前記書き込み手段及び指定手段を介して格納してから、その位置ＫI(J-1)又はＫ(I-1)Jの記憶素子に格納する記号ｍを、前記記号比較部の出力比較結果に基づいて、その位置ＫI(J-1)又はＫ(I-1)Jのよりも前の位置の前記記憶素子に格納されている記号と同じ記号が無くなるまで前記選択順序で次々と変えていき、前の位置の前記記憶素子に格納されている記号と同じ記号が無く、かつ、同じ行と列のそれまでの位置の各記憶素子に同じ値の前記記号ｍ１又はｍ２が無い記号ｍを格納することを特徴とする請求項１記載のオイラー方陣作成装置。
【請求項３】
ｎ行ｎ列（ｎは６を除く３以上の整数）の全部でｎ2個の記憶素子を有し、該記憶素子のそれぞれには、互いに異なるｎ個の記号の中から重複を許して任意に選択した２つの記号ｍ１とｍ２とが対になった記号ｍが格納されるオイラー方陣記憶用配列と、
前記オイラー方陣記憶用配列のｎ2個の記憶素子のうち、設定された位置の記憶素子を指定する指定手段と、
前記指定手段により指定された位置の記憶素子から記憶記号を読み出す読み出し手段と、
前記指定手段により指定された位置の記憶素子に、入力された記号を格納する書き込み手段と、
前記読み出し手段により読み出した記号と入力された記号とを比較する記号比較部と、
作成しようとするオイラー方陣の次数ｎと、前記記号ｍ１及びｍ２を前記ｎ個の記号の中から選択する選択順序と、前記記号ｍを前記オイラー方陣記憶用配列の行方向又は列方向に沿って配列する順序と、予め用意した既存の第１のオイラー方陣がそれぞれ設定され、前記記号比較部からの比較結果を受けて、前記指定手段、読み出し手段及び書き込み手段を制御して前記オイラー方陣記憶用配列に第２のオイラー方陣を格納させる演算部と
を有し、前記演算部は、前記指定手段、読み出し手段及び書き込み手段を制御して前記オイラー方陣記憶用配列に前記第１のオイラー方陣を記憶した後、設定された前記第１のオイラー方陣の指定位置において、該指定位置の記号ｍを次の選択順序の記号に置き換えて、該指定位置よりも前の位置に同じ記号があるか調べ、同じ記号が無くなるまで該指定位置の記号ｍを前記選択順序で次々と変えていき、前の位置に同じ記号が無く、かつ、同じ行と列のそれまでの位置に同じ値の前記記号ｍ１又はｍ２が無い記号を、前記オイラー方陣記憶用配列の該指定位置に対応する記憶素子に格納し、前記選択順序を変えて最後の記号まで調べ終わっても、一つ前の位置までに同じ記号ｍがあるか同じ行と列のそれまでの位置に同じ値の前記記号ｍ１又はｍ２があるために、選択決定できる記号ｍが無いときは、指定位置ＫIJの一つ前の位置ＫI(J-1)又はＫ(I-1)Jに戻して前記指定位置とし、該位置ＫI(J-1)又はＫ(I-1)Jの記号の次の選択順序の記号に置き換えてから、該位置ＫI(J-1)又はＫ(I-1)Jよりも前の位置に同じ記号ｍが無く、かつ、同じ行と列のそれまでの位置に同じ値の前記記号ｍ１又はｍ２が無い記号ｍを、前記オイラー方陣記憶用配列の該指定位置ＫI(J-1)又はＫ(I-1)Jに対応する記憶素子に格納させる処理を行うことを繰り返して、前の位置に同じ記号ｍが無く、かつ、同じ行と列のそれまでの位置に同じ値の前記記号ｍ１又はｍ２が無い記号ｍを配置できたときは、該記号ｍを配置できた位置の次の位置から前記第１のオイラー方陣の最終位置まで、設定した配列順序で処理を継続することを特徴とするオイラー方陣作成装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はオイラー方陣の作成装置に係り、特に符号変換の変換表や暗号書表、更には実験計画法等に利用されているオイラー方陣の作成装置に関する。
【０００２】
【従来の技術】
従来のオイラー（Ｅｕｌｅｒ）方陣の作成方法について説明する前に、まずラテン方陣について説明する。ｎ個の記号からなる集合Ａ＝｛ａ１，．．．，ａｎ｝の各元をｎ回ずつ使って、合計ｎ２個をそれぞれｎ個の要素をもつ行列に配列し、各方向において、Ａの各元が一度ずつ現れるものをＡ上のラテン方陣、あるいはｎ次ラテン方陣という。
【０００３】
また、第１行及び第１列が共に自然順列であるものを既約な、あるいは標準形のラテン方陣という。その既約な、あるいは標準形のラテン方陣の個数をＬ（ｎ）で表すと、ｎ次ラテン方陣の総数はｎ！（ｎ−１）！Ｌ（ｎ）となる。Ｌ（ｎ）の値はｎが９以下のとき、すなわち、ｎ＝１〜９のときは次の通りになる。
Ｌ（１）＝１
Ｌ（２）＝１
Ｌ（３）＝１
Ｌ（４）＝４
Ｌ（５）＝５６
Ｌ（６）＝９４０８
Ｌ（７）＝１６９４２０８０
Ｌ（８）＝５３５２８１４０１８５６
Ｌ（９）＝３７７５９５７０９６４２５８８１６
【０００４】
ここで、２つのラテン方陣Ｌ＝（Ａ，○）と、Ｌ′＝（Ａ，●）とを重ね合わせたときに現れる文字の対がすべて相異なる場合、すなわちｘ○ｙ＝ｘ′○ｙ′、ｘ●ｙ＝ｘ′●ｙ′ｘ＝ｘ′、ｙ＝ｙ′が成り立つ場合には、ＬとＬ′とは直交するといい、これら２つのラテン方陣ＬとＬ′を重ね合わせた方陣を直交ラテン方陣、あるいはオイラー方陣、あるいはグレコ・ラテン方陣と呼ぶ。グレコ・ラテン方陣の名称は、要素の第１文字をギリシャ文字で表し、第２文字をラテン文字で表したことに由来する。
【０００５】
ｎが２と６以外の数ならば、ｎ次のオイラー方陣が存在する。ｎが２のときはオイラー方陣が存在しないことは容易に理解できるが、ｎが６のときには、公知のオイラーの士官３６人の問題による。この問題は、文献（山本幸一著：「組合せ数学」、３９頁、朝倉書店）に詳細に開示されている。これは「六つの連隊から６階級の士官（大佐・中佐・少佐・大尉・中尉・少尉）を各１人ずつ合計３６人で６行６列の行列の方陣に並んで各行各列に各連隊の各階級の士官が代表されることができるか。」という問題である。
【０００６】
本発明者は、オイラー方陣の個数が１次のとき１個、２次のとき０個、３次のとき７２個、４次のとき６９１２個、５次のとき６２２０８００個であることを本方法により確認した。
【０００７】
図１１（ａ）は４次の要素Ａ＝｛０，１，２，３｝のオイラー方陣の基本形を示し、図１１（ｂ）は４次の要素Ａ＝｛１，２，３，４｝のオイラー方陣の基本形を示す。図１１（ｃ）は４次の下位の要素Ａ＝｛ａ，ｂ，ｃ，ｄ｝と上位の要素Ａ＝｛α，β，γ，δ｝のオイラー方陣の基本形を示す。
【０００８】
【発明が解決しようとする課題】
従来のオイラー方陣の作成方法では、オイラー方陣の規則的な作成が困難で、試行錯誤的に作成を行っており、例えば、図１２に示す４次のオイラー方陣を求める場合、図１３（ａ）と同図（ｂ）に示すその次数の直交する２つのラテン方陣を重ね合わせて、その結果の記号に同一なものがないか調べて、同図（ｃ）に示すオイラー方陣を作成するようにしている。ここで、図１３（ｃ）に示すオイラー方陣の各桝目の２桁の記号（ここでは数字）のうち、左側の記号が同図（ａ）に示すラテン方陣の対応する桝目の数字であり、右側の記号が同図（ｂ）に示すラテン方陣の対応する桝目の数字である。
【０００９】
このため、従来の作成方法では、オイラー方陣の作成が難しく、かつ、面倒であるばかりでなく、作成できるオイラー方陣の数が限定され、このため、オイラー方陣の利用価値及び利用効果を高めることができない、という問題がある。
【００１０】
そこで、本発明は上記の従来の技術の課題を解決すべくなされたもので、所望の次数のオイラー方陣を一定の手法に従って規則的に、しかも、簡単に作成し得るオイラー方陣の作成装置を提供することを目的とする。
【００１１】
また、本発明の他の目的は、オイラー方陣の利用範囲を広げ、かつ、オイラー方陣の利用価値及び利用効果を飛躍的に高め得るオイラー方陣の作成装置を提供することにある。
【００１２】
【課題を解決するための手段】
上記の目的を達成するため、請求項１記載の発明は、ｎ行ｎ列（ｎは６を除く３以上の整数）の全部でｎ2個の記憶素子を有し、その記憶素子のそれぞれには、互いに異なるｎ個の記号の中から重複を許して任意に選択した２つの記号ｍ１とｍ２とが対になった記号ｍが格納されるオイラー方陣記憶用配列と、オイラー方陣記憶用配列のｎ2個の記憶素子のうち、設定された位置の記憶素子を指定する指定手段と、指定手段により指定された位置の記憶素子から記憶記号を読み出す読み出し手段と、指定手段により指定された位置の記憶素子に、入力された記号を格納する書き込み手段と、読み出し手段により読み出した記号と入力された記号とを比較する記号比較部と、作成しようとするオイラー方陣の次数ｎと、記号ｍ１及びｍ２をｎ個の記号の中から選択する選択順序と、オイラー方陣記憶用配列の記号ｍが最初に配列される位置と、記号ｍをオイラー方陣記憶用配列の行方向又は列方向に沿って配列する順序と、記号ｍの最初の値がそれぞれ設定され、記号比較部からの比較結果を受けて、指定手段、読み出し手段及び書き込み手段を制御してオイラー方陣記憶用配列にｎ次のオイラー方陣を格納させる演算部とを有する構成としたものである。
ここで、上記の演算部は、オイラー方陣記憶用配列の最初の配列位置として設定された記憶素子に、設定された最初の値の記号ｍを設定し、続いて、最初の配列位置の次の位置の記憶素子に、記号ｍの最初の値を書き込み手段及び指定手段を介して格納してから、その記憶素子に格納する記号ｍを、記号比較部の出力比較結果に基づいて、その位置よりも前の位置の記憶素子に格納されている記号と同じ記号が無くなるまで選択順序で次々と変えていき、前の位置の記憶素子に格納されている記号と同じ記号が無く、かつ、同じ行と列のそれまでの位置の各記憶素子に同じ値の記号ｍ１又はｍ２が無い記号ｍを格納した後、更に次の位置の記憶素子に最初の値の記号ｍを書き込み手段及び指定手段を介して格納してから、その次の位置の記憶素子の記号ｍを、記号比較部の出力比較結果に基づき、上記次の位置の記憶素子よりも前の位置の各記憶素子に同じ記号が無く、かつ、同じ行と列のそれまでの位置に同じ値の記号ｍ１又はｍ２が無い記号ｍが現れるまで選択順序で次々と変えて格納していくことを、ｎ行ｎ列の最後の位置の記憶素子まで、設定配列順序に従って繰り返し、同じ値の記号ｍを構成する２つの記号ｍ１とｍ２の対が、オイラー用方陣記憶用配列の全ての記憶素子に２回以上格納されないようにしてオイラー方陣を作成することを特徴とする。
【００１３】
この発明では、作成するオイラー方陣の次数ｎを設定すると共に、この次数ｎ分の記号ｍを順列及び順列に従った選択順序を定めて設定するが、この記号ｍの順列及び順列に従った選択順序とは、例えば次数が３次で記号ｍとして（０，１，２）を設定した場合、記号ｍを構成する２つの記号ｍ１及びｍ２の対が、００→０１→０２→１０→１１→１２→２０→２１→２２を順列（自然順列）とすると定めることであり、また、００→０１→０２→１０→１１→１２→２０→２１→２２の順に選択することを定めることである。
【００１４】
オイラー方陣の各位置に対する配列要素としての記号ｍの一つ前の選択決定は、この発明では、最初の位置から図６（ａ）の列方向又は同図（ｂ）の行方向で行われるが、記号ｍの選択決定に際しては、その位置の他の既に設定されている位置の配列要素と異なる記号を選択し、更にその位置の同じ行及び列の前の位置の記号ｍの上位ｍ１と下位ｍ２とが行列上の他の位置とそれぞれ異なった値を選択するので、これを繰り返すことにより、オイラー方陣の作成が達成されることになる。
【００１５】
また、上記の目的を達成するため、請求項２記載の発明は、請求項１記載の発明の演算部が、ｎ行ｎ列の各位置毎に、同一行及び列の前の位置の既に決定されている配列要素と記号ｍの２つの記号ｍ１とｍ２の対がそれぞれ同一とならないように、記号ｍ１とｍ２を選択順序で次々と変えていったときに、最後の記号まで調べ終わって選択決定できる記号ｍが無いときは、その位置ＫIJの一つ前の位置ＫI(J-1)又はＫ(I-1)Jの記憶素子に、記号ｍの最初の値を書き込み手段及び指定手段を介して格納してから、その位置ＫI(J-1)又はＫ(I-1)Jの記憶素子に格納する記号ｍを、記号比較部の出力比較結果に基づいて、その位置ＫI(J-1)又はＫ(I-1)Jのよりも前の位置の記憶素子に格納されている記号と同じ記号が無くなるまで選択順序で次々と変えていき、前の位置の記憶素子に格納されている記号と同じ記号が無く、かつ、同じ行と列のそれまでの位置の各記憶素子に同じ値の記号ｍ１又はｍ２が無い記号ｍを格納することを特徴とする。
【００１６】
この発明では、途中の位置で選択決定できる記号ｍが無いときは、その位置ＫIJの一つ前の位置ＫI(J-1)又はＫ(I-1)Jに戻して既に決定されている配列要素の記号ｍに代えて、処理を継続させるようにしているため、選択決定することのできる記号ｍが無かった一つ前の位置ＫI(J-1)又はＫ(I-1)Jで、少なくとも前の位置で変えられた記号ｍを選択決定できる可能性を得ることができる。
【００２４】
また、上記の目的を達成するため、請求項３記載の発明は、ｎ行ｎ列（ｎは６を除く３以上の整数）の全部でｎ2個の記憶素子を有し、記憶素子のそれぞれには、互いに異なるｎ個の記号の中から重複を許して任意に選択した２つの記号ｍ１とｍ２とが対になった記号ｍが格納されるオイラー方陣記憶用配列と、オイラー方陣記憶用配列のｎ2個の記憶素子のうち、設定された位置の記憶素子を指定する指定手段と、指定手段により指定された位置の記憶素子から記憶記号を読み出す読み出し手段と、指定手段により指定された位置の記憶素子に、入力された記号を格納する書き込み手段と、読み出し手段により読み出した記号と入力された記号とを比較する記号比較部と、作成しようとするオイラー方陣の次数ｎと、記号ｍ１及びｍ２をｎ個の記号の中から選択する選択順序と、記号ｍをオイラー方陣記憶用配列の行方向又は列方向に沿って配列する順序と、予め用意した既存の第１のオイラー方陣がそれぞれ設定され、記号比較部からの比較結果を受けて、指定手段、読み出し手段及び書き込み手段を制御してオイラー方陣記憶用配列に第２のオイラー方陣を格納させる演算部とを有する構成としたものである。
【００２５】
ここで、上記の演算部は、指定手段、読み出し手段及び書き込み手段を制御してオイラー方陣記憶用配列に第１のオイラー方陣を記憶した後、設定された第１のオイラー方陣の指定位置において、指定位置の記号ｍを次の選択順序の記号に置き換えて、指定位置よりも前の位置に同じ記号があるか調べ、同じ記号が無くなるまで指定位置の記号ｍを選択順序で次々と変えていき、前の位置に同じ記号が無く、かつ、同じ行と列のそれまでの位置に同じ値の記号ｍ１又はｍ２が無い記号を、オイラー方陣記憶用配列の指定位置に対応する記憶素子に格納し、選択順序を変えて最後の記号まで調べ終わっても、一つ前の位置までに同じ記号ｍがあるか同じ行と列のそれまでの位置に同じ値の記号ｍ１又はｍ２があるために、選択決定できる記号ｍが無いときは、指定位置ＫIJの一つ前の位置ＫI(J-1)又はＫ(I-1)Jに戻して指定位置とし、位置ＫI(J-1)又はＫ(I-1)Jの記号の次の選択順序の記号に置き換えてから、位置ＫI(J-1)又はＫ(I-1)Jよりも前の位置に同じ記号ｍが無く、かつ、同じ行と列のそれまでの位置に同じ値の記号ｍ１又はｍ２が無い記号ｍを、オイラー方陣記憶用配列の指定位置ＫI(J-1)又はＫ(I-1)Jに対応する記憶素子に格納させる処理を行うことを繰り返して、前の位置に同じ記号ｍが無く、かつ、同じ行と列のそれまでの位置に同じ値の記号ｍ１又はｍ２が無い記号ｍを配置できたときは、記号ｍを配置できた位置の次の位置から第１のオイラー方陣の最終位置まで、設定した配列順序で処理を継続する。
【００２６】
この発明は、同一行及び列の前の位置の既に決定されている配列要素の記号ｍを構成する２つの記号ｍ１とｍ２の対が、ｎ行ｎ列のすべての位置に２回以上出現しないようにして、第１のオイラー方陣とは異なる第２のオイラー方陣を作成するもので、第１のオイラー方陣として作成した第２のオイラー方陣を設定することを繰り返すことにより、同じ次数で同じ記号のオイラー方陣をすべて作成することができる。
【００２７】
【発明の実施の形態】
次に、本発明の実施の形態について図面と共に説明する。なお、以下の説明では、説明の便宜上、次数ｎを４とし、記号ｍは自然数（０，１，２，３）とし、その順列及び選択順は自然順列の通りとする。ここで、図１３と共に前述したように、オイラー方陣の各桝目の記号ｍは二つの記号ｍ１及びｍ２の対からなり、上記の自然順列とは記号ｍ１及びｍ２からなる対（ｍ１，ｍ２）を（０，０）→（０，１）→（０，２）→（０，３）→（１，０）→（１，１）→（１，２）→（１，３）→（２，０）→（２，１）→（２，２）→（２，３）→（３，０）→（３，１）→（３，２）→（３，３）の順の順列のことである。
【００２８】
図１は本発明になるオイラー方陣の作成装置の一実施の形態のブロック図を示す。同図において、演算部１は、ソフトウェア的に演算処理を実行する他に、次数ｎ、記号ｍの順列と選択順、最初に配列要素ＥＩＪを選択決定する位置ＫＩＪ、配列要素ＥＩＪを選択決定する順序、そして本実施の形態で作成されるオイラー方陣のそれぞれの設定を行う回路部で、予め定められた制御プログラムに従って各種の演算の実行を行い、作成するオイラー方陣Ｒのデータの行列位置の指定と比較判断及び設定、読み取りを行う。
【００２９】
上記の作成するオイラー方陣Ｒは、次数がｎの場合は図２に示すように、ｎ行ｎ列からなり、Ｉ行Ｊ列の位置はＫＩＪで表され、その位置ＫＩＪに配列される配列要素（記号ｍ１、ｍ２）はＥＩＪで表される。図１中のオイラー方陣記憶用配列９は、ｎ次のオイラー方陣を作成するときには、図２に示したオイラー方陣Ｒと同様にｎ行ｎ列の、全部でｎ２個の配列子（記憶素子）からなり、そのうちのＩ行Ｊ列の位置ＫＩＪの配列子は９ＩＪで表される。ここで、各配列子９ＩＪは、それぞれ２つの記号ｍ１及びｍ２を記憶する。なお、前記したように、ここではｎ＝４である。
【００３０】
行位置設定用記憶部２は、演算部１の出力信号に基づいて選択決定される記号ｍ（すなわち、ｍ１及びｍ２）の行位置を、オイラー方陣記憶用配列９に対して指定する。列位置設定用記憶部３は、演算部１の出力信号に基づいて選択決定される記号ｍ（すなわち、ｍ１及びｍ２）の列位置を、オイラー方陣記憶用配列９に対して指定する。行位置比較用記憶部４は、演算部１の出力信号に基づいて選択決定される記号ｍと比較される記号ｍ′（これは二つの記号ｍ１′とｍ２′とからなる）の行位置を、また、列位置比較用記憶部５は、演算部１の出力信号に基づいて選択決定される記号ｍと比較される記号ｍ′（すなわち、記号ｍ１′及びｍ２′）の列位置を、それぞれオイラー方陣記憶用配列９に対して指定する。
【００３１】
また、設定用記号記憶部６は、演算部１の出力信号に基づいて選択決定される記号ｍ（すなわち、ｍ１及びｍ２）を記憶したり、オイラー方陣記憶用配列９からの記号ｍ（すなわち、ｍ１及びｍ２）を記憶する。比較用記号記憶部７は、オイラー方陣記憶用配列９から読み出された、比較される記号ｍ′（すなわち、記号ｍ１′及びｍ２′）を記憶する。記号比較部８は、設定用記号記憶部６に記憶された、演算部１により設定された記号ｍと、比較用記号記憶部７に記憶された、比較される記号ｍ′とを比較し、その比較結果を演算部１へ出力する。
【００３２】
なお、図１に示したオイラー方陣作成装置は、本発明者が先に特開平１０−１０５５４４号公報（発明の名称「ラテン方陣の作成方法」）で開示した作成装置と基本的な構成はほぼ同じであるが、演算部１に設定される制御プログラムが異なり、作成方法及び作成する方陣が全く異なる。すなわち、前記公開公報では、記憶用配列にはｎ種類の要素でｎ×ｎの行列であるラテン方陣が設定されるのに対し、この実施の形態では記憶用配列９には、ｎ×ｎ種類の要素の行列であるオイラー方陣が設定される。すなわち、要素の記号をＡ＝｛１，２，．．．，ｎ｝とすると、ラテン方陣では要素の記号ｍとして１，２，．．．，ｎが設定されるが、この実施の形態のオイラー方陣では、要素の記号ｍ（ｍ１，ｍ２）として、１１，．．．，ｎｎが設定される。
【００３３】
また、記号ｍ（ｍ１，ｍ２）の比較判定が、ラテン方陣では記号ｍを行列方向に一つ前の位置までだったのが、オイラー方陣では記号ｍ（ｍ１，ｍ２）が、その位置の一つ前までに重複して使用されていないかを比較判定するのと、記号ｍを構成する２つの記号ｍ１及びｍ２の対が、その位置の一つ前までの行及び列に重複しないように比較する点でも異なる。
【００３４】
次に、上記のオイラー方陣作成装置を用いて作成される本発明のオイラー方陣作成方法について説明する。図３は本発明になるオイラー方陣の作成方法の第１の実施の形態を説明するフローチャートを示す。図３の実施の形態について、図１、図４及び図５と共に具体的に説明する。まず、演算部１に対して、次数ｎ、記号ｍ１及びｍ２をそれぞれ設定すると共に、記号の選択順序を設定する（図３のステップＳ１）。ここでは、前記したように、次数ｎを４に、記号ｍ１とｍ２をそれぞれ自然数（０，１，２，３）に設定し、記号ｍ１とｍ２の選択順序を前記の自然順列に設定する。
【００３５】
続いて、演算部１に対して、最初の位置を設定すると共に、位置の進行方向を設定する（図３のステップＳ２）。上記の位置の進行方向は、図６（ａ）に矢印で示す方向に進行する列方向と、同図（ｂ）に矢印で示す方向に進行する行方向とがある。ここでは、最初の位置をＫ１１とし、位置の進行方向を列方向とする。これにより、位置はＫ１１→Ｋ１２→Ｋ１３→Ｋ１４→Ｋ２１→・・・→Ｋ４２→Ｋ４３→Ｋ４４の順序で進行する。
【００３６】
続いて、演算部１は設定した最初の位置Ｋ１１に最初の記号を設定する（図３のステップＳ３）。ここでは、演算部１は列位置設定用記憶部３及び行位置設定用記憶部４を介してオイラー方陣記憶用配列９の１行１列目の配列子９１１を指定し、設定用記号記憶部６を介して最初の記号として“００”（ｍ１＝０，ｍ２＝０）を格納させる。これにより、オイラー方陣記憶用配列９の記憶内容は図４（ａ）に示す状態となる。
【００３７】
続いて、演算部１は、現在の指定位置が先頭かどうか判定する（図３のステップＳ４）。この判定はＩ＝１で、かつ、Ｊ＝１であるかどうかにより行う。ここでは、指定位置はＫ１１であるから、先頭であると判定され、図３のステップＳ１１に進む。ステップＳ１１では、現在の指定位置が最後かどうか判定する。この判定はＩ＝４で、かつ、Ｊ＝４であるかどうかにより行う。ここでは、指定位置はＫ１１であるから、最後ではないと判定され、次の指定位置を設定すると共に最初の記号を設定する（図３のステップＳ１２）。
【００３８】
ここでは、位置の進行方向が列方向であるので、次の指定位置としてＫ１２が設定され、また最初の記号“００”が設定される。すなわち、演算部１はこのステップＳ１２で、列位置設定用記憶部３及び行位置設定用記憶部４を介してオイラー方陣記憶用配列９の１行２列目の配列子９１２を指定し、設定用記号記憶部６を介して記号“００”（ｍ１＝０，ｍ２＝０）を格納させる。
【００３９】
続いて、演算部１は、図３のステップＳ４に進み、再び指定位置が先頭であるかどうか判定する。ここでは指定位置はＫ１２であるから先頭ではないと判定され、ステップＳ５に進んで、一つ前の位置までの記号を調べ、その調べた記号の中に同じ記号があるかどうか判定する（図３のステップＳ６）。ここでは、同じ記号があるので、演算部１は次の選択順の記号“０１”（ｍ１＝０，ｍ２＝１）に設定する（図３のステップＳ１４）。
【００４０】
すなわち、演算部１は、オイラー方陣記憶用配列９から読み出した記号ｍ′（ｍ１′及びｍ２′）と設定用記号記憶部６に記憶されている記号“０１”（ｍ１＝０，ｍ２＝１）とを記号比較部８で比較し、その比較結果から両者が一致するかどうか判定し、ここでは同じ記号があるので、上記のステップＳ１４で、列位置設定用記憶部３及び行位置設定用記憶部４を介してオイラー方陣記憶用配列９の１行２列目の配列子９１２を指定し、設定用記号記憶部６を介して記号“０１”（ｍ１＝０，ｍ２＝１）を格納させる。
【００４１】
続いて、演算部１は、記号が最後の選択順の記号“３３”（ｍ１＝３，ｍ２＝３）まで調べ終わったかどうか判定し（図３のステップＳ１５）、この段階では調べ終わっていないのでステップＳ４に戻り、再び指定位置が先頭であるかどうか判定する。ここでは、指定位置はＫ１２であるから先頭ではないと判定され、ステップＳ５に進んで、一つ前の位置までの記号を調べ、ステップＳ５で調べた記号の中に同じ記号があるかどうか判定する。
【００４２】
ここでは、同じ記号がないので、その行の一つ前までの位置の記号ｍの下位の記号ｍ２を調べ（図３のステップＳ７）、現在の下位の記号ｍ２と同じものがあるかどうか判定する（図３のステップＳ８）。ここでは、現在の下位の記号ｍ２は“１”であるから、先頭の位置の下位の記号ｍ２の“０”とは異なるので、同じものがないと判定され、今度はその行の一つ前までの位置の記号ｍの上位の記号ｍ１を調べ（図３のステップＳ９）、現在の上位の記号ｍ１と同じものがあるかどうか判定する（図３のステップＳ１０）。
【００４３】
ここでは、同じものがあると判定されるので、演算部１はステップＳ１４に進んで次の選択順の記号“０２”（ｍ１＝０，ｍ２＝２）に設定して、すなわち、オイラー方陣記憶用配列９の１行２列目の配列子９１２に記号“０２”（ｍ１＝０，ｍ２＝２）を格納した後、ステップＳ１５で記号が最後の選択順の記号“３３”まで調べ終わったかどうか判定し、この段階では調べ終わっていないのでステップＳ４に戻り、再び指定位置が先頭であるかどうか判定する。以下、ステップＳ４からステップＳ１０、ステップＳ１４及びＳ１５の処理を再び順次繰り返し実行する。
【００４４】
こうして、選択順の記号が“１１”（ｍ１＝１，ｍ２＝１）に設定され、オイラー方陣記憶用配列９の１行２列目の配列子９１２に記号“１１”（ｍ１＝１，ｍ２＝１）が格納されると、記号ｍが一つ前までの位置に同じものが無く、記号ｍの下位の記号ｍ２と同じものがその行の一つ前の位置までに無く、記号ｍの上位の記号ｍ１と同じものがその行の一つ前の位置までに無い状態となる。これにより、オイラー方陣記憶用配列９の記憶内容は図４（ｂ）に示す状態となる。
【００４５】
次にステップＳ１１に進んで、最後の位置Ｋ４４であるかどうか判定し、最後の位置ではないので、ステップＳ１２で次の位置Ｋ１３に最初の記号“００”を設定した後（オイラー方陣記憶用配列９の１行３列目の配列子９１３に記号“００”を格納した後）、ステップＳ４に進み、再び指定位置が先頭であるかどうか判定する。ここでは指定位置はＫ１３であるから先頭ではないと判定され、以下上記と同様にしてステップＳ１４でオイラー方陣記憶用配列９の１行３列目の配列子９１３に記号“２２”が格納されて図４（ｃ）の状態となる。
【００４６】
以下、上記と同様にして次の位置Ｋ１４が指定され、ステップＳ１４でオイラー方陣記憶用配列９の１行４列目の配列子９１４に記号“３３”が格納されて図４（ｄ）の状態となる。続いて、ステップＳ１５、Ｓ４〜Ｓ１１を経てステップＳ１２に至り、ここで、指定位置が列の最後となったので、次の位置として次の行の先頭の列の位置Ｋ２１が指定され、ここに最初の記号“００”が設定される。
【００４７】
演算部１は、以下上記と同様の動作を行うことにより、オイラー方陣記憶用配列９の記憶内容は、図４（ｄ）、（ｅ）、（ｆ）、（ｇ）、（ｈ）、（ｉ）、図５（ｊ）、（ｋ）、（ｌ）、（ｍ）、（ｎ）、（ｏ）、（ｐ）と変化していく。ステップＳ１４でオイラー方陣記憶用配列９の最後の位置Ｋ４４の配列子９４４に図５（ｐ）に示すように、記号“０２”（ｍ１＝０，ｍ２＝２）が格納されると、その後のステップＳ１１で指定位置が最後であると判定されるので、処理を終了する（図３のステップＳ１３）。
【００４８】
なお、ステップＳ１５で記号が最後の記号“３３”まで調べ終わったと判定されたときには、次のステップＳ１６でその位置が最初の位置かどうか判定し、最初の位置であるときには、これ以上調べる記号の配置が存在しない（調べ尽くした）ので、ステップＳ１８に進んで処理を終了するが、最初の位置でないときには、ステップＳ１７に進んで指定位置を一つ前に戻した後、ステップＳ１４に進んで次の選択順の記号を設定する。
【００４９】
このように、この実施の形態では、次数４のオイラー方陣を規則的な処理手順に従って、簡単、かつ、正確に作成することができると共に、作成作業が自動的に行えるので、オイラー方陣を作業効率良く、短時間で作成できると共に、作成の確実性を高めることができる。
【００５０】
次に、本発明の第２の実施の形態について説明する。上記の第１の実施の形態では、何も存在しない状態から新たなオイラー方陣を作成したが、この第２の実施の形態では、既に作成したオイラー方陣に基づいて別のオイラー方陣を作成するものである。図７は本発明になるオイラー方陣の作成方法の第２の実施の形態を説明するフローチャートを示す。同図中、図３と同じ処理のステップには同じ符号を付してある。
【００５１】
図７の実施の形態について、図１、図８と共に具体的に説明する。まず、演算部１に対して、次数ｎ、記号ｍ１及びｍ２をそれぞれ設定すると共に、記号の選択順序を設定する（図７のステップＳ１）。ここでは、前記したように、次数ｎを４に、記号ｍ１とｍ２をそれぞれ自然数（０，１，２，３）に設定し、記号ｍ１とｍ２の選択順序を前記の自然順列に設定する。
【００５２】
続いて、演算部１に対して、最初の位置を設定すると共に、位置の進行方向を設定する（図７のステップＳ２）。ここでは、最初の位置をＫ４４とし、位置の進行方向を列方向とする。これにより、位置はＫ１１→Ｋ１２→Ｋ１３→Ｋ１４→Ｋ２１→・・・→Ｋ４２→Ｋ４３→Ｋ４４の順序で進行する。
【００５３】
続いて、演算部１は、オイラー方陣記憶用配列９に既存のオイラー方陣を設定する（図７のステップＳ２１）。これにより、オイラー方陣記憶用配列９の記憶内容は、例えば図８（ａ）に示すオイラー方陣となる。因みに、このオイラー方陣は図５（ｐ）に示したオイラー方陣と同じである。
【００５４】
続いて、演算部１は、指定位置Ｋ４４に設定されている記号“０２”の次の選択順の記号“０３”に設定する（図７のステップＳ２２）。すなわち、演算部１は図１の列位置設定用記憶部３及び行位置設定用記憶部４を介してオイラー方陣記憶用配列９の４行４列目の配列子９４４を指定し、設定用記号記憶部６を介して記号“０３”（ｍ１＝０，ｍ２＝３）を格納させる。
【００５５】
続いて、演算部１は、上記の設定した記号が最後の記号まで終ったかどうか判定し（図７のステップＳ２３）、ここではまだ調べ終わっていないので、ステップＳ４に進む。以下、図３と共に説明したように、ステップＳ４では最初の位置でないと判定されてステップＳ５に進み、一つ前の位置までに同じ記号があるかどうか調べる。すなわち、演算部１は、オイラー方陣記憶用配列９から読み出した記号ｍ′（ｍ１′及びｍ２′）と設定用記号記憶部６に記憶されている記号“０３”（ｍ１＝０，ｍ２＝３）とを記号比較部８で比較し、その比較結果から両者が一致するかどうか判定する。
【００５６】
ここでは、記号“０３”は図８（ａ）の２行２列目に存在するので、ステップＳ６では、同じ記号があると判定され、ステップＳ２２に戻り、次の選択順の記号“１０”に設定される（設定用記号記憶部６を介して記号“１０”（ｍ１＝１，ｍ２＝０）を配列子９４４に格納させる）。
【００５７】
以下、ステップＳ２２、Ｓ２３、Ｓ４、Ｓ５、Ｓ６の処理が、異なる記号が見付かるまで繰り返される。このとき、記号“３３”まで比較し終わったならば、次の記号は存在しないので、ステップＳ２３で最後の記号まで比較し終わったと判断され、続くステップＳ２４で現在の位置が最初の位置Ｋ１１であるかどうかチェックし、最初の位置Ｋ１１ではないので、ステップＳ２５で指定位置を一つ前に戻す。ここでは、ステップＳ２５で位置がＫ４４の一つ前の位置Ｋ４３に戻される。
【００５８】
続いて、ステップＳ２２で、その位置Ｋ４３に設定されている記号“１３“の次の選択順の記号”２０“が設定される（設定用記号記憶部６を介して記号“２０”（ｍ１＝２，ｍ２＝０）を配列子９４３に格納させる）。その後、上記と同様に、ステップＳ２２、Ｓ２３、Ｓ４、Ｓ５、Ｓ６、Ｓ２４、Ｓ２５の処理が、異なる記号が見付かるまで繰り返される。異なる記号が見付かった時は、一つ前の位置までに同じ記号が無く、記号の下位ｍ２及び記号の上位ｍ１と同じ記号（ｍ１，ｍ２）が同じ行と列のそれまでの位置に無いか調べる（図７のステップＳ７〜Ｓ１０）。
【００５９】
上記の条件に当てはまる位置は、図８（ａ）のオイラー方陣の場合、位置Ｋ３１であり、その位置の記号を“３１”にまで変更したときに、ステップＳ１０で上記の条件を満足すると判定される。これにより、オイラー方陣記憶用配列９の記憶内容は図８（ｂ）に示すように確定し、演算部１はステップＳ１１で指定位置は最後かどうか判断する。ここでは、最後の位置ではないので、続くステップＳ１２で次の位置Ｋ３２に最初の位置Ｋ１１の記号“００”を設定する。更に、ステップＳ４〜Ｓ１０とステップＳ２２とＳ２３の処理を行い、上記条件に当てはまる記号“２０”を図８（ｃ）に示すように位置Ｋ３２に配置する。
【００６０】
続いて、演算部１は、ステップＳ１１で指定位置は最後かどうか判断する。ここでは、最後の位置ではないので、続くステップＳ１２で次の位置Ｋ３３に最初の位置Ｋ１１の記号“００”を設定する。更に、ステップＳ４〜Ｓ１０とステップＳ２２とＳ２３の処理を行い、上記条件に当てはまる記号“１３”を図８（ｄ）に示すように位置Ｋ３３に配置する。以下、上記と同様にして、位置Ｋ３４に記号“０２”が配置され（図８（ｅ））、次の位置Ｋ４１に記号“２３”が配置され（図８（ｆ））、次の位置Ｋ４２に記号“３２”が配置され（図８（ｇ））、次の位置Ｋ４３に記号“０１”が配置され（図８（ｈ））、最後の位置Ｋ４４に記号“１０”が配置される（図８（ｉ））。最後の位置Ｋ４４に記号が配置されると、ステップＳ１１で最後の位置と判定され、処理を終了する（図７のステップＳ１３）。
【００６１】
このように、本実施の形態によれば、図８（ａ）に示すオイラー方陣から同図（ｉ）に示す別のオイラー方陣を、自動的に作成することができる。また、この実施の形態によれば、図７のステップＳ２１で設定する最初のオイラー方陣を、代えれば新たな別のオイラー方陣を作成することができる。
【００６２】
図９及び図１０は図７のステップＳ２１で設定する最初のオイラー方陣を、図９（ａ）に示すオイラー方陣とした時の、第２の実施の形態により作成されるオイラー方陣の作成手順を示す。すなわち、図９（ａ）に示すオイラー方陣をステップＳ２１で設定した場合は、第２の実施の形態により、図９（ｂ）→図９（ｃ）→図９（ｄ）→図９（ｅ）→図９（ｆ）→図９（ｇ）→図９（ｈ）→図９（ｉ）→図１０（ｊ）→図１０（ｋ）→図１０（ｌ）を経て、図１０（ｍ）に示す新たなオイラー方陣を自動的に作成することができる。
【００６３】
このことは、作成したオイラー方陣を、設定する最初のオイラー方陣として別のオイラー方陣を作成することを繰り返すことにより、同じ次数及び記号のすべてのオイラー方陣を自動的に作成することができることを意味する。従って、この実施の形態によれば、同じ次数及び記号のすべてのオイラー方陣を簡単、かつ、確実に作成することができるため、オイラー方陣の利用範囲を広げ、かつ、オイラー方陣の利用価値及び利用効果を飛躍的に高めることができる。
【００６４】
なお、本発明は以上の実施の形態に限定されるものではなく、例えば、図６（ｂ）に示したように列方向にオイラー方陣の各配列要素ＥＩＪを作成することができることは勿論であり、また、４次以外の次数のオイラー方陣も同様にして作成することができるものである。また、設定される記号ｍは特に限定されるものではなく、
上記の各実施の形態では数字で説明したが、アルファベット、ギリシャ文字、図１１（ｃ）に示したようなこれらの組み合わせ、あるいはこれらと数字の組み合わせ、あるいは色や形のような、区別が可能なものを任意に設定できる。これらの記号ｍに従って作成されたオイラー方陣は、例えば図１１（ａ）〜（ｃ）に示したものとなる。
【００６５】
【発明の効果】
以上説明したように、請求項１記載の発明によれば、希望の記号ｍからなる所望の次数ｎのオイラー方陣を、自動的に作成することができるため、オイラー方陣を確実に、作業効率良く簡単に、しかも短時間で正確に作成することができる。
【００６６】
また、請求項２記載の発明によれば、少なくとも前の位置で変えられた記号ｍを選択決定できる可能性を得ることができるため、オイラー方陣の規則的な作成の確実性を、より一層向上できる。
【００６８】
また、請求項３記載の発明によれば、既存の第１のオイラー方陣を元として、同じ次数及び記号の第２のオイラー方陣を作成するようにしたため、同じ次数及び記号の多数の異なるオイラー方陣のすべてを確実、かつ、簡単に作成することができ、これによりオイラー方陣の利用範囲を広げ、かつ、オイラー方陣の利用価値及び利用効果を飛躍的に高めることができる。
【図面の簡単な説明】
【図１】本発明作成装置の一実施の形態のブロック図である。
【図２】本発明により作成するオイラー方陣の構成を示す図である。
【図３】本発明作成方法の第１の実施の形態を説明するフローチャートである。
【図４】図３のフローチャートによるオイラー方陣の作成手順の具体的説明図（その１）である。
【図５】図３のフローチャートによるオイラー方陣の作成手順の具体的説明図（その２）である。
【図６】本発明により作成するオイラー方陣の作成方向の説明図である。
【図７】本発明作成方法の第２の実施の形態を説明するフローチャートである。
【図８】図７のフローチャートによるオイラー方陣の作成手順の一例の具体的説明図である。
【図９】図７のフローチャートによるオイラー方陣の作成手順の他の例の具体的説明図（その１）である。
【図１０】図７のフローチャートによるオイラー方陣の作成手順の他の例の具体的説明図（その２）である。
【図１１】オイラー方陣の各例の説明図である。
【図１２】オイラー方陣の基本的構成説明図である。
【図１３】従来のオイラー方陣作成方法の一例の説明図である。
【符号の説明】
１  演算部
２  行位置設定用記憶部
３  列位置設定用記憶部
４  行位置比較用記憶部
５  列位置比較用記憶部
６  設定用記号記憶部
７  比較用記号記憶部
８  記号比較部
９  オイラー方陣記憶用配列
９ＩＪ  配列子（記憶素子）
Ｒ  オイラー方陣
【図１】
0003573671.tif 000002
【図２】
0003573671.tif 000003
【図３】
0003573671.tif 000004
【図４】
0003573671.tif 000005
【図５】
0003573671.tif 000006
【図６】
0003573671.tif 000007
【図７】
0003573671.tif 000008
【図８】
0003573671.tif 000009
【図９】
0003573671.tif 000010
【図１０】
0003573671.tif 000011
【図１１】
0003573671.tif 000012
【図１２】
0003573671.tif 000013
【図１３】
0003573671.tif 000014