説明

情報処理方法、情報処理装置、および情報処理プログラム

【課題】数値表現の自由度の向上を図ること。
【解決手段】入力数値NをN=350460とする。(A)において、入力数値Nが入力されるとルートRを設定する。(B)において、数列S4を元に9本のブランチを生成する。ブランチの先端に配置された数値が分岐先ノードとなる。(C)に示すように、リーフ((C)中、ノードRより小さい●で表示)に変換する。数値が2以上のノードについては、素因数分解可能である。(D)では、数値「12」のノードからブランチを3本生成し、数列S4を構成する各数値を分岐先ノードとする。数値が1となる分岐先ノードはリーフ((D)中、ノードRより小さい●で表示)に変換する。(D)中、数値が2以上のノードについては、素因数分解可能である。このようにして、(E)に示したように、入力数値Nに固有なツリー構造データT(N)を生成することができる。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、自然数の数値を固有なツリー構造データに、ツリー構造データを固有な数値に変換する情報処理方法、情報処理装置、および情報処理プログラムに関する。
【背景技術】
【0002】
従来から、数値表現には累進法(10進法、16進法など)が利用されている。また、商品管理や個人認証においては、数値をバーコード(図11を参照)や2次元バーコードなどの図形による表現法が利用されている(たとえば、非特許文献1を参照。)。さらに、セキュリティの分野では、ユーザIDやパスワード、その他、クレジットカード番号などの数値を暗号化する技術が利用されている。
【0003】
【非特許文献1】財団法人 日本規格協会 著、「JISハンドブック 情報処理 ハードウェア編」 財団法人 日本規格協会 発行 1999年4月21日
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかしながら、数値が大きくなると桁数が増え、表示領域が一方向に長くなり、表示しにくいという問題点がある。また、数値をバーコードや2次元バーコードにより表現する場合には、表示サイズおよび形状が規格により限定されるため、表示の自由度が低いという問題がある。
【0005】
この発明は、上述した従来技術による問題点を解消するため、数値から変換された図形の表示の自由度の向上を図ることができる情報処理方法、情報処理装置、および情報処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
上述した課題を解決し、目的を達成するため、この発明にかかる情報処理方法、情報処理装置、および情報処理プログラムは、任意の自然数の数値の入力を受け付け、入力数値のルートを設定し、少なくともルートを含むノード群の中から、リーフを除き、かつ分岐元でもないノードを抽出し、抽出されたノードに関連付けられている数値を素因数分解し、素因数分解結果に基づいて、少なくとも前記ルートを含むツリー構造データを生成し、生成されたツリー構造データを出力することを特徴とする。
【0007】
また、上記発明において、前記入力数値が2以上であるか否かを判定し、その判定結果に基づいて、前記ツリー構造データを出力することとしてもよい。すなわち、前記入力数値が2以上でないと判定された場合、前記ルートのみからなるツリー構造データを出力することとし、前記入力数値が2以上であると判定された場合、少なくともルートを含むノード群の中から、リーフを除くノードを抽出する。
【0008】
また、上記発明において、素因数分解結果に基づいて、分解元の数値に固有な数列を算出し、算出された数列に固有なツリー構造データを生成することとしてもよい。
【0009】
また、上記発明において、素因数分解結果から得られる素数と当該素数の指数とを前記素数,前記指数の順に並べた組み合わせを、前記素数の値が小さい順に配列し、配列により得られた数列内の全素数を、前記素数の値の小さい順に割り振られた素数番号に変換し、変換後の数列内の一の素数番号を、前記一の素数番号から前記一の素数番号の直前に配列されている他の素数番号を引いた差分値に変換し、数列の末尾の数値が1であるか否かを判断し、変換後の数列と判断結果とに基づいて、前記分解元の数値に固有な数列を算出することとしてもよい。
【0010】
また、上記発明において、前記末尾の数値が1であると判断された場合、変換後の数列から前記末尾の数値を削除することにより、前記分解元の数値に固有な数列を算出することとしてもよい。
【0011】
また、上記発明において、前記末尾の数値が1でないと判断された場合、素数番号変換後の数列から前記末尾の数値を減算することにより、前記分解元の数値に固有な数列を算出することとしてもよい。
【0012】
また、上記発明において、前記分解元の数値に固有な数列を構成する数値(以下、「数列構成数値」という)の個数分のブランチを、前記抽出工程によって抽出されたノードから生成し、生成された各ブランチの先端に、前記各数列構成数値を関連付けて、前記分岐元ノードに対する分岐先ノードを生成し、生成された分岐先ノードに関連付けられている数列構成数値に基づいて、前記分岐先ノードを前記リーフに変換し、前記ルートと前記分岐元ノードと前記ブランチと前記リーフとを含むツリー構造データを生成することとしてもよい。
【0013】
また、上記発明において、前記ツリー構造データを表示画面に表示することとしてもよい。
【0014】
また、上記発明において、前記ツリー構造データに関するパラメータの入力を受け付け、入力されたパラメータに基づいて、前記ツリー構造データを前記表示画面に表示することとしてもよい。
【0015】
また、上記発明において、前記表示画面のサイズに応じて前記ツリー構造データを変形させて前記表示画面に表示することとしてもよい。
【0016】
また、上記発明において、前記ツリー構造データを、当該ツリー構造データの生成元となるコンピュータ装置から他のコンピュータ装置に送信することとしてもよい。
【0017】
また、上記発明において、前記入力数値は、ユーザに関する識別コードまたは物品に関する識別コードとしてもよい。
【0018】
これらの発明によれば、入力数値を、当該入力数値に固有なツリー構造データにより平面的に表現することができる。
【0019】
また、この発明にかかる情報処理方法、情報処理装置、および情報処理プログラムは、ツリー構造データを取得し、取得されたツリー構造データを構成するノード間の接続関係に基づいて、前記ツリー構造データに固有な数値を特定し、特定された数値を出力することを特徴とする。
【0020】
また、上記発明において、ツリー構造に関する画像を読み取ることにより、前記ツリー構造データを取得することとしてもよい。
【0021】
また、上記発明において、前記ツリー構造データを記憶するコンピュータ装置から前記ツリー構造データを受信することとしてもよい。
【0022】
また、上記発明において、前記数値は、ユーザに関する識別コードまたは物品に関する識別コードとしてもよい。
【0023】
これらの発明によれば、平面的に表現されたツリー構造データを、当該ツリー構造データに固有な数値に変換することができる。
【発明の効果】
【0024】
本発明にかかる情報処理方法、情報処理装置、および情報処理プログラムによれば、数値表現の自由度の向上を図ることができるという効果を奏する。また、数値表現の平面化によりセキュリティの向上を図ることができるという効果を奏する。
【発明を実施するための最良の形態】
【0025】
以下に添付図面を参照して、この発明にかかる情報処理方法、情報処理装置、および情報処理プログラムの好適な実施の形態を詳細に説明する。
【0026】
(情報処理装置のハードウェア構成)
まず、この発明の実施の形態にかかる情報処理装置のハードウェア構成について説明する。図1は、この発明の実施の形態にかかる情報処理装置のハードウェア構成を示すブロック図である。
【0027】
図1において、情報処理装置は、CPU101と、ROM102と、RAM103と、HDD(ハードディスクドライブ)104と、HD(ハードディスク)105と、FDD(フレキシブルディスクドライブ)106と、着脱可能な記録媒体の一例としてのFD(フレキシブルディスク)107と、ディスプレイ108と、I/F(インターフェース)109と、キーボード110と、マウス111と、スキャナ112と、プリンタ113と、を備えている。また、各構成部はバス100によってそれぞれ接続されている。
【0028】
ここで、CPU101は、情報処理装置の全体の制御を司る。ROM102は、ブートプログラムなどのプログラムを記憶している。RAM103は、CPU101のワークエリアとして使用される。HDD104は、CPU101の制御にしたがってHD105に対するデータのリード/ライトを制御する。HD105は、HDD104の制御で書き込まれたデータを記憶する。
【0029】
FDD106は、CPU101の制御にしたがってFD107に対するデータのリード/ライトを制御する。FD107は、FDD106の制御で書き込まれたデータを記憶したり、FD107に記憶されたデータを情報処理装置に読み取らせたりする。
【0030】
また、着脱可能な記録媒体として、FD107のほか、CD−ROM(CD−R、CD−RW)、MO、DVD(Digital Versatile Disk)、メモリーカードなどであってもよい。ディスプレイ108は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ108は、たとえば、CRT、TFT液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【0031】
I/F109は、通信回線を通じてインターネットなどのネットワーク114に接続され、このネットワーク114を介して他の装置に接続される。そして、I/F109は、ネットワーク114と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F109には、たとえばモデムやLANアダプタなどを採用することができる。
【0032】
キーボード110は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス111は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
【0033】
スキャナ112は、画像を光学的に読み取り、情報処理装置内に画像データを取り込む。なお、スキャナ112は、OCR機能を持たせてもよい。また、プリンタ113は、画像データや文書データを印刷する。プリンタ113には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
【0034】
(情報処理装置の機能的構成)
つぎに、この発明の実施の形態にかかる情報処理装置の機能的構成について説明する。図2は、この発明の実施の形態にかかる情報処理装置の機能的構成を示すブロック図である。図2では、2つの情報処理装置200,210の機能的構成を示している。ここでは、情報処理装置200を、ツリー構造データの生成元のコンピュータ装置とし、情報処理装置210を、ツリー構造データを解読するコンピュータ装置とする。なお、これらコンピュータ装置は、デスクトップ型のパーソナル・コンピュータでもよく、また、ノート型のパーソナル・コンピュータや携帯電話機、音楽プレーヤなどの携帯型端末であってもよい。
【0035】
図2において、情報処理装置200は、入力部201と、設定部202と、抽出部203と、素因数分解部204と、生成部205と、ツリー構造データ出力部206と、を備えている。まず、入力部201は、任意の自然数の数値の入力を受け付ける。ここで、入力対象となる自然数としては、たとえば、ユーザに関する識別コードや物品に関する識別コードを用いることができる。
【0036】
ユーザに関する識別コードとは、ユーザが誰であるかを認証したり特定したりするためのコードであり、たとえば、各種ユーザIDやパスワード、その他、クレジットカード番号などの数字列データがある。また、物品(商品や製品)に関する識別コードとは、物品が何であるかを特定するためのコードであり、たとえば、商品コードや製品のシリアル番号、型番号などがある。
【0037】
上述したように、入力部201は、数値化された識別コードを直接入力することとしているが、文字列データから変換された数値を入力することとしてもよい。たとえば、文字列データをアスキーコードやJISコードなどの文字コードに変換し、変換された文字コードをさらに10進数に変換することで自然数の数値を入力することができる。
【0038】
また、設定部202は、入力部201によって入力された数値(以下、「入力数値」という)のルートを設定する。ここで、ルートとは、ツリー構造データの根を特定するノードである。ノードとは、ツリー構造データの節にあたるデータである。したがって、ルートは節を特定するノードの中で最上位の節(根)を特定するノードである。ルートは、入力数値が入力された場合に設定される。
【0039】
また、抽出部203は、少なくとも設定部202によって設定されたルートを含むノード群の中から、リーフを除き、かつ分岐元でもないノードを抽出する。リーフとは、ツリー構造データの葉にあたるデータである。したがって、リーフは節を特定するノードの中で最下位、すなわち、末端の節(葉)を特定するノードである。
【0040】
また、分岐元でもないノードとは、分岐先のノードが存在しないノードである。このようなノードとしてはリーフが該当するが、ここではリーフは除外されるため、抽出対象となるノードは、ツリー構造データの生成途中において、リーフになっておらず、かつ、分岐先のノードを有するか否かが不明なノード(以下、「未処理ノード」という)である。
【0041】
なお、入力数値NがN=1である場合、ノードは設定部202によって設定されたルートのみとなるため、未処理ノードが存在しない。この場合は、後述する素因数分解部204による素因数分解をおこなう必要はなく、後述する生成部205によって、ルートのみからなるツリー構造データが生成されることとなる。
【0042】
また、素因数分解部204は、抽出部203によって抽出されたノードに関連付けられている数値を素因数分解する。具体的には、ルートに関連付けられる入力数値を素因数分解する。また、抽出部203によって抽出された未処理ノードに関連付けられている数値も素因数分解する。ここで、素因数分解の対象となる数値をMとすると、素因数分解結果は、下記式(1)となる。
【0043】
M=P1E1×P2E2×…×PjEj×…×PnEn・・・(1)
【0044】
式(1)において、j=1〜nである。また、Pjは素数であり、Ejは素数Pjの指数である。なお、P1<P2<Pj…<Pnとする。
【0045】
また、生成部205は、素因数分解部204によって分解された分解結果に基づいて、少なくともルートを含むツリー構造データを生成する。具体的には、素因数分解結果である素数Pjと指数Ejの組み合わせを利用して、入力数値に固有なツリー構造データを生成する。
【0046】
具体的には、以下の処理によりツリー構造データを生成する。なお、ここでは、入力数値NはN≧2とする。この場合、設定部202により入力数値Nのルートが設定され、この入力数値Nを素因数分解の対象となる数値Mとして素因数分解(上記式(1))されている。
【0047】
未処理ノード(ルートを含む)が素因数分解された結果得られる素数Pjと当該素数Pjの指数Ejの組み合わせを素数−指数セットPEjと称す。上記式(1)では、素数−指数セットPEjがn個存在することとなる。なお、素数−指数セットPEjは、先頭を素数Pjとし末尾をその指数Ejとする配列[Pj,Ej]である。
【0048】
まず、素数Pjの小さい順に素数−指数セットPEjを配列する。配列の結果得られる数列S1は、下記式(2)の通りである。
【0049】
S1=[P1,E1,P2,E2,…,Pj,Ej,…,Pn,En]・・・(2)
【0050】
この数列S1の先頭(左端)から奇数番目の数値(P1,P2,…,Pj,…,Pn)はすべて素数である。この素数Pjを素数番号Ijに変換する。図3は、素数−素数番号変換テーブルを示す説明図である。
【0051】
図3において、素数番号Ijは、2以上のすべての素数を小さい順に並べた順番である。つまり素数2の素数番号は1、素数3の素数番号は2、素数5の素数番号は3、・・・素数17の素数番号は7,・・・となる。したがって、数列S1の素数Pjを素数番号Ijに変換したあとの数列S2、下記式(3)の通りである。
【0052】
S2=[I1,E1,I2,E2,…,Ij,Ej,…,In,En]・・・(3)
【0053】
つぎに、数列S2内の2番目以降の素数番号Ijを、直前の素数番号Ij-1との差に変換する。変換したあとの数列S3は下記式(4)の通りである。
【0054】
S3=[I1,E1,I2−I1,E2,I3−I2,E3,…,In−In-1,En
・・・(4)
【0055】
つぎに、数列S3の末尾(右端)の指数Enに着目して数列S3を数列S4に変換する。末尾の指数EnがEn=1の場合は、上記数列S3から指数Enを削除する。この場合、変換後の数列S4は下記式(5)の通りである。
【0056】
S4=[I1,E1,I2−I1,E2,I3−I2,E3,…,In−In-1
・・・(5)
【0057】
一方、末尾の指数EnがEn≧2の場合は、その指数Enから1を引く。この場合、変換後の数列S4は下記式(6)の通りである。
【0058】
S4=[I1,E1,I2−I1,E2,I3−I2,E3,…,In−In-1,En−1]
・・・(6)
【0059】
最後に、得られた数列S4を基に、ノード(ルートを含む)から枝延ばしをおこなってブランチを生成する。ブランチは、分岐元のノード(ルートを含む)と分岐先のノードとを連結する線データである。ブランチの太さはルートから延ばす先頭(左端)のブランチだけ太線とし、それ以外は細線とする。ブランチは数列S4内の数値の個数分生成する。ブランチの先端には分岐先ノードを生成し、数列S4の先頭(左端)の数値を順に、たとえば、右回りに関連付ける。この処理を未処理ノードがなくなる前でおこなうことにより、ツリー構造データが生成される。枝延ばしされたノードは、ルートは大黒丸、それ以外は小黒丸とする。
【0060】
また、ツリー構造データ出力部206は、生成部205によって生成されたツリー構造データを出力する。ツリー構造データ出力部206は、具体的には、たとえば、表示制御部207を有する。表示制御部207は、ツリー構造を表示画面208に表示する。また、入力部201によりツリー構造データに関するパラメータが入力されている場合には、このパラメータに基づいて、ツリー構造を表示画面208に表示する。
【0061】
また、表示制御部207は、パラメータを設定することにより、表示画面208の大きさにより、ブランチの角度や長さを変更することで、表示画面208に収まるようにツリー構造データを表示することもできる。なお、表示されるツリー構造データは印刷出力することとしてもよい。また、ツリー構造データ出力部206は、送信部209を有する。送信部209は、ツリー構造データを情報処理装置210に送信する。
【0062】
なお、上述した入力部201、設定部202、抽出部203、素因数分解部204、生成部205、およびツリー構造データ出力部206は、具体的には、たとえば、図1に示したROM102,RAM103,HD105などの記録媒体に記録されているプログラムを、CPU101に実行させることによって、またはI/F109によって、その機能を実現する。
【0063】
また、情報処理装置210は、取得部211と、特定部214と、数値出力部215と、を備えている。取得部211は、ツリー構造データを取得する。具体的には、取得部211は、読取部212と受信部213とを備えている。読取部212は、情報処理装置200の表示画面208に表示されたツリー構造画像や印刷出力されたツリー構造画像をスキャニングすることで、ツリー構造データを取得する。また、受信部213は、情報処理装置200から送信されてくるツリー構造データを受信する。
【0064】
また、特定部214は、取得部211によって取得されたツリー構造データに固有な数値を特定する。具体的には、ツリー構造データを構成するノードの接続関係により固有な数値を特定する。
【0065】
すなわち、数値はツリー構造データに固有な値であるため、数値ごとにノードの接続関係が異なる。したがって、ノードの接続関係を特定できれば、上述した段落番号[0041]から段落番号[0059]までのツリー構造データを生成する手順の逆の手順をたどることにより、固有な数値を割り出すことができる。
【0066】
また、数値出力部215は、特定部214によって特定された数値を出力する。具体的には、数値出力部215は、表示制御部216を有し、特定された数値を表示画面217に表示する。なお、出力形式は表示に限らず、印刷出力や音声出力であってもよい。
【0067】
なお、上述した取得部211、特定部214、数値出力部215は、具体的には、たとえば、図1に示したROM102,RAM103,HD105などの記録媒体に記録されているプログラムを、CPU101に実行させることによって、またはI/F109によって、その機能を実現する。
【0068】
(ツリー構造データの生成例)
つぎに、ツリー構造データの生成例について説明する。図4は、ツリー構造データの生成工程を示す説明図である。ここでは、入力数値NをN=350460として説明する。
【0069】
まず、(A)において、まず入力数値Nが入力されると設定部202によりルートRを設定する。つぎに、入力数値N(=350460)を小さい素数順に素因数分解すると、下記式(7)となる。
【0070】
350460=22×33×51×111×591・・・(7)
【0071】
式(7)において、22の素数−指数セットは[2,2]、33の素数−指数セットは[3,3]、51の素数−指数セットは[5,1]、111の素数−指数セットは[11,1]、59の素数−指数セットは[59,1]となる。
【0072】
この素数−指数セットを素数の小さい順に配列する。配列の結果得られる数列S1は、下記式(8)の通りである。
【0073】
S1=[2,2,3,3,5,1,11,1,59,1]・・・(8)
【0074】
この式(8)の数列S1の素数を素数−素数番号変換テーブルを用いて素数番号に変換する。変換後の数列S2は、下記式(9)の通りである。
【0075】
S2=[1,2,2,3,3,1,5,1,17,1]・・・(9)
【0076】
つぎに、式(9)に示した数列S2内の2番目以降の素数番号を、直前の素数番号との差に変換する。変換したあとの数列S3は下記式(10)の通りである。
【0077】
S3=[1,2,1,3,1,1,2,1,12,1]・・・(10)
【0078】
つぎに、式(10)に示した数列S3の末尾(右端)の指数1に着目して数列S3を数列S4に変換する。末尾の指数は1であるため、上記数列S3から末尾の指数1を削除する。この場合、変換後の数列S4は下記式(11)の通りである。
【0079】
S4=[1,2,1,3,1,1,2,1,12]・・・(11)
【0080】
この数列S4を構成する数値は9個存在するので、図4の(B)においては、式(11)の数列S4を元に9本のブランチを生成する。左端のブランチについては、ノードRから出る先頭のブランチなので太線とする。各ブランチの先端には、数列S4の数値が先頭から右回りに配列される。このブランチの先端に配置された数値が分岐先ノードとなる。この分岐先ノードの数値が1である場合、これ以上素因数分解できない。したがって、(C)に示すように、リーフ((C)中、ノードRより小さい●で表示)に変換する。
【0081】
数値が2以上のノードについては、素因数分解可能である。ここで、(C)中、「12」について小さい素数順に素因数分解すると、12=22×31となる。これにより、数列S1=[2,2,3,1]となる。素数を素数番号に変換すると、S2=[1,2,2,1]となる。素数番号を直前の素数番号との差分に変換すると、S3=[1,2,1,1]となる。数列S3において末尾の指数は1であるため、削除すると、S4=[1,2,1]となる。
【0082】
この数列S4を構成する数値は3個存在するので、(D)では、数値「12」のノードからブランチを3本生成し、数列S4を構成する各数値を分岐先ノードとする。数値が1となる分岐先ノードはリーフ((D)中、ノードRより小さい●で表示)に変換する。
【0083】
また、(D)中、数値が2以上のノードについては、素因数分解可能である。ここで、(D)中、「2」について小さい素数順に素因数分解すると、2=21となる。これにより、数列S1=[2,1]となる。素数を素数番号に変換すると、S2=[1,1]となる。素数番号は1つしかないため差分はとれず、S3=[1,1]となる。数列S3において末尾の指数は1であるため、削除すると、S4=[1]となる。
【0084】
この数列S4を構成する数値は1個存在するので、(E)では、数値「2」のノードからブランチを1本生成し、数列S4を構成する数値1を分岐先ノードとする。分岐先ノードの数値が1なので、分岐先ノードはリーフ((E)中、ノードRより小さい●で表示)に変換する。このようにして、(E)に示したように、入力数値N(=350460)に固有なツリー構造データT(N)を生成することができる。
【0085】
(ツリー構造データ生成処理手順)
つぎに、この発明の実施の形態にかかる情報処理装置200によるツリー構造データ生成処理手順について説明する。図5および図6は、この発明の実施の形態にかかる情報処理装置200によるツリー構造データ生成処理手順を示すフローチャートである。
【0086】
まず、図5において、入力部201により数値Nが入力されるまで待ち受け(ステップS501:No)、数値Nが入力された場合(ステップS501:Yes)、数値Nのルートを設定する(ステップS502)。そして、ルートに設定された数値NがN≧2であるか否かを判断する(ステップS503)。
【0087】
N≧2でない場合(ステップS503:No)、数値NはN=1であるため、数値N(N=1)のツリー構造データ、すなわち、ルートのみのツリー構造データをメモリ(たとえば、図1に示したRAM103、HD105)に保持し(ステップS504)、ツリー構造データ出力部206により出力する(ステップS505)。
【0088】
一方、N≧2である場合(ステップS503:Yes)、図6のステップS601に移行する。図6において、ステップS601では、未処理ノードがあるか否かを判断する。図4でいえば、未処理ノードとは、小黒丸になっていない、数値の状態のノードである。
【0089】
未処理ノードがある場合(ステップS601:Yes)、未完成状態のツリー構造データから未処理ノードを抽出する(ステップS602)。そして、素因数分解部204により、未処理ノードの数値Mを素因数分解する(ステップS603)。
【0090】
そして、素数Pjの小さい順に素数−指数セットPEjを配列して、数列S1を得る(ステップS604)。そして、この数列S1の素数Pjを素数番号Ijに変換して、数列S2を得る(ステップS605)。そして、数列S2について、素数番号IjをIj−Ij-1に変換して(ステップS606)、数列S3を得る。
【0091】
つぎに、数列S3の末尾の指数EnがEn=1であるか否かを判断する(ステップS607)。En=1である場合(ステップS607:Yes)、Enを削除した数列S4を得る(ステップS608)。一方、En=1でない場合(ステップS607:No)、En=En−1とした数列S4を得る(ステップS609)。
【0092】
そして、数列S4内の数値の個数分のブランチを未処理ノードから生成し(ステップS610)、数列S4内の数値を分岐先ノードとして生成する(ステップS611)。そして、この分岐先ノードの数値が2以上の値であるか否かを判断する(ステップS612)。2以上の値である場合(ステップS612:Yes)、分岐先ノードをあらたな未処理ノードに決定し(ステップS613)、ステップS601に戻る。
【0093】
一方、2以上の値でない場合(ステップS612:No)、数値1のノードであるため、当該ノードをリーフに変換する(ステップS614)。なお、未処理ノードはこの時点で処理済ノードとなる。図4でいえば、リーフ以外の小黒丸となる。
【0094】
一方、ステップS601において、未処理ノードがない場合(ステップS601:No)、図5に示したステップS504に移行して、数値Nのツリー構造データをメモリに保持し(ステップS504)、ツリー構造データ出力部206により数値Nのツリー構造データを出力する(ステップS505)。これにより、一連の処理を終了する。
【0095】
この図5および図6のツリー構造データ生成処理手順によって生成された各種ツリー構造データを図7に示す。図7は、ツリー構造データ生成処理手順によって生成された各種ツリー構造データを示す説明図である。図7では、入力数値N(N=1〜20)までのツリー構造データを示している。
【0096】
(ツリー構造データ解読処理手順)
つぎに、この発明の実施の形態にかかる情報処理装置210によるツリー構造データ解読処理手順について説明する。図8は、この発明の実施の形態にかかる情報処理装置210によるツリー構造データ解読処理手順を示すフローチャートである。図8において、ツリー構造データが取得されるまで待ち受け(ステップS801:No)、取得部211によりツリー構造データが取得された場合(ステップS801:Yes)、特定部214によりツリー構造データに固有な数値を特定する(ステップS802)。
【0097】
すなわち、段落番号[0087]から段落番号[0094]までのツリー構造データ生成処理手順(図6のフローチャート)の逆の手順をたどることにより、固有な数値を特定する。そして、数値出力部215により、特定部214により特定された数値を出力する(ステップS803)。これにより、一連の処理を終了する。
【0098】
(ツリー構造データの表示例)
つぎに、ツリー構造データの表示例について説明する。図9は、ツリー構造データの表示例を示す説明図である。図9では、ツリー構造データT(N)として、図4の生成工程により生成されたツリー構造データを用いる。図9において、(A)は、通常の表示形態である。表示形態は、ツリー構造データT(N)に関するパラメータによって変形することができる。
【0099】
たとえば、(B)では、表示エリア901(表示画面208に相当)が略正方形であるため、ノードからのブランチの角度を変えたりブランチの長さを短くすることで、ツリー構造データT(N)を折りたたみ、表示エリア902に収まるように表示されている。
【0100】
同様に、(C)では、表示エリア902(表示画面208に相当)が縦長の略長方形であるため、ノードからのブランチの角度を変えたりブランチの長さを短くすることで、ツリー構造データT(N)を折りたたみ、表示エリア902に収まるように表示されている。
【0101】
情報処理装置210では、ツリー構造データを取得して特定する際、ノードの個数、ブランチの本数、リーフの個数、各ノードからのブランチの本数などを手掛かりとしてツリー構造データに固有な数値を特定しているため、ノードがどのように折れ曲がっていたり、ブランチの長さが異なっていても、数値特定の手掛かりとする情報が一致していれば、ツリー構造データの形状が変形されていてもよい。したがって、同一の数値で表現可能なツリー構造データのバリエーションを増加することができるというメリットがある。
【0102】
図10は読取面1000(表示画面208に相当)を傾けた場合のツリー構造データを示す説明図である。ツリー構造データT(N)は、ノード(ルート、リーフを含む)とブランチからなる要素で構成されているため、この要素さえ特定できればよい。
【0103】
このため、多少読取面1000が傾いてもまた歪んでいても、ノード間の接続関係が保たれるので読み取りやすく、読取誤差が少ないというメリットがある。これに対して図11に示したバーコードは、幅の異なるバーを組み合わせることにより数値を表現しており、読み取り面が傾いている場合や歪んでいる場合は読み取りにくく、読取誤差が大きいというデメリットがある。
【0104】
このように、上述した実施の形態によれば、数値Nが大きくなるとツリーが平面上で拡大する。また、ツリー構造データは、ノード(ルート、リーフを含む)とブランチにより構成される。このため、ノードの接続関係さえ保たれていれば、ツリー構造データに固有な数値は変わらないため、形状を変形することができる。したがって、従来の数値表現に比べて、各種形状の表示エリアに表示しやすいというメリットがある。
【0105】
また、ツリー構造データと数値が一意に対応するので、ツリー構造データを数値として管理することができる。たとえば、ツリー構造データを数値に変換して記憶しておき、必要に応じて元のツリー構造データに復元するということができる。
【0106】
また、ツリー構造データを個人認証に応用することができる。たとえば、パスワードの入力を、数字の入力以外に、タッチペンなど手書きによるツリー構造の入力とすることにより、ユーザは、数字列の記憶とツリー構造の記憶という二重の方式で記憶でき、パスワードの忘却が防ぐことができる。また、数字列がランダムであっても、ツリー構造データで表現すれば構造が規則的であるケースがあり、ユーザは各自の好みに応じて覚えやすいツリー構造を選べるというメリットがある。
【0107】
以上説明したように、情報処理方法、情報処理装置、および情報処理プログラムによれば、数値から変換された図形の表示の自由度の向上を図ることができるという効果を奏する。また、セキュリティの向上を図ることができるという効果を奏する。
【0108】
なお、本実施の形態で説明した情報処理方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な伝送媒体であってもよい。
【0109】
(付記1)任意の自然数の数値の入力を受け付ける入力工程と、
前記入力工程によって入力された数値(以下、「入力数値」という)のルートを設定する設定工程と、
少なくとも前記設定工程によって設定されたルートを含むノード群の中から、リーフを除き、かつ分岐元でもないノードを抽出する抽出工程と、
前記抽出工程によって抽出されたノードに関連付けられている数値を素因数分解する素因数分解工程と、
前記素因数分解工程によって分解された分解結果に基づいて、少なくとも前記ルートを含むツリー構造データを生成する生成工程と、
前記生成工程によって生成されたツリー構造データを出力する出力工程と、
を含んだことを特徴とする情報処理方法。
【0110】
(付記2)前記入力数値が2以上であるか否かを判定する入力数値判定工程を含み、
前記出力工程は、
前記入力数値判定工程によって判定された判定結果に基づいて、前記ツリー構造データを出力することを特徴とする付記1に記載の情報処理方法。
【0111】
(付記3)前記出力工程は、
前記入力数値判定工程によって前記入力数値が2以上でないと判定された場合、前記ルートのみからなるツリー構造データを出力することを特徴とする付記2に記載の情報処理方法。
【0112】
(付記4)前記抽出工程は、
前記入力数値判定工程によって前記入力数値が2以上であると判定された場合、少なくとも前記設定工程によって設定されたルートを含むノード群の中から、リーフを除くノードを抽出することを特徴とする付記2に記載の情報処理方法。
【0113】
(付記5)前記素因数分解工程によって分解された分解結果に基づいて、分解元の数値に固有な数列を算出する算出工程を含み、
前記生成工程は、
前記算出工程によって算出された数列に固有なツリー構造データを生成することを特徴とする付記1〜4のいずれか一つに記載の情報処理方法。
【0114】
(付記6)前記素因数分解工程によって分解された分解結果から得られる素数と当該素数の指数とを前記素数,前記指数の順に並べた組み合わせを、前記素数の値が小さい順に配列する配列工程と、
前記配列工程による配列により得られた数列内の全素数を、前記素数の値の小さい順に割り振られた素数番号に変換する素数変換工程と、
前記素数変換工程による変換後の数列内の一の素数番号を、前記一の素数番号から前記一の素数番号の直前に配列されている他の素数番号を引いた差分値に変換する素数番号変換工程と、
前記素数番号変換工程による変換後の数列の末尾の数値が1であるか否かを判断する判断工程と、を含み、
前記算出工程は、
前記素数番号変換工程による変換後の数列と、前記判断工程によって判断された判断結果とに基づいて、前記分解元の数値に固有な数列を算出することを特徴とする付記5に記載の情報処理方法。
【0115】
(付記7)前記算出工程は、
前記判断工程により前記末尾の数値が1であると判断された場合、前記素数番号変換工程による変換後の数列から前記末尾の数値を削除することにより、前記分解元の数値に固有な数列を算出することを特徴とする付記6に記載の情報処理方法。
【0116】
(付記8)前記算出工程は、
前記判断工程により前記末尾の数値が1でないと判断された場合、前記素数番号変換工程による変換後の数列から前記末尾の数値を減算することにより、前記分解元の数値に固有な数列を算出することを特徴とする付記6に記載の情報処理方法。
【0117】
(付記9)前記算出工程によって算出された前記分解元の数値に固有な数列を構成する数値(以下、「数列構成数値」という)の個数分のブランチを、前記抽出工程によって抽出されたノードから生成するブランチ生成工程と、
前記ブランチ生成工程によって生成された各ブランチの先端に、前記各数列構成数値を関連付けて、前記分岐元ノードに対する分岐先ノードを生成する分岐先ノード生成工程と、
前記分岐先ノード生成工程によって生成された分岐先ノードに関連付けられている数列構成数値に基づいて、前記分岐先ノードを前記リーフに変換する変換工程と、を含み、
前記生成工程は、
前記ルートと前記分岐元ノードと前記ブランチと前記変換工程によって変換されたリーフとを含むツリー構造データを生成することを特徴とする付記5〜9のいずれか一つに記載の情報処理方法。
【0118】
(付記10)前記出力工程は、
前記ツリー構造データを表示画面に表示することを特徴とする付記1〜9のいずれか一つに記載の情報処理方法。
【0119】
(付記11)前記入力工程は、
前記ツリー構造データに関するパラメータの入力を受け付け、
前記出力工程は、
前記入力工程によって入力されたパラメータに基づいて、前記ツリー構造データを前記表示画面に表示することを特徴とする付記10に記載の情報処理方法。
【0120】
(付記12)前記表示画面のサイズに応じて前記ツリー構造データを変形させて前記表示画面に表示することを特徴とする付記10または11に記載の情報処理方法。
【0121】
(付記13)前記出力工程は、
前記ツリー構造データを、当該ツリー構造データの生成元となるコンピュータ装置から他のコンピュータ装置に送信することを特徴とする付記1〜12のいずれか一つに記載の情報処理方法。
【0122】
(付記14)前記入力数値は、ユーザに関する識別コードであることを特徴とする付記1〜13のいずれか一つに記載の情報処理方法。
【0123】
(付記15)前記入力数値は、物品に関する識別コードであることを特徴とする付記1〜13のいずれか一つに記載の情報処理方法。
【0124】
(付記16)ツリー構造データを取得する取得工程と、
前記取得工程によって取得されたツリー構造データを構成するノード間の接続関係に基づいて、前記ツリー構造データに固有な数値を特定する特定工程と、
前記特定工程によって特定された数値を出力する出力工程と、
を含んだことを特徴とする情報処理方法。
【0125】
(付記17)前記取得工程は、
ツリー構造に関する画像を読み取ることにより、前記ツリー構造データを取得することを特徴とする付記16に記載の情報処理方法。
【0126】
(付記18)前記取得工程は、
前記ツリー構造データを記憶するコンピュータ装置から前記ツリー構造データを受信することを特徴とする付記16に記載の情報処理方法。
【0127】
(付記19)前記数値は、ユーザに関する識別コードであることを特徴とする付記16〜18のいずれか一つに記載の情報処理方法。
【0128】
(付記20)前記数値は、物品に関する識別コードであることを特徴とする付記16〜18のいずれか一つに記載の情報処理方法。
【0129】
(付記21)任意の自然数の数値の入力を受け付ける入力手段と、
前記入力手段によって入力された数値(以下、「入力数値」という)のルートを設定する設定手段と、
少なくとも前記設定手段によって設定されたルートを含むノード群の中から、リーフを除き、かつ分岐元でもないノードを抽出する抽出手段と、
前記抽出手段によって抽出されたノードに関連付けられている数値を素因数分解する素因数分解手段と、
前記素因数分解手段によって分解された分解結果に基づいて、少なくとも前記ルートを含むツリー構造データを生成する生成手段と、
前記生成手段によって生成されたツリー構造データを出力する出力手段と、
を備えることを特徴とする情報処理装置。
【0130】
(付記22)ツリー構造データを取得する取得手段と、
前記取得手段によって取得されたツリー構造データを構成するノード間の接続関係に基づいて、前記ツリー構造データに固有な数値を特定する特定手段と、
前記特定手段によって特定された数値を出力する出力手段と、
を備えることを特徴とする情報処理装置。
【0131】
(付記23)任意の自然数の数値の入力を受け付けさせる入力工程と、
前記入力工程によって入力された数値(以下、「入力数値」という)のルートを設定させる設定工程と、
少なくとも前記設定工程によって設定されたルートを含むノード群の中から、リーフを除き、かつ分岐元でもないノードを抽出させる抽出工程と、
前記抽出工程によって抽出されたノードに関連付けられている数値を素因数分解させる素因数分解工程と、
前記素因数分解工程によって分解された分解結果に基づいて、少なくとも前記ルートを含むツリー構造データを生成させる生成工程と、
前記生成工程によって生成されたツリー構造データを出力させる出力工程と、
をコンピュータに実行させる情報処理プログラム。
【0132】
(付記24)ツリー構造データを取得させる取得工程と、
前記取得工程によって取得されたツリー構造データを構成するノード間の接続関係に基づいて、前記ツリー構造データに固有な数値を特定させる特定工程と、
前記特定工程によって特定された数値を出力させる出力工程と、
をコンピュータに実行させる情報処理プログラム。
【0133】
(付記25)付記23または24に記載の情報処理プログラムを記録した前記コンピュータに読み取り可能な記録媒体。
【産業上の利用可能性】
【0134】
以上のように、本発明にかかる情報処理方法、情報処理装置、および情報処理プログラムは、商品管理やセキュリティ(個人認証など)などに適している。
【図面の簡単な説明】
【0135】
【図1】この発明の実施の形態にかかる情報処理装置のハードウェア構成を示すブロック図である。
【図2】この発明の実施の形態にかかる情報処理装置の機能的構成を示すブロック図である。
【図3】素数−素数番号変換テーブルを示す説明図である。
【図4】ツリー構造データの生成工程を示す説明図である。
【図5】この発明の実施の形態にかかる情報処理装置200によるツリー構造データ生成処理手順を示すフローチャート(その1)である。
【図6】この発明の実施の形態にかかる情報処理装置200によるツリー構造データ生成処理手順を示すフローチャート(その2)である。
【図7】ツリー構造データ生成処理手順によって生成された各種ツリー構造データを示す説明図である。
【図8】この発明の実施の形態にかかる情報処理装置210によるツリー構造データ解読処理手順を示すフローチャートである。
【図9】ツリー構造データの表示例を示す説明図である。
【図10】読取面を傾けた場合のツリー構造データを示す説明図である。
【図11】バーコードを示す説明図である。
【符号の説明】
【0136】
200,210 情報処理装置
201 入力部
202 設定部
203 抽出部
204 素因数分解部
205 生成部
206 ツリー構造データ出力部
207,216 表示制御部
208,217 表示画面
209 送信部
211 取得部
212 読取部
213 受信部
214 特定部
215 数値出力部

【特許請求の範囲】
【請求項1】
任意の自然数の数値の入力を受け付ける入力工程と、
前記入力工程によって入力された数値(以下、「入力数値」という)のルートを設定する設定工程と、
少なくとも前記設定工程によって設定されたルートを含むノード群の中から、リーフを除き、かつ分岐元でもないノードを抽出する抽出工程と、
前記抽出工程によって抽出されたノードに関連付けられている数値を素因数分解する素因数分解工程と、
前記素因数分解工程によって分解された分解結果に基づいて、少なくとも前記ルートを含むツリー構造データを生成する生成工程と、
前記生成工程によって生成されたツリー構造データを出力する出力工程と、
を含んだことを特徴とする情報処理方法。
【請求項2】
ツリー構造データを取得する取得工程と、
前記取得工程によって取得されたツリー構造データを構成するノード間の接続関係に基づいて、前記ツリー構造データに固有な数値を特定する特定工程と、
前記特定工程によって特定された数値を出力する出力工程と、
を含んだことを特徴とする情報処理方法。
【請求項3】
任意の自然数の数値の入力を受け付ける入力手段と、
前記入力手段によって入力された数値(以下、「入力数値」という)のルートを設定する設定手段と、
少なくとも前記設定手段によって設定されたルートを含むノード群の中から、リーフを除き、かつ分岐元でもないノードを抽出する抽出手段と、
前記抽出手段によって抽出されたノードに関連付けられている数値を素因数分解する素因数分解手段と、
前記素因数分解手段によって分解された分解結果に基づいて、少なくとも前記ルートを含むツリー構造データを生成する生成手段と、
前記生成手段によって生成されたツリー構造データを出力する出力手段と、
を備えることを特徴とする情報処理装置。
【請求項4】
ツリー構造データを取得する取得手段と、
前記取得手段によって取得されたツリー構造データを構成するノード間の接続関係に基づいて、前記ツリー構造データに固有な数値を特定する特定手段と、
前記特定手段によって特定された数値を出力する出力手段と、
を備えることを特徴とする情報処理装置。
【請求項5】
任意の自然数の数値の入力を受け付けさせる入力工程と、
前記入力工程によって入力された数値(以下、「入力数値」という)のルートを設定させる設定工程と、
少なくとも前記設定工程によって設定されたルートを含むノード群の中から、リーフを除き、かつ分岐元でもないノードを抽出させる抽出工程と、
前記抽出工程によって抽出されたノードに関連付けられている数値を素因数分解させる素因数分解工程と、
前記素因数分解工程によって分解された分解結果に基づいて、少なくとも前記ルートを含むツリー構造データを生成させる生成工程と、
前記生成工程によって生成されたツリー構造データを出力させる出力工程と、
をコンピュータに実行させる情報処理プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate