(57)【要約】【課題】数値表現の自由度の向上を図ること。【解決手段】入力数値ＮをＮ＝３５０４６０とする。（Ａ）において、入力数値Ｎが入力されるとルートＲを設定する。（Ｂ）において、数列Ｓ４を元に９本のブランチを生成する。ブランチの先端に配置された数値が分岐先ノードとなる。（Ｃ）に示すように、リーフ（（Ｃ）中、ノードＲより小さい●で表示）に変換する。数値が２以上のノードについては、素因数分解可能である。（Ｄ）では、数値「１２」のノードからブランチを３本生成し、数列Ｓ４を構成する各数値を分岐先ノードとする。数値が１となる分岐先ノードはリーフ（（Ｄ）中、ノードＲより小さい●で表示）に変換する。（Ｄ）中、数値が２以上のノードについては、素因数分解可能である。このようにして、（Ｅ）に示したように、入力数値Ｎに固有なツリー構造データＴ（Ｎ）を生成することができる。【選択図】図４
2007257176.tif 000002
【特許請求の範囲】
【請求項１】
任意の自然数の数値の入力を受け付ける入力工程と、
前記入力工程によって入力された数値（以下、「入力数値」という）のルートを設定する設定工程と、
少なくとも前記設定工程によって設定されたルートを含むノード群の中から、リーフを除き、かつ分岐元でもないノードを抽出する抽出工程と、
前記抽出工程によって抽出されたノードに関連付けられている数値を素因数分解する素因数分解工程と、
前記素因数分解工程によって分解された分解結果に基づいて、少なくとも前記ルートを含むツリー構造データを生成する生成工程と、
前記生成工程によって生成されたツリー構造データを出力する出力工程と、
を含んだことを特徴とする情報処理方法。
【請求項２】
ツリー構造データを取得する取得工程と、
前記取得工程によって取得されたツリー構造データを構成するノード間の接続関係に基づいて、前記ツリー構造データに固有な数値を特定する特定工程と、
前記特定工程によって特定された数値を出力する出力工程と、
を含んだことを特徴とする情報処理方法。
【請求項３】
任意の自然数の数値の入力を受け付ける入力手段と、
前記入力手段によって入力された数値（以下、「入力数値」という）のルートを設定する設定手段と、
少なくとも前記設定手段によって設定されたルートを含むノード群の中から、リーフを除き、かつ分岐元でもないノードを抽出する抽出手段と、
前記抽出手段によって抽出されたノードに関連付けられている数値を素因数分解する素因数分解手段と、
前記素因数分解手段によって分解された分解結果に基づいて、少なくとも前記ルートを含むツリー構造データを生成する生成手段と、
前記生成手段によって生成されたツリー構造データを出力する出力手段と、
を備えることを特徴とする情報処理装置。
【請求項４】
ツリー構造データを取得する取得手段と、
前記取得手段によって取得されたツリー構造データを構成するノード間の接続関係に基づいて、前記ツリー構造データに固有な数値を特定する特定手段と、
前記特定手段によって特定された数値を出力する出力手段と、
を備えることを特徴とする情報処理装置。
【請求項５】
任意の自然数の数値の入力を受け付けさせる入力工程と、
前記入力工程によって入力された数値（以下、「入力数値」という）のルートを設定させる設定工程と、
少なくとも前記設定工程によって設定されたルートを含むノード群の中から、リーフを除き、かつ分岐元でもないノードを抽出させる抽出工程と、
前記抽出工程によって抽出されたノードに関連付けられている数値を素因数分解させる素因数分解工程と、
前記素因数分解工程によって分解された分解結果に基づいて、少なくとも前記ルートを含むツリー構造データを生成させる生成工程と、
前記生成工程によって生成されたツリー構造データを出力させる出力工程と、
をコンピュータに実行させる情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、自然数の数値を固有なツリー構造データに、ツリー構造データを固有な数値に変換する情報処理方法、情報処理装置、および情報処理プログラムに関する。
【背景技術】
【０００２】
従来から、数値表現には累進法（１０進法、１６進法など）が利用されている。また、商品管理や個人認証においては、数値をバーコード（図１１を参照）や２次元バーコードなどの図形による表現法が利用されている（たとえば、非特許文献１を参照。）。さらに、セキュリティの分野では、ユーザＩＤやパスワード、その他、クレジットカード番号などの数値を暗号化する技術が利用されている。
【０００３】
【非特許文献１】財団法人  日本規格協会  著、「ＪＩＳハンドブック  情報処理  ハードウェア編」  財団法人  日本規格協会  発行  １９９９年４月２１日
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、数値が大きくなると桁数が増え、表示領域が一方向に長くなり、表示しにくいという問題点がある。また、数値をバーコードや２次元バーコードにより表現する場合には、表示サイズおよび形状が規格により限定されるため、表示の自由度が低いという問題がある。
【０００５】
この発明は、上述した従来技術による問題点を解消するため、数値から変換された図形の表示の自由度の向上を図ることができる情報処理方法、情報処理装置、および情報処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するため、この発明にかかる情報処理方法、情報処理装置、および情報処理プログラムは、任意の自然数の数値の入力を受け付け、入力数値のルートを設定し、少なくともルートを含むノード群の中から、リーフを除き、かつ分岐元でもないノードを抽出し、抽出されたノードに関連付けられている数値を素因数分解し、素因数分解結果に基づいて、少なくとも前記ルートを含むツリー構造データを生成し、生成されたツリー構造データを出力することを特徴とする。
【０００７】
また、上記発明において、前記入力数値が２以上であるか否かを判定し、その判定結果に基づいて、前記ツリー構造データを出力することとしてもよい。すなわち、前記入力数値が２以上でないと判定された場合、前記ルートのみからなるツリー構造データを出力することとし、前記入力数値が２以上であると判定された場合、少なくともルートを含むノード群の中から、リーフを除くノードを抽出する。
【０００８】
また、上記発明において、素因数分解結果に基づいて、分解元の数値に固有な数列を算出し、算出された数列に固有なツリー構造データを生成することとしてもよい。
【０００９】
また、上記発明において、素因数分解結果から得られる素数と当該素数の指数とを前記素数，前記指数の順に並べた組み合わせを、前記素数の値が小さい順に配列し、配列により得られた数列内の全素数を、前記素数の値の小さい順に割り振られた素数番号に変換し、変換後の数列内の一の素数番号を、前記一の素数番号から前記一の素数番号の直前に配列されている他の素数番号を引いた差分値に変換し、数列の末尾の数値が１であるか否かを判断し、変換後の数列と判断結果とに基づいて、前記分解元の数値に固有な数列を算出することとしてもよい。
【００１０】
また、上記発明において、前記末尾の数値が１であると判断された場合、変換後の数列から前記末尾の数値を削除することにより、前記分解元の数値に固有な数列を算出することとしてもよい。
【００１１】
また、上記発明において、前記末尾の数値が１でないと判断された場合、素数番号変換後の数列から前記末尾の数値を減算することにより、前記分解元の数値に固有な数列を算出することとしてもよい。
【００１２】
また、上記発明において、前記分解元の数値に固有な数列を構成する数値（以下、「数列構成数値」という）の個数分のブランチを、前記抽出工程によって抽出されたノードから生成し、生成された各ブランチの先端に、前記各数列構成数値を関連付けて、前記分岐元ノードに対する分岐先ノードを生成し、生成された分岐先ノードに関連付けられている数列構成数値に基づいて、前記分岐先ノードを前記リーフに変換し、前記ルートと前記分岐元ノードと前記ブランチと前記リーフとを含むツリー構造データを生成することとしてもよい。
【００１３】
また、上記発明において、前記ツリー構造データを表示画面に表示することとしてもよい。
【００１４】
また、上記発明において、前記ツリー構造データに関するパラメータの入力を受け付け、入力されたパラメータに基づいて、前記ツリー構造データを前記表示画面に表示することとしてもよい。
【００１５】
また、上記発明において、前記表示画面のサイズに応じて前記ツリー構造データを変形させて前記表示画面に表示することとしてもよい。
【００１６】
また、上記発明において、前記ツリー構造データを、当該ツリー構造データの生成元となるコンピュータ装置から他のコンピュータ装置に送信することとしてもよい。
【００１７】
また、上記発明において、前記入力数値は、ユーザに関する識別コードまたは物品に関する識別コードとしてもよい。
【００１８】
これらの発明によれば、入力数値を、当該入力数値に固有なツリー構造データにより平面的に表現することができる。
【００１９】
また、この発明にかかる情報処理方法、情報処理装置、および情報処理プログラムは、ツリー構造データを取得し、取得されたツリー構造データを構成するノード間の接続関係に基づいて、前記ツリー構造データに固有な数値を特定し、特定された数値を出力することを特徴とする。
【００２０】
また、上記発明において、ツリー構造に関する画像を読み取ることにより、前記ツリー構造データを取得することとしてもよい。
【００２１】
また、上記発明において、前記ツリー構造データを記憶するコンピュータ装置から前記ツリー構造データを受信することとしてもよい。
【００２２】
また、上記発明において、前記数値は、ユーザに関する識別コードまたは物品に関する識別コードとしてもよい。
【００２３】
これらの発明によれば、平面的に表現されたツリー構造データを、当該ツリー構造データに固有な数値に変換することができる。
【発明の効果】
【００２４】
本発明にかかる情報処理方法、情報処理装置、および情報処理プログラムによれば、数値表現の自由度の向上を図ることができるという効果を奏する。また、数値表現の平面化によりセキュリティの向上を図ることができるという効果を奏する。
【発明を実施するための最良の形態】
【００２５】
以下に添付図面を参照して、この発明にかかる情報処理方法、情報処理装置、および情報処理プログラムの好適な実施の形態を詳細に説明する。
【００２６】
（情報処理装置のハードウェア構成）
まず、この発明の実施の形態にかかる情報処理装置のハードウェア構成について説明する。図１は、この発明の実施の形態にかかる情報処理装置のハードウェア構成を示すブロック図である。
【００２７】
図１において、情報処理装置は、ＣＰＵ１０１と、ＲＯＭ１０２と、ＲＡＭ１０３と、ＨＤＤ（ハードディスクドライブ）１０４と、ＨＤ（ハードディスク）１０５と、ＦＤＤ（フレキシブルディスクドライブ）１０６と、着脱可能な記録媒体の一例としてのＦＤ（フレキシブルディスク）１０７と、ディスプレイ１０８と、Ｉ／Ｆ（インターフェース）１０９と、キーボード１１０と、マウス１１１と、スキャナ１１２と、プリンタ１１３と、を備えている。また、各構成部はバス１００によってそれぞれ接続されている。
【００２８】
ここで、ＣＰＵ１０１は、情報処理装置の全体の制御を司る。ＲＯＭ１０２は、ブートプログラムなどのプログラムを記憶している。ＲＡＭ１０３は、ＣＰＵ１０１のワークエリアとして使用される。ＨＤＤ１０４は、ＣＰＵ１０１の制御にしたがってＨＤ１０５に対するデータのリード／ライトを制御する。ＨＤ１０５は、ＨＤＤ１０４の制御で書き込まれたデータを記憶する。
【００２９】
ＦＤＤ１０６は、ＣＰＵ１０１の制御にしたがってＦＤ１０７に対するデータのリード／ライトを制御する。ＦＤ１０７は、ＦＤＤ１０６の制御で書き込まれたデータを記憶したり、ＦＤ１０７に記憶されたデータを情報処理装置に読み取らせたりする。
【００３０】
また、着脱可能な記録媒体として、ＦＤ１０７のほか、ＣＤ−ＲＯＭ（ＣＤ−Ｒ、ＣＤ−ＲＷ）、ＭＯ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、メモリーカードなどであってもよい。ディスプレイ１０８は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ１０８は、たとえば、ＣＲＴ、ＴＦＴ液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【００３１】
Ｉ／Ｆ１０９は、通信回線を通じてインターネットなどのネットワーク１１４に接続され、このネットワーク１１４を介して他の装置に接続される。そして、Ｉ／Ｆ１０９は、ネットワーク１１４と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ１０９には、たとえばモデムやＬＡＮアダプタなどを採用することができる。
【００３２】
キーボード１１０は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス１１１は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
【００３３】
スキャナ１１２は、画像を光学的に読み取り、情報処理装置内に画像データを取り込む。なお、スキャナ１１２は、ＯＣＲ機能を持たせてもよい。また、プリンタ１１３は、画像データや文書データを印刷する。プリンタ１１３には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
【００３４】
（情報処理装置の機能的構成）
つぎに、この発明の実施の形態にかかる情報処理装置の機能的構成について説明する。図２は、この発明の実施の形態にかかる情報処理装置の機能的構成を示すブロック図である。図２では、２つの情報処理装置２００，２１０の機能的構成を示している。ここでは、情報処理装置２００を、ツリー構造データの生成元のコンピュータ装置とし、情報処理装置２１０を、ツリー構造データを解読するコンピュータ装置とする。なお、これらコンピュータ装置は、デスクトップ型のパーソナル・コンピュータでもよく、また、ノート型のパーソナル・コンピュータや携帯電話機、音楽プレーヤなどの携帯型端末であってもよい。
【００３５】
図２において、情報処理装置２００は、入力部２０１と、設定部２０２と、抽出部２０３と、素因数分解部２０４と、生成部２０５と、ツリー構造データ出力部２０６と、を備えている。まず、入力部２０１は、任意の自然数の数値の入力を受け付ける。ここで、入力対象となる自然数としては、たとえば、ユーザに関する識別コードや物品に関する識別コードを用いることができる。
【００３６】
ユーザに関する識別コードとは、ユーザが誰であるかを認証したり特定したりするためのコードであり、たとえば、各種ユーザＩＤやパスワード、その他、クレジットカード番号などの数字列データがある。また、物品（商品や製品）に関する識別コードとは、物品が何であるかを特定するためのコードであり、たとえば、商品コードや製品のシリアル番号、型番号などがある。
【００３７】
上述したように、入力部２０１は、数値化された識別コードを直接入力することとしているが、文字列データから変換された数値を入力することとしてもよい。たとえば、文字列データをアスキーコードやＪＩＳコードなどの文字コードに変換し、変換された文字コードをさらに１０進数に変換することで自然数の数値を入力することができる。
【００３８】
また、設定部２０２は、入力部２０１によって入力された数値（以下、「入力数値」という）のルートを設定する。ここで、ルートとは、ツリー構造データの根を特定するノードである。ノードとは、ツリー構造データの節にあたるデータである。したがって、ルートは節を特定するノードの中で最上位の節（根）を特定するノードである。ルートは、入力数値が入力された場合に設定される。
【００３９】
また、抽出部２０３は、少なくとも設定部２０２によって設定されたルートを含むノード群の中から、リーフを除き、かつ分岐元でもないノードを抽出する。リーフとは、ツリー構造データの葉にあたるデータである。したがって、リーフは節を特定するノードの中で最下位、すなわち、末端の節（葉）を特定するノードである。
【００４０】
また、分岐元でもないノードとは、分岐先のノードが存在しないノードである。このようなノードとしてはリーフが該当するが、ここではリーフは除外されるため、抽出対象となるノードは、ツリー構造データの生成途中において、リーフになっておらず、かつ、分岐先のノードを有するか否かが不明なノード（以下、「未処理ノード」という）である。
【００４１】
なお、入力数値ＮがＮ＝１である場合、ノードは設定部２０２によって設定されたルートのみとなるため、未処理ノードが存在しない。この場合は、後述する素因数分解部２０４による素因数分解をおこなう必要はなく、後述する生成部２０５によって、ルートのみからなるツリー構造データが生成されることとなる。
【００４２】
また、素因数分解部２０４は、抽出部２０３によって抽出されたノードに関連付けられている数値を素因数分解する。具体的には、ルートに関連付けられる入力数値を素因数分解する。また、抽出部２０３によって抽出された未処理ノードに関連付けられている数値も素因数分解する。ここで、素因数分解の対象となる数値をＭとすると、素因数分解結果は、下記式（１）となる。
【００４３】
Ｍ＝Ｐ1E1×Ｐ2E2×…×ＰjEj×…×ＰnEn・・・（１）
【００４４】
式（１）において、ｊ＝１〜ｎである。また、Ｐjは素数であり、Ｅjは素数Ｐjの指数である。なお、Ｐ1＜Ｐ2＜Ｐj…＜Ｐnとする。
【００４５】
また、生成部２０５は、素因数分解部２０４によって分解された分解結果に基づいて、少なくともルートを含むツリー構造データを生成する。具体的には、素因数分解結果である素数Ｐjと指数Ｅjの組み合わせを利用して、入力数値に固有なツリー構造データを生成する。
【００４６】
具体的には、以下の処理によりツリー構造データを生成する。なお、ここでは、入力数値ＮはＮ≧２とする。この場合、設定部２０２により入力数値Ｎのルートが設定され、この入力数値Ｎを素因数分解の対象となる数値Ｍとして素因数分解（上記式（１））されている。
【００４７】
未処理ノード（ルートを含む）が素因数分解された結果得られる素数Ｐjと当該素数Ｐjの指数Ｅjの組み合わせを素数−指数セットＰＥjと称す。上記式（１）では、素数−指数セットＰＥjがｎ個存在することとなる。なお、素数−指数セットＰＥjは、先頭を素数Ｐjとし末尾をその指数Ｅjとする配列［Ｐj，Ｅj］である。
【００４８】
まず、素数Ｐjの小さい順に素数−指数セットＰＥjを配列する。配列の結果得られる数列Ｓ１は、下記式（２）の通りである。
【００４９】
Ｓ１＝［Ｐ1，Ｅ1，Ｐ2，Ｅ2，…，Ｐj，Ｅj，…,Ｐn，Ｅn］・・・（２）
【００５０】
この数列Ｓ１の先頭（左端）から奇数番目の数値（Ｐ1，Ｐ2，…，Ｐj，…,Ｐn）はすべて素数である。この素数Ｐjを素数番号Ｉjに変換する。図３は、素数−素数番号変換テーブルを示す説明図である。
【００５１】
図３において、素数番号Ｉjは、２以上のすべての素数を小さい順に並べた順番である。つまり素数２の素数番号は１、素数３の素数番号は２、素数５の素数番号は３、・・・素数１７の素数番号は７,・・・となる。したがって、数列Ｓ１の素数Ｐjを素数番号Ｉjに変換したあとの数列Ｓ２、下記式（３）の通りである。
【００５２】
Ｓ２＝［Ｉ1，Ｅ1，Ｉ2，Ｅ2，…，Ｉj，Ｅj，…,Ｉn，Ｅn］・・・（３）
【００５３】
つぎに、数列Ｓ２内の２番目以降の素数番号Ｉjを、直前の素数番号Ｉj-1との差に変換する。変換したあとの数列Ｓ３は下記式（４）の通りである。
【００５４】
Ｓ３＝［Ｉ1，Ｅ1，Ｉ2−Ｉ1，Ｅ2，Ｉ3−Ｉ2，Ｅ3，…，Ｉn−Ｉn-1，Ｅn］
・・・（４）
【００５５】
つぎに、数列Ｓ３の末尾（右端）の指数Ｅnに着目して数列Ｓ３を数列Ｓ４に変換する。末尾の指数ＥnがＥn＝１の場合は、上記数列Ｓ３から指数Ｅnを削除する。この場合、変換後の数列Ｓ４は下記式（５）の通りである。
【００５６】
Ｓ４＝［Ｉ1，Ｅ1，Ｉ2−Ｉ1，Ｅ2，Ｉ3−Ｉ2，Ｅ3，…，Ｉn−Ｉn-1］
・・・（５）
【００５７】
一方、末尾の指数ＥnがＥn≧２の場合は、その指数Ｅnから１を引く。この場合、変換後の数列Ｓ４は下記式（６）の通りである。
【００５８】
Ｓ４＝［Ｉ1，Ｅ1，Ｉ2−Ｉ1，Ｅ2，Ｉ3−Ｉ2，Ｅ3，…，Ｉn−Ｉn-1，Ｅn−１］
・・・（６）
【００５９】
最後に、得られた数列Ｓ４を基に、ノード（ルートを含む）から枝延ばしをおこなってブランチを生成する。ブランチは、分岐元のノード（ルートを含む）と分岐先のノードとを連結する線データである。ブランチの太さはルートから延ばす先頭（左端）のブランチだけ太線とし、それ以外は細線とする。ブランチは数列Ｓ４内の数値の個数分生成する。ブランチの先端には分岐先ノードを生成し、数列Ｓ４の先頭（左端）の数値を順に、たとえば、右回りに関連付ける。この処理を未処理ノードがなくなる前でおこなうことにより、ツリー構造データが生成される。枝延ばしされたノードは、ルートは大黒丸、それ以外は小黒丸とする。
【００６０】
また、ツリー構造データ出力部２０６は、生成部２０５によって生成されたツリー構造データを出力する。ツリー構造データ出力部２０６は、具体的には、たとえば、表示制御部２０７を有する。表示制御部２０７は、ツリー構造を表示画面２０８に表示する。また、入力部２０１によりツリー構造データに関するパラメータが入力されている場合には、このパラメータに基づいて、ツリー構造を表示画面２０８に表示する。
【００６１】
また、表示制御部２０７は、パラメータを設定することにより、表示画面２０８の大きさにより、ブランチの角度や長さを変更することで、表示画面２０８に収まるようにツリー構造データを表示することもできる。なお、表示されるツリー構造データは印刷出力することとしてもよい。また、ツリー構造データ出力部２０６は、送信部２０９を有する。送信部２０９は、ツリー構造データを情報処理装置２１０に送信する。
【００６２】
なお、上述した入力部２０１、設定部２０２、抽出部２０３、素因数分解部２０４、生成部２０５、およびツリー構造データ出力部２０６は、具体的には、たとえば、図１に示したＲＯＭ１０２，ＲＡＭ１０３，ＨＤ１０５などの記録媒体に記録されているプログラムを、ＣＰＵ１０１に実行させることによって、またはＩ／Ｆ１０９によって、その機能を実現する。
【００６３】
また、情報処理装置２１０は、取得部２１１と、特定部２１４と、数値出力部２１５と、を備えている。取得部２１１は、ツリー構造データを取得する。具体的には、取得部２１１は、読取部２１２と受信部２１３とを備えている。読取部２１２は、情報処理装置２００の表示画面２０８に表示されたツリー構造画像や印刷出力されたツリー構造画像をスキャニングすることで、ツリー構造データを取得する。また、受信部２１３は、情報処理装置２００から送信されてくるツリー構造データを受信する。
【００６４】
また、特定部２１４は、取得部２１１によって取得されたツリー構造データに固有な数値を特定する。具体的には、ツリー構造データを構成するノードの接続関係により固有な数値を特定する。
【００６５】
すなわち、数値はツリー構造データに固有な値であるため、数値ごとにノードの接続関係が異なる。したがって、ノードの接続関係を特定できれば、上述した段落番号［００４１］から段落番号［００５９］までのツリー構造データを生成する手順の逆の手順をたどることにより、固有な数値を割り出すことができる。
【００６６】
また、数値出力部２１５は、特定部２１４によって特定された数値を出力する。具体的には、数値出力部２１５は、表示制御部２１６を有し、特定された数値を表示画面２１７に表示する。なお、出力形式は表示に限らず、印刷出力や音声出力であってもよい。
【００６７】
なお、上述した取得部２１１、特定部２１４、数値出力部２１５は、具体的には、たとえば、図１に示したＲＯＭ１０２，ＲＡＭ１０３，ＨＤ１０５などの記録媒体に記録されているプログラムを、ＣＰＵ１０１に実行させることによって、またはＩ／Ｆ１０９によって、その機能を実現する。
【００６８】
（ツリー構造データの生成例）
つぎに、ツリー構造データの生成例について説明する。図４は、ツリー構造データの生成工程を示す説明図である。ここでは、入力数値ＮをＮ＝３５０４６０として説明する。
【００６９】
まず、（Ａ）において、まず入力数値Ｎが入力されると設定部２０２によりルートＲを設定する。つぎに、入力数値Ｎ（＝３５０４６０）を小さい素数順に素因数分解すると、下記式（７）となる。
【００７０】
３５０４６０＝２2×３3×５1×１１1×５９1・・・（７）
【００７１】
式（７）において、２2の素数−指数セットは［２，２］、３3の素数−指数セットは［３，３］、５1の素数−指数セットは［５，１］、１１1の素数−指数セットは［１１，１］、５９の素数−指数セットは［５９，１］となる。
【００７２】
この素数−指数セットを素数の小さい順に配列する。配列の結果得られる数列Ｓ１は、下記式（８）の通りである。
【００７３】
Ｓ１＝［２，２，３，３，５，１，１１，１，５９，１］・・・（８）
【００７４】
この式（８）の数列Ｓ１の素数を素数−素数番号変換テーブルを用いて素数番号に変換する。変換後の数列Ｓ２は、下記式（９）の通りである。
【００７５】
Ｓ２＝［１，２，２，３，３，１，５，１，１７，１］・・・（９）
【００７６】
つぎに、式（９）に示した数列Ｓ２内の２番目以降の素数番号を、直前の素数番号との差に変換する。変換したあとの数列Ｓ３は下記式（１０）の通りである。
【００７７】
Ｓ３＝［１，２，１，３，１，１，２，１，１２，１］・・・（１０）
【００７８】
つぎに、式（１０）に示した数列Ｓ３の末尾（右端）の指数１に着目して数列Ｓ３を数列Ｓ４に変換する。末尾の指数は１であるため、上記数列Ｓ３から末尾の指数１を削除する。この場合、変換後の数列Ｓ４は下記式（１１）の通りである。
【００７９】
Ｓ４＝［１，２，１，３，１，１，２，１，１２］・・・（１１）
【００８０】
この数列Ｓ４を構成する数値は９個存在するので、図４の（Ｂ）においては、式（１１）の数列Ｓ４を元に９本のブランチを生成する。左端のブランチについては、ノードＲから出る先頭のブランチなので太線とする。各ブランチの先端には、数列Ｓ４の数値が先頭から右回りに配列される。このブランチの先端に配置された数値が分岐先ノードとなる。この分岐先ノードの数値が１である場合、これ以上素因数分解できない。したがって、（Ｃ）に示すように、リーフ（（Ｃ）中、ノードＲより小さい●で表示）に変換する。
【００８１】
数値が２以上のノードについては、素因数分解可能である。ここで、（Ｃ）中、「１２」について小さい素数順に素因数分解すると、１２＝２2×３1となる。これにより、数列Ｓ１＝［２，２，３，１］となる。素数を素数番号に変換すると、Ｓ２＝［１，２，２，１］となる。素数番号を直前の素数番号との差分に変換すると、Ｓ３＝［１，２，１，１］となる。数列Ｓ３において末尾の指数は１であるため、削除すると、Ｓ４＝［１，２，１］となる。
【００８２】
この数列Ｓ４を構成する数値は３個存在するので、（Ｄ）では、数値「１２」のノードからブランチを３本生成し、数列Ｓ４を構成する各数値を分岐先ノードとする。数値が１となる分岐先ノードはリーフ（（Ｄ）中、ノードＲより小さい●で表示）に変換する。
【００８３】
また、（Ｄ）中、数値が２以上のノードについては、素因数分解可能である。ここで、（Ｄ）中、「２」について小さい素数順に素因数分解すると、２＝２1となる。これにより、数列Ｓ１＝［２，１］となる。素数を素数番号に変換すると、Ｓ２＝［１，１］となる。素数番号は１つしかないため差分はとれず、Ｓ３＝［１，１］となる。数列Ｓ３において末尾の指数は１であるため、削除すると、Ｓ４＝［１］となる。
【００８４】
この数列Ｓ４を構成する数値は１個存在するので、（Ｅ）では、数値「２」のノードからブランチを１本生成し、数列Ｓ４を構成する数値１を分岐先ノードとする。分岐先ノードの数値が１なので、分岐先ノードはリーフ（（Ｅ）中、ノードＲより小さい●で表示）に変換する。このようにして、（Ｅ）に示したように、入力数値Ｎ（＝３５０４６０）に固有なツリー構造データＴ（Ｎ）を生成することができる。
【００８５】
（ツリー構造データ生成処理手順）
つぎに、この発明の実施の形態にかかる情報処理装置２００によるツリー構造データ生成処理手順について説明する。図５および図６は、この発明の実施の形態にかかる情報処理装置２００によるツリー構造データ生成処理手順を示すフローチャートである。
【００８６】
まず、図５において、入力部２０１により数値Ｎが入力されるまで待ち受け（ステップＳ５０１：Ｎｏ）、数値Ｎが入力された場合（ステップＳ５０１：Ｙｅｓ）、数値Ｎのルートを設定する（ステップＳ５０２）。そして、ルートに設定された数値ＮがＮ≧２であるか否かを判断する（ステップＳ５０３）。
【００８７】
Ｎ≧２でない場合（ステップＳ５０３：Ｎｏ）、数値ＮはＮ＝１であるため、数値Ｎ（Ｎ＝１）のツリー構造データ、すなわち、ルートのみのツリー構造データをメモリ（たとえば、図１に示したＲＡＭ１０３、ＨＤ１０５）に保持し（ステップＳ５０４）、ツリー構造データ出力部２０６により出力する（ステップＳ５０５）。
【００８８】
一方、Ｎ≧２である場合（ステップＳ５０３：Ｙｅｓ）、図６のステップＳ６０１に移行する。図６において、ステップＳ６０１では、未処理ノードがあるか否かを判断する。図４でいえば、未処理ノードとは、小黒丸になっていない、数値の状態のノードである。
【００８９】
未処理ノードがある場合（ステップＳ６０１：Ｙｅｓ）、未完成状態のツリー構造データから未処理ノードを抽出する（ステップＳ６０２）。そして、素因数分解部２０４により、未処理ノードの数値Ｍを素因数分解する（ステップＳ６０３）。
【００９０】
そして、素数Ｐjの小さい順に素数−指数セットＰＥjを配列して、数列Ｓ１を得る（ステップＳ６０４）。そして、この数列Ｓ１の素数Ｐjを素数番号Ｉjに変換して、数列Ｓ２を得る（ステップＳ６０５）。そして、数列Ｓ２について、素数番号ＩjをＩj−Ｉj-1に変換して（ステップＳ６０６）、数列Ｓ３を得る。
【００９１】
つぎに、数列Ｓ３の末尾の指数ＥnがＥn＝１であるか否かを判断する（ステップＳ６０７）。Ｅn＝１である場合（ステップＳ６０７：Ｙｅｓ）、Ｅnを削除した数列Ｓ４を得る（ステップＳ６０８）。一方、Ｅn＝１でない場合（ステップＳ６０７：Ｎｏ）、Ｅn＝Ｅn−１とした数列Ｓ４を得る（ステップＳ６０９）。
【００９２】
そして、数列Ｓ４内の数値の個数分のブランチを未処理ノードから生成し（ステップＳ６１０）、数列Ｓ４内の数値を分岐先ノードとして生成する（ステップＳ６１１）。そして、この分岐先ノードの数値が２以上の値であるか否かを判断する（ステップＳ６１２）。２以上の値である場合（ステップＳ６１２：Ｙｅｓ）、分岐先ノードをあらたな未処理ノードに決定し（ステップＳ６１３）、ステップＳ６０１に戻る。
【００９３】
一方、２以上の値でない場合（ステップＳ６１２：Ｎｏ）、数値１のノードであるため、当該ノードをリーフに変換する（ステップＳ６１４）。なお、未処理ノードはこの時点で処理済ノードとなる。図４でいえば、リーフ以外の小黒丸となる。
【００９４】
一方、ステップＳ６０１において、未処理ノードがない場合（ステップＳ６０１：Ｎｏ）、図５に示したステップＳ５０４に移行して、数値Ｎのツリー構造データをメモリに保持し（ステップＳ５０４）、ツリー構造データ出力部２０６により数値Ｎのツリー構造データを出力する（ステップＳ５０５）。これにより、一連の処理を終了する。
【００９５】
この図５および図６のツリー構造データ生成処理手順によって生成された各種ツリー構造データを図７に示す。図７は、ツリー構造データ生成処理手順によって生成された各種ツリー構造データを示す説明図である。図７では、入力数値Ｎ（Ｎ＝１〜２０）までのツリー構造データを示している。
【００９６】
（ツリー構造データ解読処理手順）
つぎに、この発明の実施の形態にかかる情報処理装置２１０によるツリー構造データ解読処理手順について説明する。図８は、この発明の実施の形態にかかる情報処理装置２１０によるツリー構造データ解読処理手順を示すフローチャートである。図８において、ツリー構造データが取得されるまで待ち受け（ステップＳ８０１：Ｎｏ）、取得部２１１によりツリー構造データが取得された場合（ステップＳ８０１：Ｙｅｓ）、特定部２１４によりツリー構造データに固有な数値を特定する（ステップＳ８０２）。
【００９７】
すなわち、段落番号［００８７］から段落番号［００９４］までのツリー構造データ生成処理手順（図６のフローチャート）の逆の手順をたどることにより、固有な数値を特定する。そして、数値出力部２１５により、特定部２１４により特定された数値を出力する（ステップＳ８０３）。これにより、一連の処理を終了する。
【００９８】
（ツリー構造データの表示例）
つぎに、ツリー構造データの表示例について説明する。図９は、ツリー構造データの表示例を示す説明図である。図９では、ツリー構造データＴ（Ｎ）として、図４の生成工程により生成されたツリー構造データを用いる。図９において、（Ａ）は、通常の表示形態である。表示形態は、ツリー構造データＴ（Ｎ）に関するパラメータによって変形することができる。
【００９９】
たとえば、（Ｂ）では、表示エリア９０１（表示画面２０８に相当）が略正方形であるため、ノードからのブランチの角度を変えたりブランチの長さを短くすることで、ツリー構造データＴ（Ｎ）を折りたたみ、表示エリア９０２に収まるように表示されている。
【０１００】
同様に、（Ｃ）では、表示エリア９０２（表示画面２０８に相当）が縦長の略長方形であるため、ノードからのブランチの角度を変えたりブランチの長さを短くすることで、ツリー構造データＴ（Ｎ）を折りたたみ、表示エリア９０２に収まるように表示されている。
【０１０１】
情報処理装置２１０では、ツリー構造データを取得して特定する際、ノードの個数、ブランチの本数、リーフの個数、各ノードからのブランチの本数などを手掛かりとしてツリー構造データに固有な数値を特定しているため、ノードがどのように折れ曲がっていたり、ブランチの長さが異なっていても、数値特定の手掛かりとする情報が一致していれば、ツリー構造データの形状が変形されていてもよい。したがって、同一の数値で表現可能なツリー構造データのバリエーションを増加することができるというメリットがある。
【０１０２】
図１０は読取面１０００（表示画面２０８に相当）を傾けた場合のツリー構造データを示す説明図である。ツリー構造データＴ（Ｎ）は、ノード（ルート、リーフを含む）とブランチからなる要素で構成されているため、この要素さえ特定できればよい。
【０１０３】
このため、多少読取面１０００が傾いてもまた歪んでいても、ノード間の接続関係が保たれるので読み取りやすく、読取誤差が少ないというメリットがある。これに対して図１１に示したバーコードは、幅の異なるバーを組み合わせることにより数値を表現しており、読み取り面が傾いている場合や歪んでいる場合は読み取りにくく、読取誤差が大きいというデメリットがある。
【０１０４】
このように、上述した実施の形態によれば、数値Ｎが大きくなるとツリーが平面上で拡大する。また、ツリー構造データは、ノード（ルート、リーフを含む）とブランチにより構成される。このため、ノードの接続関係さえ保たれていれば、ツリー構造データに固有な数値は変わらないため、形状を変形することができる。したがって、従来の数値表現に比べて、各種形状の表示エリアに表示しやすいというメリットがある。
【０１０５】
また、ツリー構造データと数値が一意に対応するので、ツリー構造データを数値として管理することができる。たとえば、ツリー構造データを数値に変換して記憶しておき、必要に応じて元のツリー構造データに復元するということができる。
【０１０６】
また、ツリー構造データを個人認証に応用することができる。たとえば、パスワードの入力を、数字の入力以外に、タッチペンなど手書きによるツリー構造の入力とすることにより、ユーザは、数字列の記憶とツリー構造の記憶という二重の方式で記憶でき、パスワードの忘却が防ぐことができる。また、数字列がランダムであっても、ツリー構造データで表現すれば構造が規則的であるケースがあり、ユーザは各自の好みに応じて覚えやすいツリー構造を選べるというメリットがある。
【０１０７】
以上説明したように、情報処理方法、情報処理装置、および情報処理プログラムによれば、数値から変換された図形の表示の自由度の向上を図ることができるという効果を奏する。また、セキュリティの向上を図ることができるという効果を奏する。
【０１０８】
なお、本実施の形態で説明した情報処理方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な伝送媒体であってもよい。
【０１０９】
（付記１）任意の自然数の数値の入力を受け付ける入力工程と、
前記入力工程によって入力された数値（以下、「入力数値」という）のルートを設定する設定工程と、
少なくとも前記設定工程によって設定されたルートを含むノード群の中から、リーフを除き、かつ分岐元でもないノードを抽出する抽出工程と、
前記抽出工程によって抽出されたノードに関連付けられている数値を素因数分解する素因数分解工程と、
前記素因数分解工程によって分解された分解結果に基づいて、少なくとも前記ルートを含むツリー構造データを生成する生成工程と、
前記生成工程によって生成されたツリー構造データを出力する出力工程と、
を含んだことを特徴とする情報処理方法。
【０１１０】
（付記２）前記入力数値が２以上であるか否かを判定する入力数値判定工程を含み、
前記出力工程は、
前記入力数値判定工程によって判定された判定結果に基づいて、前記ツリー構造データを出力することを特徴とする付記１に記載の情報処理方法。
【０１１１】
（付記３）前記出力工程は、
前記入力数値判定工程によって前記入力数値が２以上でないと判定された場合、前記ルートのみからなるツリー構造データを出力することを特徴とする付記２に記載の情報処理方法。
【０１１２】
（付記４）前記抽出工程は、
前記入力数値判定工程によって前記入力数値が２以上であると判定された場合、少なくとも前記設定工程によって設定されたルートを含むノード群の中から、リーフを除くノードを抽出することを特徴とする付記２に記載の情報処理方法。
【０１１３】
（付記５）前記素因数分解工程によって分解された分解結果に基づいて、分解元の数値に固有な数列を算出する算出工程を含み、
前記生成工程は、
前記算出工程によって算出された数列に固有なツリー構造データを生成することを特徴とする付記１〜４のいずれか一つに記載の情報処理方法。
【０１１４】
（付記６）前記素因数分解工程によって分解された分解結果から得られる素数と当該素数の指数とを前記素数，前記指数の順に並べた組み合わせを、前記素数の値が小さい順に配列する配列工程と、
前記配列工程による配列により得られた数列内の全素数を、前記素数の値の小さい順に割り振られた素数番号に変換する素数変換工程と、
前記素数変換工程による変換後の数列内の一の素数番号を、前記一の素数番号から前記一の素数番号の直前に配列されている他の素数番号を引いた差分値に変換する素数番号変換工程と、
前記素数番号変換工程による変換後の数列の末尾の数値が１であるか否かを判断する判断工程と、を含み、
前記算出工程は、
前記素数番号変換工程による変換後の数列と、前記判断工程によって判断された判断結果とに基づいて、前記分解元の数値に固有な数列を算出することを特徴とする付記５に記載の情報処理方法。
【０１１５】
（付記７）前記算出工程は、
前記判断工程により前記末尾の数値が１であると判断された場合、前記素数番号変換工程による変換後の数列から前記末尾の数値を削除することにより、前記分解元の数値に固有な数列を算出することを特徴とする付記６に記載の情報処理方法。
【０１１６】
（付記８）前記算出工程は、
前記判断工程により前記末尾の数値が１でないと判断された場合、前記素数番号変換工程による変換後の数列から前記末尾の数値を減算することにより、前記分解元の数値に固有な数列を算出することを特徴とする付記６に記載の情報処理方法。
【０１１７】
（付記９）前記算出工程によって算出された前記分解元の数値に固有な数列を構成する数値（以下、「数列構成数値」という）の個数分のブランチを、前記抽出工程によって抽出されたノードから生成するブランチ生成工程と、
前記ブランチ生成工程によって生成された各ブランチの先端に、前記各数列構成数値を関連付けて、前記分岐元ノードに対する分岐先ノードを生成する分岐先ノード生成工程と、
前記分岐先ノード生成工程によって生成された分岐先ノードに関連付けられている数列構成数値に基づいて、前記分岐先ノードを前記リーフに変換する変換工程と、を含み、
前記生成工程は、
前記ルートと前記分岐元ノードと前記ブランチと前記変換工程によって変換されたリーフとを含むツリー構造データを生成することを特徴とする付記５〜９のいずれか一つに記載の情報処理方法。
【０１１８】
（付記１０）前記出力工程は、
前記ツリー構造データを表示画面に表示することを特徴とする付記１〜９のいずれか一つに記載の情報処理方法。
【０１１９】
（付記１１）前記入力工程は、
前記ツリー構造データに関するパラメータの入力を受け付け、
前記出力工程は、
前記入力工程によって入力されたパラメータに基づいて、前記ツリー構造データを前記表示画面に表示することを特徴とする付記１０に記載の情報処理方法。
【０１２０】
（付記１２）前記表示画面のサイズに応じて前記ツリー構造データを変形させて前記表示画面に表示することを特徴とする付記１０または１１に記載の情報処理方法。
【０１２１】
（付記１３）前記出力工程は、
前記ツリー構造データを、当該ツリー構造データの生成元となるコンピュータ装置から他のコンピュータ装置に送信することを特徴とする付記１〜１２のいずれか一つに記載の情報処理方法。
【０１２２】
（付記１４）前記入力数値は、ユーザに関する識別コードであることを特徴とする付記１〜１３のいずれか一つに記載の情報処理方法。
【０１２３】
（付記１５）前記入力数値は、物品に関する識別コードであることを特徴とする付記１〜１３のいずれか一つに記載の情報処理方法。
【０１２４】
（付記１６）ツリー構造データを取得する取得工程と、
前記取得工程によって取得されたツリー構造データを構成するノード間の接続関係に基づいて、前記ツリー構造データに固有な数値を特定する特定工程と、
前記特定工程によって特定された数値を出力する出力工程と、
を含んだことを特徴とする情報処理方法。
【０１２５】
（付記１７）前記取得工程は、
ツリー構造に関する画像を読み取ることにより、前記ツリー構造データを取得することを特徴とする付記１６に記載の情報処理方法。
【０１２６】
（付記１８）前記取得工程は、
前記ツリー構造データを記憶するコンピュータ装置から前記ツリー構造データを受信することを特徴とする付記１６に記載の情報処理方法。
【０１２７】
（付記１９）前記数値は、ユーザに関する識別コードであることを特徴とする付記１６〜１８のいずれか一つに記載の情報処理方法。
【０１２８】
（付記２０）前記数値は、物品に関する識別コードであることを特徴とする付記１６〜１８のいずれか一つに記載の情報処理方法。
【０１２９】
（付記２１）任意の自然数の数値の入力を受け付ける入力手段と、
前記入力手段によって入力された数値（以下、「入力数値」という）のルートを設定する設定手段と、
少なくとも前記設定手段によって設定されたルートを含むノード群の中から、リーフを除き、かつ分岐元でもないノードを抽出する抽出手段と、
前記抽出手段によって抽出されたノードに関連付けられている数値を素因数分解する素因数分解手段と、
前記素因数分解手段によって分解された分解結果に基づいて、少なくとも前記ルートを含むツリー構造データを生成する生成手段と、
前記生成手段によって生成されたツリー構造データを出力する出力手段と、
を備えることを特徴とする情報処理装置。
【０１３０】
（付記２２）ツリー構造データを取得する取得手段と、
前記取得手段によって取得されたツリー構造データを構成するノード間の接続関係に基づいて、前記ツリー構造データに固有な数値を特定する特定手段と、
前記特定手段によって特定された数値を出力する出力手段と、
を備えることを特徴とする情報処理装置。
【０１３１】
（付記２３）任意の自然数の数値の入力を受け付けさせる入力工程と、
前記入力工程によって入力された数値（以下、「入力数値」という）のルートを設定させる設定工程と、
少なくとも前記設定工程によって設定されたルートを含むノード群の中から、リーフを除き、かつ分岐元でもないノードを抽出させる抽出工程と、
前記抽出工程によって抽出されたノードに関連付けられている数値を素因数分解させる素因数分解工程と、
前記素因数分解工程によって分解された分解結果に基づいて、少なくとも前記ルートを含むツリー構造データを生成させる生成工程と、
前記生成工程によって生成されたツリー構造データを出力させる出力工程と、
をコンピュータに実行させる情報処理プログラム。
【０１３２】
（付記２４）ツリー構造データを取得させる取得工程と、
前記取得工程によって取得されたツリー構造データを構成するノード間の接続関係に基づいて、前記ツリー構造データに固有な数値を特定させる特定工程と、
前記特定工程によって特定された数値を出力させる出力工程と、
をコンピュータに実行させる情報処理プログラム。
【０１３３】
（付記２５）付記２３または２４に記載の情報処理プログラムを記録した前記コンピュータに読み取り可能な記録媒体。
【産業上の利用可能性】
【０１３４】
以上のように、本発明にかかる情報処理方法、情報処理装置、および情報処理プログラムは、商品管理やセキュリティ（個人認証など）などに適している。
【図面の簡単な説明】
【０１３５】
【図１】この発明の実施の形態にかかる情報処理装置のハードウェア構成を示すブロック図である。
【図２】この発明の実施の形態にかかる情報処理装置の機能的構成を示すブロック図である。
【図３】素数−素数番号変換テーブルを示す説明図である。
【図４】ツリー構造データの生成工程を示す説明図である。
【図５】この発明の実施の形態にかかる情報処理装置２００によるツリー構造データ生成処理手順を示すフローチャート（その１）である。
【図６】この発明の実施の形態にかかる情報処理装置２００によるツリー構造データ生成処理手順を示すフローチャート（その２）である。
【図７】ツリー構造データ生成処理手順によって生成された各種ツリー構造データを示す説明図である。
【図８】この発明の実施の形態にかかる情報処理装置２１０によるツリー構造データ解読処理手順を示すフローチャートである。
【図９】ツリー構造データの表示例を示す説明図である。
【図１０】読取面を傾けた場合のツリー構造データを示す説明図である。
【図１１】バーコードを示す説明図である。
【符号の説明】
【０１３６】
２００，２１０  情報処理装置
２０１  入力部
２０２  設定部
２０３  抽出部
２０４  素因数分解部
２０５  生成部
２０６  ツリー構造データ出力部
２０７，２１６  表示制御部
２０８，２１７  表示画面
２０９  送信部
２１１  取得部
２１２  読取部
２１３  受信部
２１４  特定部
２１５  数値出力部
【図１】
2007257176.tif 000003
【図２】
2007257176.tif 000004
【図３】
2007257176.tif 000005
【図４】
2007257176.tif 000006
【図５】
2007257176.tif 000007
【図６】
2007257176.tif 000008
【図７】
2007257176.tif 000009
【図８】
2007257176.tif 000010
【図９】
2007257176.tif 000011
【図１０】
2007257176.tif 000012
【図１１】
2007257176.tif 000013