素数候補表の作成プログラム及び素数塔用知育教材
【課題】素数判定に関する情報を簡易かつ整理された情報として確認する。
【解決手段】任意の数字であるターゲット値が、素数に該当するか否かを判定するための素数候補表T1を作成するプログラムであって、2から30までに出現する素数及び1を素数格納配列部121に格納して、素数候補表T1の横軸Xの各列として描画し、素数格納配列部121に格納された各素数に対して30を加算し、加算した値を素数候補表T1の次行の各列として追加し、各列の値を処理対象値としてピックアップし、各処理対象値を、素数格納配列に含まれる値で除し、整数で割り切れた場合には処理対象値に対応する列に、素数でないこととを示す数式と除外フラグを描画し、割り切れない場合には、処理対象値を、素数であるとして素数格納配列部121に格納し、素数として描画する。また、このような素数候補表を用い、数学パズルやモバイルゲーム等の知育教材を作成することができる。
【解決手段】任意の数字であるターゲット値が、素数に該当するか否かを判定するための素数候補表T1を作成するプログラムであって、2から30までに出現する素数及び1を素数格納配列部121に格納して、素数候補表T1の横軸Xの各列として描画し、素数格納配列部121に格納された各素数に対して30を加算し、加算した値を素数候補表T1の次行の各列として追加し、各列の値を処理対象値としてピックアップし、各処理対象値を、素数格納配列に含まれる値で除し、整数で割り切れた場合には処理対象値に対応する列に、素数でないこととを示す数式と除外フラグを描画し、割り切れない場合には、処理対象値を、素数であるとして素数格納配列部121に格納し、素数として描画する。また、このような素数候補表を用い、数学パズルやモバイルゲーム等の知育教材を作成することができる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、素数候補表を作成する素数候補表の作成プログラム及び、素数候補表を利用した素数塔用知育教材に関する。
【背景技術】
【0002】
素数とは、1より大きな自然数であって、1とその数自身以外に正の約数がない数値をいい、従来、自然数や整数の積を考える上で基本的な構成要素であり、数論、暗号理論等において重要な役割を果たしている。例えば、電子情報の認証手段としての暗号技術では、素数のもつ性質を利用し、秘密鍵として2つの素数を使用したRSA方式が利用されている。
【0003】
ここで、ある整数が素数か否かを判定する素数の判定方法には、与えられた自然数 n を「合成数である」または「不明である」と判別する確率的アルゴリズムに基づく確率的素数判定法であるミラーラビン素数判定法等(例えば、非特許文献1)や、与えられた自然数nを「素数である」あるいは否と判定する決定的アルゴリズムに基づく決定的素数判定であるAKS素数判定法等がある。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】W. R. Alford, A. Granville and C. Pomerance, On the difficulty of finding reliable witnesses, in: Algorithmic Number Theory, First International Symposium, Proceedings (L. M. Adleman, M.-D. Huang, eds.), LNCS 877, Springer-Verlag, 1994, pp. 1?16. Carl Pomerance, List of Papers, 96.
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1に開示された素数判定法等は、ある数値が素数であるか否かを一つずつ調べていく方法であり、これら素数の判定結果に関する情報を纏めるのは、ユーザー自身であるため、素数であるか等の情報をノートに記載することや、情報処理端末等に入力することは、その作業が煩雑になるとともに、情報が整理されていないと、閲覧時に誤認してしまう問題や、出現パターンが不明確であるという問題があった。
【0006】
そこで、本発明は、上記のような問題を解決するものであり、任意の数字が素数に該当するかの判定結果を素数候補表として作成して表示させることで、素数判定に関する情報を簡易かつ整理された情報として確認することができる素数候補表作成プログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
上記課題を解決するために、本発明は、任意の数字であるターゲット値が、素数に該当するか否かを判定するための素数候補表を作成するプログラムであって、
(1)コンピュータに、2から30までに出現する素数、及び1を、それぞれ出現順に素数格納配列に格納して記憶領域に保持するとともに、素数格納配列に含まれる各値を、素数候補表の横軸の各列として描画する横軸描画ステップと、
(2)素数格納配列に格納された各素数に対して30を加算し、加算した値を素数候補表の次行の各列として追加する次行描画ステップと、
(3)次行に含まれる各列について、素数格納配列の2,3及び5に対応する列をスキップしながら、各列の値を処理対象値として順次ピックアップし、各処理対象値を、素数格納配列に含まれるそれぞれの素数で除し、整数で割り切れた場合には、処理対象値に対応する列に、素数でないことを示す除外フラグを描画し、整数で割り切れない場合には、当該処理対象値を、素数であるとして素数格納配列に格納し、記憶領域に保持させる除外フラグ描画ステップと、
(4)除外フラグ描画ステップの対象となっている処理対象値が、ターゲット値よりも大きいか否かを判断し、処理対象値がターゲット値以下である間は、次行描画ステップ及び除外フラグ描画ステップを繰り返し、処理対象値がターゲット値よりも大きくなった時点で、素数候補表を完成させる最終描画処理を実行する終了判定ステップとを含む処理を実行させる。
【0008】
なお、スキップ処理の際、非素数であることを示すメッセージを即時に表示させる機能を有してもよい。具体的には、入力された数値を認識し、2桁以上の数の末尾が0、偶数、及び5である時には、即座に非素数であることを示すメッセージやアニメーション等を表示させる。また、除外フラグを描画する際には、例えば、素数でないことを表現するために、当該処理対象値の因数分解(素数を約数に含む)の式を表示してもよい。
【0009】
このような発明によれば、素数格納配列に記憶された素数に基づいて、ターゲット値が素数か否かの判定を実行するとともに、その判定結果を素数候補表として出力するので、素数判定に関する情報を簡易かつ整理された情報として確認することができる。また、本発明によれば、このような素数候補表を使用することで、例えば、素数の出現場所が予想可能となり、素数の性質がより掴み易くなるとともに、非素数の出現(若しくは判別)が可能となる。
【0010】
また、本発明は、除算処理を行った値が素数である場合には、その値を素数格納配列に記録して、その素数格納配列に追加された素数に基づき、次行の各列に描写された処理対象値に対して除算処理を行うので、予め、素数格納配列に記録する素数は最小限とすることができ、記憶領域の有効活用することができる。また、次行から発生する処理対象値についても、新たに格納した素数に基づいて素数判定を実行できるので、素数判定の確率が向上される。
【0011】
上記発明において、横軸描画ステップでは、ターゲット値を30で除した余りが、2から30までに出現する素数、及び1に該当するか否かを判断し、該当する場合には、横軸描画ステップ以降の処理を実行し、該当しない場合には、素数候補表を作成することなく最終処理を実行する前処理ステップを有することが好ましい。この場合には、表作成処理の前処理として、素数のふるい分け処理を行い、不要な処理を省略し、それ以降の演算処理時間を短縮することができる。
【0012】
また、他の発明では、任意の数字であるターゲット値が、素数に該当するか否かを判定するための素数候補表を、筒状の素数塔として構築する知育教材であって、環状に配列されることによって前記素数塔を構成する各層を形成し、表面に数字や図形、記号等が表現される多数の単位ブロックと、前記素数塔を構成する各層に含まれる単位ブロックのうち最大又は最小の値が表現され、現在の層に属する隣接ブロック及び上層又は下層に属する隣接ブロックの両方に対し両側面で接触する繰上用ブロックとから構成される。
【0013】
そして、前記素数塔を構成する各層のうち、基準となる基準層に属する単位ブロック及び繰上用ブロックには、2から30までに出現する素数、及び1が、それぞれ出現順に素数格納配列として表現され、前記基準層の上層又は下層に属する単位ブロック及び繰上用ブロックには、前記素数格納配列に格納された各値に対して30又は−30を加算した値が、前記素数候補表の次行の各列として表現されている。さらに、前記次行に含まれる各列について、前記素数格納配列の2、3及び5に対応する列に属する単位ブロックには、その属する列の特徴を示すスキップマークが表現されている。
【0014】
なお、繰上用ブロックについては、「30」を周期とする繰り上がりについての理解を助けるために、素数格納配列には格納されない、0に対応する列(0,30,60…)を表現するようにしてもよい。
【0015】
このような発明によれば、例えば、表面に数値及び素数配列Xnなどの数字や図形、記号等が表現されるブロックを数値の出現順に組立てることで、立体的に素数候補表が表現され、素数格納配列の2、3及び5に対応する列に属する単位ブロックには、その属する列の特徴を示すスキップマークを表現させているので、素数判定に関する情報を簡易かつ整理された情報として確認することができる。これにより、例えば、遊びながら素数の出現場所が視覚を通じて記憶され、素数の性質がより理解し易くなる。
【0016】
上記発明において、前記単位ブロック及び繰上用ブロックには、各ブロックに表現された値を処理対象値とし、前記素数格納配列に含まれるそれぞれの素数で、各処理対象値を除して、整数で割り切れた場合には、該処理対象値に対応するブロックに、素数でないことを示す除外フラグ(数式などを含む。)が表現され、各ブロックの前に配列されるべきブロックのうち前記除外フラグが表現されていないブロックの値で、前記各処理対象値を除して、整数で割り切れない場合には、当該処理対象値が、該処理対象値に対応するブロックに、素数であるとして素数フラグが表現されていることが好ましい。この場合には、筒状の素数塔として構築された各ブロックは、素数であるか否かを各ブロックに表現させているので、遊びながら素数判定に関する情報を簡易かつ整理された情報として確認することができる。
【発明の効果】
【0017】
以上述べたように、この発明によれば、任意の数字が素数に該当するかの判定に際し、1から当該任意の数字までの判定結果を、素数候補表として作成して表示させることで、素数判定に関する情報を簡易かつ整理された情報として確認することができる。
【図面の簡単な説明】
【0018】
【図1】実施形態に係る素数候補表作成プログラムを実行するシステムの概略構成を示す説明図である。
【図2】実施形態に係る素数候補表作成システムにおいて、素数候補表作成プログラムを実行する際の動作を示すフローチャート図である。
【図3】実施形態に係るコンピュータのCPU上に構築される機能モジュールを示すブロック図である。
【図4】実施形態に係る素数候補表の作成過程を示す説明図である。
【図5】実施形態に係る素数候補表の作成過程を示す説明図である。
【図6】実施形態に係る素数候補表の作成過程を示す説明図である。
【図7】実施形態に係る素数候補表の作成過程を示す説明図である。
【図8】実施形態に係る素数候補表作成プログラムを記録したコンピュータ読み取り可能な記録媒体を示す斜視図である。
【図9】第2実施形態に係る知育玩具の外観を示す斜視図である。
【図10】第2実施形態に係る知育玩具の各ブロックの形状を示す斜視図である。
【図11】(a)〜(d)は、第2実施形態に係る各ブロックの表示態様を示す正面図である。
【図12】(a)は、変更例に係る知育玩具の外観を示す斜視図であり、(b)は、本変更例に係る知育玩具を上部より示す上面図である。
【図13】変更例に係る知育玩具220のブロックの一部分を示す斜視図である。
【発明を実施するための形態】
【0019】
[第1実施形態]
以下に添付図面を参照して、本発明に係る素数候補表作成プログラムの実施形態を詳細に説明する。図1は、本発明に係る素数候補表作成プログラムが適用される第1実施形態としての素数候補表作成システムの全体構成を示す概念図である。ここでは、予め素数候補表作成プログラムがコンピュータにインストールされている場合を例に説明する。
【0020】
同図に示すように、素数候補表作成プログラムがインストールされたコンピュータ1に操作デバイス4(マウス4a、及びキーボード4b)と、出力装置(モニタ3、及び印刷装置2)とが接続され、ユーザー7が、任意の数字であるターゲット値を入力することで、出力装置から素数候補表を出力することができる。
【0021】
具体的には、ユーザー7が、コンピュータ1に接続されたキーボード4bやマウス4aを操作し、任意の数字であるターゲット値を入力することで、情報処理内において素数候補表作成プログラムが実行される。そしてコンピュータ1内で、入力されたターゲット値に対して除算処理を実行するとともに、素数候補表T1を作成し、その素数候補表をモニタ3の表示画面に表示させたり、印刷装置2によって記録媒体6に印刷表示させる。表1は、本実施携帯に係る素数候補表の一例である。ユーザー7は、この素数候補表により数値1からターゲット値(マイナス値も含む)までの素数候補を確認することができる。
【表1】
【0022】
ここで、コンピュータ1は、CPUを備えた演算処理装置であり、パーソナルコンピュータ等の汎用コンピュータや、機能を特化させた専用装置により実現することができ、例えば、モバイルコンピュータやPDA(Personal Digital Assistance)、携帯電話機が含まれる。なお、コンピュータ1は、LAN等の通信網に接続され、通信網を通じて、プリンタなどの外部機器に対してデータの送受信を行う通信機能を備えているものとする。この通信網としては、例えば、通信プロトコルTCP/IPを用いて種々の通信回線(電話回線やISDN回線、ADSL回線などの公衆回線、専用回線、無線通信網)を相互に接続して構築される分散型のIP網が挙げられ、このIP網には、インターネットの他、10BASE−Tや100BASE−TX等によるイントラネット(企業内ネットワーク)や家庭内ネットワークなどのLANなども含まれる。
【0023】
印刷装置2は、例えば、上記通信網や、USB接続を介して、コンピュータ1に接続され、コンピュータ1から送られた印刷データに基づいて、素数候補表の印刷を行うことができる。モニタ3は、例えば、液晶ディスプレイ等の表示装置であり、アプリケーションによって生成されるウィンドウを通じて、映像や文字などを表示することができる。操作デバイス4は、ユーザー操作を操作信号としてコンピュータ1に入力する操作デバイスであり、マウス4a、及びキーボード4b等のボタンの他、ジョグダイヤルや、タッチパネル等であってもよい。そして特に本実施形態において、操作デバイスは、任意のターゲット値を取得したり、素数候補表作成処理の開始及び停止等の操作を受け付ける操作部として機能する。
【0024】
(素数候補表作成プログラム)
上述した本実施形態係る素数候補表作成システムは、所定の言語で記述された素数候補表作成プログラムをコンピュータのCPU1上で実行することにより実現することができる。図2は、本実施形態に係る素数候補表作成システムにおいて、素数候補表作成プログラムを実行する際の動作を示すフローチャート図である。
【0025】
先ず始めに、ユーザーが操作デバイス4によって、素数か否かを判断する対象となる任意の数値(ターゲット値)を入力し(S101)、素数候補表作成プログラムを実行する。なお、このとき、コンピュータ1では、2から30までに出現する素数、及び1を、それぞれ出現順に素数格納配列に格納して記憶領域121に保持する(S102)。本実施形態では、この素数格納配列に格納された2から30までに出現する素数、及び1は、予め初期値として設定ファイルなどに記述され、不揮発性のメモリやハードディスクに記憶保持されており、プログラムの起動時や実行時に適宜読み出され、素数格納配列に代入される。
【0026】
次に、コンピュータ1は、前処理を行う(S116)。この前処理とは、ターゲット値を30で除した余りが、2から30までに出現する素数、及び1に該当するか否かを判断する処理である。ここで、2から30までに出現する素数、及び1に該当しない場合(S116における“N”)、素数候補表を作成することなく最終処理を実行する(S115)。さらに、前処理には、ターゲット値を30で除する処理を実行する前提として、ターゲット値が2桁以上の数値である場合、その末尾が0、2、及び5であるか否かを判断する処理を実行してもよい。この処理により、ターゲット値の末尾(一の位)が0、偶数(2)、及び5である場合には、30で除する処理を実行することなく素数候補表を作成しないと判断し(S116における“N”)、最終処理を実行する(S115)。一方、ターゲット値が1桁の数値である場合や、2桁以上の数値であって、末尾が0、偶数(2)、及び5以外である場合には、30で除する処理を実行する。
【0027】
なお、本実施形態では、この前処理によって素数候補表を作成しないと判断した場合には(S116における“N”)、非素数であるメッセージを即時に表示する処理を実行する(S117)。なお、この非素数であるメッセージの表示に際し、素数でないことを示す、数式(例えば、素数を約数に含む因数分解式)などを表示するようにしてもよい。
【0028】
一方、前処理において、2から30までに出現する素数、及び1に該当する場合には(S116における“Y”)、以下の横軸描画処理以降の処理を実行し、現在の素数格納配列に含まれる各値(2から30までに出現する素数、及び1)を、素数候補表の横軸の各列として描画する(S103)。なお、本実施形態において、この前処理はターゲット値を30で除した余りが、2から30までに出現する素数、及び1に該当しない場合であっても、以下の横軸描画処理、素数候補表の次行を追加、素数による除算、及び判定を実行するか否かの選択をユーザーに促すようにしてもよい。この場合には、ターゲット値が記載されない素数候補表が作成され、ターゲット値が素数でない旨を併記することが好ましい。
【0029】
次いで、コンピュータ1は、素数候補表に描画された各列の値である処理対象値とターゲット値を順次比較し、処理対象値がターゲット値よりも大きいか否かを判断し(S104a)、処理対象値がターゲット値を越えるまで、以下の素数候補表の次行を追加、素数による除算、及び判定を繰り返し実行する(S104a〜S104b)。
【0030】
具体的には、先ず、素数格納配列に格納された各素数に対して30を加算し(S105)、加算した各値を素数候補表の次行の各列として追加する(S106)。そして、コンピュータ1は、追加された次行に含まれる各列に対し、以下の処理を施す(S107a〜S107b)。すなわち、次行の各列に含まれる値を処理対象値として順次ピックアップする(S108)。このとき、そのピックアップした値が素数格納配列の2、3及び5に対応する列である場合には、処理を省略して次の列へとスキップする(S109)。
【0031】
これは、素数格納配列に格納された数値2、3及び5は素数であるものの、素数格納配列に格納された数値2、3及び5に30の倍数の数値が足された数値は、数値2、3又は5で割り切れる数値であるため、数格納配列の2、3及び5の列に対応するには素数が出現しないからである。
【0032】
次に、素数格納配列に含まれたそれぞれの素数を順次選択し、選択された処理対象値を除する処理(S111)を、ループ処理で実行する(S110a〜S110b)。なお、このステップS110a〜S110bの処理は、素数格納配列に含まれる全ての素数値で除算するまで繰り返し実行してもよいが、整数で割り切れた時点で、ループ処理を終了するようにしてもよい。
【0033】
そして、上記ループ処理(S110a〜S110b)を抜けた後、処理対象値が素数格納配列に含まれる値の何れかの値で割り切れた場合には(S112における“Y”)、処理対象値に対応する列に素数でないことを示す除外フラグ(素数でないことを示す、数式(例えば、素数を約数に含む因数分解式)などを含む。)を描画する(S114)。一方、処理対象値が素数配列に含まれる全ての値で割り切れない場合には(S112における“N”)、当該処理対象値を素数であるとして、素数格納配列の最後尾に格納し、記憶領域に保持させる(S113)。
【0034】
そして、コンピュータ1は、素数候補表の対象となっている次行の全列に含まれた処理対象値に対して、除外フラグ処理(S114)又は素数格納処理(S113)が終了するまで、ピックアップ処理(S108)、スキップ処理(S109)、及び除算処理(S110)を繰り返し実行する(S107b)。
【0035】
その後、処理対象値がターゲット値よりも大きくなった時点で、ループ処理(S104a〜S104b)を抜けだし、素数候補表を完成させる最終描画処理を実行する(S115)。そして、終了判定処理後に、モニタ3上に素数候補表が表示されるとともに、ユーザ操作によって、印刷装置2によりプリントアウトされる。なお、ここで、前処理の後、描画処理をすることなく、最終描画処理が実行された場合には、整数で割り切れた時の数式をモニタ3等に表示させる。
【0036】
(機能モジュール)
上述した素数候補表作成プログラムを実行させることにより、コンピュータ1のCPU上で仮想的に機能モジュールが構築され、コンピュータ1を素数候補表作成システムとして利用することができる。図3は、本実施形態に係るコンピュータ1のCPU上に構築される機能モジュールを示すブロック図である。
【0037】
図3に示すように、コンピュータ1には、出入力系のモジュールとして、入力インターフェイス101と、出力インターフェイス102と、操作信号取得部103とを備えている。
【0038】
入力インターフェイス101は、マウス4aやキーボード4b等の操作デバイス4が接続され、その操作信号が入力されるモジュールである。本実施形態において、入力インターフェイス101は、ユーザー7が入力した任意の数字であるターゲット値を操作信号として操作信号取得部103へ入力する。出力インターフェイス102は、映像及び音声の出力信号を、モニタ3及びスピーカーからそれぞれ出力させるモジュールである。また、本実施形態において、出力インターフェイス102は、演算処理部110から受信した画像情報をモニタ3、又は印刷装置2へ出力する。
【0039】
操作信号取得部103は、ユーザー操作による操作信号を、入力インターフェイス101から受信するモジュールであり、受信した操作信号を解析し、ユーザー操作に応じた処理を他のモジュールに実行させる。特に、本実施形態において、この操作信号取得部103は、素数候補表作成の命令信号及び、任意の数値を受信した場合には、この命令信号及び数値に関する信号を演算処理部110に入力する。
【0040】
また、コンピュータ1には、素数候補表作成系のモジュールとして、演算処理部110と、記憶部120とを備えている。
【0041】
記憶部120は、素数候補表に関する情報を記憶するメモリ装置等であり、本実施形態において、記憶部120には、素数格納配列部121と、素数候補表記憶部122とを備えている。
【0042】
記憶部120は、素数データを出現順に素数格納配列に格納して保持する記憶領域である。特に本実施形態において、素数格納配列部121には、予め2から30までに出現する素数、及び1を素数格納配列に出現順に格納して記憶、保持している。また、記憶部120は、演算処理部110から送信された素数データについても、素数格納配列に出現順に格納する機能を有している。
【0043】
素数候補表記憶部122は、演算処理部110において実行される描画処理で使用される素数候補表データを保持する記憶領域であり、演算処理部110からの制御により、素数候補表を演算処理部110と送受信する。
【0044】
演算処理部110は、CPUやDSP(Digital Signal Processor)等のプロセッサ、メモリ、及びその他の電子回路等のハードウェア、或いはその機能を持ったプログラム等のソフトウェア、又はこれらの組み合わせなどによって構成された演算モジュールであり、プログラムを適宜読み込んで実行することにより種々の機能モジュールを仮想的に構築し、構築された各機能モジュールによって、素数候補表作成に関する処理や、各部の動作制御、ユーザー操作に対する種々の処理を行う。
【0045】
本実施形態において、演算処理部110には、横軸描画部111と、次行描画部112と、ピックアップ判断部113と、処理対象値演算部114と、除外フラグ描画部115と、終了判定部116と、画像情報生成部117とを備えている。
【0046】
横軸描画部111は、操作信号取得部103からの操作信号に基づいて、記憶部120から素数候補表を抽出するとともに、素数格納配列に含まれる各値を、素数候補表の横軸の各列として描画するモジュールである。次行描画部112は、素数格納配列に格納された各素数に対して30を加算し、加算した値を素数候補表の次行の各列として追加するモジュールである。
【0047】
また、横軸描画処理部111には、ターゲット値を30で除した余りが、2から30までに出現する素数、及び1に該当するか否かを判断する前処理機能を備えている。本実施形態において、横軸描画処理部111は、ターゲット値を30で除した余りが、2から30までに出現する素数、及び1に該当する場合には、素数候補表の横軸の各列として描画する処理を実行する。一方、ターゲット値を30で除した余りが、2から30までに出現する素数、及び1に該当しない場合には、素数候補表を作成することなく最終処理を実行する信号を最終描画処理部115aに送信する。なお、本実施形態において、この前処理機能には、前処理の判断結果をユーザーに通知し、その後の処理を続行するか否かの判断を促す機能も備えていてもよい。
【0048】
ピックアップ判断部113は、次行に含まれる各列について、素数格納配列の2、3及び5に対応する列をスキップしながら、各列の値を処理対象値として順次ピックアップするモジュールである。
【0049】
処理対象値演算部114は、ピックアップ判断部によりピックアップされた各処理対象値を、素数格納配列に含まれるそれぞれの値で除算するモジュールである。そして、処理対象値演算部114は、対象となった処理対象値の除算結果を、除外フラグ描画部115に送出する。ここで、処理対象値の除算結果には、何れかの素数格納配列に含まれる値で割り切れた結果と、素数格納配列に含まれる全ての値で割り切れなかった結果とが含まれる。また、処理対象値演算部114は、処理対象となっている値を終了判定部116に入力する。
【0050】
除外フラグ描画部115は、処理対象値演算部114から入力された信号に基づいて、素数候補表に除外フラグを描画するモジュールである。具体的に、除外フラグ描画部115は、処理対象値演算部114から入力された信号が、何れかの値で割り切れた信号である場合には、処理対象値に対応する列に、素数でないことを示す除外フラグを描画する。なお、この除外フラグの描画では、例えば、素数でないことを示す、数式(例えば、素数を約数に含む因数分解式)などを表示する処理も含まれる。
【0051】
さらに、除外フラグ描画部115には、処理対象値演算部からの信号が、素数格納配列に格納された全ての値で割り切れない信号であった場合には、処理対象となっている処理対象値を、素数であるとして素数格納配列に格納し、記憶領域に保持させる機能も備えている。
【0052】
終了判定部116は、処理対象値演算部114から入力された処理対象値が、操作信号取得部103から取得したターゲット値よりも大きいか否かを判断するモジュールである。終了判定部116は、判断の結果、処理対象値がターゲット値以下である間は、ピックアップ判断部113に処理続行の信号を入力し、処理対象値がターゲット値より大きいと判断した場合には、その判断結果信号を最終描画処理部115aに入力する。
【0053】
最終描画処理部115aは、終了判定部116からの信号に基づいて、素数候補表を完成させる最終描画処理を実行する。具体的に、最終描画処理部115aは、終了判定部116からの信号を受信すると、現在、処理が実行されている行を最終行として素数候補表を作成するとともに、素数候補表に描画された情報を画像情報生成部117へ入力する。また、最終描画処理部115aは、横軸描画処理部111の前処理によって、素数候補表を作成することなく最終処理を実行する信号を受信した場合には、例えば、ターゲット値は、素数でない旨を通知するメッセージ等を含む画像情報及び、整数で割り切れたときの数式を生成し、モニタ3等に表示させる。
【0054】
画像情報生成部117は、印刷処理や画像表示に必要な画像データの変換等を行い、印刷処理及び画像表示を実行するモジュールである。具体的に、画像情報生成部117は、最終描画処理部115aで処理された素数候補表データを画像信号に変換し、モニタ3の表示画面に出力可能な信号を生成する機能や、印刷の処理単位であるジョブデータを受信し、このジョブデータに含まれる印刷に必要な画像データの変換等を行い、印刷を実行させる機能を備えている。また、画像情報生成部117には、ジョブデータを受信する通信インターフェースや、RGB印刷画像をCMYK印刷画像に変換する色変換回路、各色のインクヘッドの駆動及び搬送経路の駆動手段の動作を制御し、画像形成処理全体を制御する画像形成制御機能が含まれる。
【0055】
(素数候補表作成方法)
上述したCPU上に仮想的に構築された機能モジュールを動作させることで、本実施形態における素数候補表が作成される。以下に、本実施形態に係る素数候補表が作成される動作を説明する。図4、図5、図6、及び図7は、本実施形態に係る素数候補表の作成過程を示す説明図である。なお、本実施形態においては、ターゲット値を337として、入力された場合を例として説明するものとする。
【0056】
先ず、コンピュータ1では、数値1及び3〜30までに出現する素数を、それぞれ出現順に素数格納配列部121に格納して記憶領域に保持されており、この素数格納配列部121に格納された素数にそれぞれ配列番号を付与している。具体的には、図4(a)に示すように、2から30までの素数及び1を、それぞれ、1=X1,2=X2,3=X3,5=X4,7=X5,11=X6,13=X7,17=X8,19=X9,23=X10,29=X11とする。
【0057】
そして、ユーザーが操作デバイス4によって、素数か否かを判断する任意の数値(例えば、337)を入力し、素数候補表作成プログラムが実行されると、その操作信号は、操作信号取得部103から横軸描画部111と、終了判定部116へ入力される。
【0058】
横軸描画部111は、操作信号を受信すると、まず、ターゲット値を30で除した余りが、2から30までに出現する素数、及び1に該当するか否かを判断する。ここで、入力されたターゲット値337を、30で除した場合、その余りは、7であるので、2から30までに出現する素数、及び1に該当すると判断し、以下の横軸描画処理以降の処理を実行する。
【0059】
次いで、横軸描画部111は、図4(a)に示すように、素数格納配列部121に格納された各値を抽出し(P1)、素数候補表の横軸の各列として出現順に描画する。具体的に、横軸描画部111は、横軸の各列の欄に配列番号X1〜X11と、その素数配列番号に該当する素数値とを表記する(P2)。
【0060】
次いで、次行描画部112は、素数候補表の縦軸Yを作成する。具体的に、次行描画部112は、横軸の各列の欄に記載された各素数値と、数値30に縦軸の各列番号を乗じた数とを加算していく。例えば、縦軸の一列目には、図4(a)に示すように、各素数値に30×1列目の数値である30を加算する。ここで、素数格納配列の数値2、3及び5に対応する列X2,X3,及びX4である各列には、加算処理は行わない。これは、X2,X3及びX4である各列は、常に末尾が2、3又は5であり、且つ、横軸の各列には30の倍数が加算されていくため、素数候補表に記載される数値は、全て2、3、又は5の倍数となり、この欄に記載される数値には素数は発生しないためである。したがって、X1の欄には31が記載され、X2,X3及びX4の欄をスキップして、X5の欄からX11の欄に、それぞれ、37,41,…59を素数候補表の次行の各列に追加する(P3)。ここで、縦軸Yの欄には、縦軸の番号であるYと、横軸の各列に記載された値に加算した数値30とを記載する。
【0061】
そして、ピックアップ判断部113は、次行に含まれる各列について、各列の値を処理対象値として順次ピックアップする。具体的には、図4(b)に示すように、まず、次行の各列の最初に記載された31を処理対象値として、ピックアップする(P4)。この際、ピックアップ判断部113は、ピックアップした値が素数格納配列の数値2、3及び5に対応する列X2,X3及びX4である場合にはスキップ処理をする。これは、X2,X3及びX4の表上の縦列は、2の倍数、3の倍数、かつ5の倍数である30を順次足すため、この縦列に記載される数値は、常にX2、X3及びX4の倍数であり、この各列に素数は出現しないためである。
【0062】
ピックアップ判断部113は、処理対象値であると判断した場合には、その信号を処理対象値演算部114に入力する。本実施形態において、図4(b)に示すように、横軸X1,縦軸Y1に描画された値31は、素数格納配列の2、3及び5に対応する列ではないので、処理対象値としてピックアップされる。
【0063】
処理対象値演算部114は、受信した信号から、処理対象値を素数格納配列に記憶された配列番号X1〜X11の各素数値で除算処理する(P5)。ここで、コンピュータ1は、処理対象値に対して、素数格納配列に含まれる素数値によって、それぞれ除する処理を繰り返し実行する。
【0064】
ここで、処理対象値が、素数配列に含まれる全ての素数で割り切れない場合には、処理対象値が素数であるとして、その素数に、新たな配列番号Xnを付与するとともに、素数格納配列の最後尾に格納し、記憶領域121に保持させる。具体的には、図5(a)に示すように、処理対象値31は、配列番号X1〜X11の各素数では、割り切ることができないので、素数格納配列部121に記憶されている配列番号の次番号であるX12を付与し、素数候補表に描画する(P6)。そして、その素数31を配列番号X12と関連付けして、素数格納配列部121に記憶させる(P7)。
【0065】
一方、処理対象値が素数格納配列に含まれる値の何れかで割り切れた場合には、非素数が出現したとして、処理対象値に対応する列に、素数でないことを示す除外フラグを描画する。具体的には、図5(b)に示すように、処理対象が移動し、処理対象値が49の場合(P8)、処理対象値49は、素数7の数値で割り切れる数値であるので、除外フラグ描画部115は、割り切れた場合の数式((X5)2、及び(7)2等)を記入し(P9)、対象処理値上に取消し線を記入し、非素数であることを示す処理を行う。
【0066】
また、処理対象値演算部114は、除算処理する処理対象値を終了判定部116に入力する。そして、終了判定部116は、対象となっている処理対象値が、ターゲット値よりも大きいか否かを判断する。本実施例では、処理対象値である数値49は、ターゲット値である数値337よりも小さい値であるので、図5(b)に示すように、次の列に記載された処理対象値(数値59)について、ピックアップ処理を実行し、演算処理の後に除外フラグ描画処理を実行する。このように、処理対象値がターゲット値以下である間は、ピックアップ処理から除外フラグ描画処理までの処理を繰り返し実行する(P10)。
【0067】
さらに、横軸X11の欄の処理対象値が終了した後も、処理対象値がターゲット値以下である場合は、次行描画部112は、縦軸Yの行2Yに各値を追加する処理を行う。具体的には、図6(a)に示すように、横軸の各列の欄に記載された各素数値と、数値30に対して縦軸の列番号である2を乗じた数である数値60とを加算し、横軸の各列に値を描画する(P11)。ここでも、素数格納配列の数値2、3及び5に対応する列X2,X3及びX4である各列には、加算処理は行わない。なお、本実施形態において、素数格納配列部121には、それまでの処理で素数と判定された値が配列番号と関連付けて記録されており、次回の除算処理において使用される。そして、図6(b)に示すように、配列番号X1の列から順次、ピックアップ処理から除外フラグ描画処理を繰り返し実行する(P12)。
【0068】
その後、図7に示すように、上記の処理を繰り返し、処理対象値が341となった場合、処理対象値演算部114は、終了判定部116に処理対象値341の情報を入力することで、終了判定部116は、処理対象値がターゲット値よりも大きいと判定し、最終描画処理部115aに終了信号を送出する。そして、最終描画処理部115aは処理している列と、それ以降の各列に対して終了フラグを描画し(P13)、表1に示すような素数候補表を完成させる。
【0069】
画像情報生成部117は、最終描画処理部115aで処理された素数候補表データを画像信号に変換し、モニタ3の表示画面に出力可能な信号を生成したり、印刷の処理単位であるジョブデータを受信し、このジョブデータに含まれる印刷に必要な画像データの変換等を行い、印刷を実行させる。
【0070】
(素数候補表作成プログラムの記録媒体)
なお、上述した素数候補表作成プログラムは、図8に示すような、汎用コンピュータ1で読み取り可能な記録媒体81〜84に記録することができる。具体的には、同図に示すような、フレキシブルディスク81やカセットテープ84等の磁気記録媒体、若しくはCD−ROMやDVD−ROM82等の光ディスクの他、RAMカード83など、種々の記録媒体に記録することができる。本実施形態は書き込み不可のCD−ROMやDVD−ROM82中にあるコンテンツに対してリンクを設けることができる特徴を有する。
【0071】
そして、この素数候補表作成プログラムを記録したコンピュータ読み取り可能な記録媒体によれば、汎用のコンピュータや専用コンピュータを用いて、上述した効果を奏するシステムや方法を実施することが可能となるとともに、プログラムの保存、運搬及びインストールを容易に行うことができる。
【0072】
(作用・効果)
このような実施形態によれば、素数格納配列部121に記憶された素数に基づいて、ターゲット値が素数か否かの判定に際し、1から当該ターゲット値までの判定結果を素数候補表として出力するので、素数判定に関する情報を簡易かつ整理された情報として確認することができる。これにより、例えば、素数の出現場所が予想可能となり、素数の性質がより掴み易くなるとともに、非素数の出現(若しくは判別)が可能となる。
【0073】
具体的には、このような素数候補表プログラムを実行して、素数候補表作成することで、横軸に、0及び1、並びに2から30までの素数を表し、縦軸では、30ごとの数値を横軸の数値に加算していくので、素数候補表から、偶数の排除ができ、かつ、数値3及び5の倍数を判別できる。
【0074】
また、このような実施形態によれば、非素数である値の欄に、整数で割り切れた場合の数式(例えば、表1に示す横軸X1:縦軸3Yの欄では、X5・X7、及び7×13等)を記載することで、素数候補表に表示される非素数値は、全て素数の倍数であることが容易に発見でき、素因数分解が可能となる。
【0075】
さらに、除算処理を行った値が素数である場合には、その値を素数格納配列に記録して、その素数格納配列に記録された素数についても次行の各列に描写された処理対象値に対して除算処理を行うので、予め、素数格納配列に記録する素数は最小限とすることができ、記憶領域の有効活用することができる。また、次行から発生する処理対象値についても、新たに格納した素数に基づいて素数判定を実行できるので、素数判定の確率が向上される。
【0076】
また、本実施形態においては、横軸描画処理では、ターゲット値を30で除した余りが、2から30までに出現する素数、及び1に該当するか否かを判断し、該当する場合には、横軸描画ステップ以降の処理を実行し、該当しない場合には、素数候補表を作成することなく最終処理を実行する前処理処理を、予め素数候補表の描画処理に先行させて行うので、不要な処理を省略し、それ以降の演算処理時間を短縮することができる。
【0077】
[第2実施形態]
次いで、本発明の第2実施形態について説明する。本実施形態では、任意の数字であるターゲット値が、素数に該当するか否かを判定するための素数候補表T1を、筒状の素数塔200として構築する知育教材に用いた場合を例に説明する。図9は、第2実施形態に係る素数塔200の外観を示す斜視図であり、図10は、第2実施形態に係る素数塔200を形成する単位ブロック201,202,203、繰上用ブロック204の形状を示す斜視図である。なお、本実施形態では、プラスの値とマイナスの値と表記されたブロックを用いており、全てのブロックを組み合わせることで、プラス部分が約10段、マイナス部分が約3段の素数候補塔200が構成された場合を例に説明する。また、本実施形態において、上述した第1実施形態と同一の構成要素には同一の符号を付し、その機能等は特に言及しない限り同一であり、その説明は省略する。
【0078】
本実施形態に係る素数塔200は、表面に数字や図形、記号等が表現される多数の単位ブロックを組み合わせることで、図9に示すように、環状に配列されて素数塔を構成する各層を形成するようになっている。なお、上述した実施形態において素数候補表T1は、下へ向かって数字が大きくなり、上方へ向かってマイナスとなり、その値が小さく(絶対値は大きく)なるように表記したが、本実施形態における素数塔200は、ブロックが積み上げられる方向である上方へ向かって数字が大きくなり、下方がマイナスとなるようになっている。この数値が大きくなる方向とブロックの積み上げ方向とは、自由に設計することができ、ブロックが積み上げられる方向に、数値が小さくなるように変更してもよい。
【0079】
この素数塔200を構成する単位ブロックは、例えば、木材や、プラスチック等で形成されており、11個の単位ブロック201,202,203と、繰上用ブロック204とで各層を構成させるようになっている。ここで、素数塔を構成する各層のうち、基準となる基準層に属する単位ブロック201,202,203には、2から30までに出現する素数、及び1が、それぞれ出現順に素数格納配列として表現されている。具体的に、基準層における単位ブロック201,202,203の配列は、素数候補表に対応しており、素数配列X1(1),X2(2),X3(3),X4(5),X5(7),X6(11),X7(13),X8(17),X9(19),X10(23)及びX11(29)が数値の小さな順に配置されている。繰上用ブロック204は、各層の繰上げ位置を示すためのブロックであり、素数塔200を構成する各層に含まれる単位ブロックのうち最大又は最小の値が表現されるようになっている。本実施形態では、繰上用ブロック204については、「30」を周期とする素数塔の繰り上がりについての理解を助けるために、素数格納配列には格納されない、0に対応する列(0,30,60…)を表現する数値とその層を示す「nY」という文字が表記されている。
【0080】
そして、この基準層の上層又は下層に属する単位ブロック201,202,203及び繰上用ブロック204には、素数格納配列に格納された各値、又は0に対して30又は−30を加算した値が、素数候補表の次行の各列として表現されるようになっている。
【0081】
次いで、各単位ブロック201〜204の各形状について説明する。先ず、本実施形態において、基準層に属する単位ブロック201,202は、図10(a)、及び(b)に示すように、水平断面が略扇状の形状となっている。ここで、素数配列X2(2),X3(3),及びX4(5)を表す単位ブロック202の外側円弧辺の幅L2は、その他の素数(X1(1),X5(7),X6(11),X7(13),X8(17),X9(19),及びX10(23))を表すブロック201に係る外側円弧辺の幅L1と比較して、1/2の長さとなっている。
【0082】
これは、数値2、3及び5は素数であるものの、数値2、3及び5に30の倍数の数値が足された数値は、数値2、3又は5で割り切れる数値であるため、基準層に配列される素数ブロックX2(2),X3(3),X4(5)の列に対応する単位ブロック202には素数が出現しないことを利用者に視認させるためである。
【0083】
また、X11の列に配置される単位ブロック203は、図10(c)に示すように、単位ブロック201の幅と同一な長さの幅L3を有するブロックであって、底面及び上面の略中央部分からX1の列のブロックと接する側面の中央部分に向けて切欠された五角柱の形状をなしている。このような形状によって、X11の列のブロックをX1の列のブロックの横に配列させた場合、X11のブロックと、X1のブロックとの間に上部切欠空間203aと、下部切欠空間203bとが生じるようになっている。
【0084】
そして、本実施形態では、この下層部分の上部切欠空間203aと上層部分の下部切欠空間203bに繰上用ブロック204を配置させるようになっている。
【0085】
繰上用ブロック204は、図10(d)に示すように略三角柱の形状となっており、図10(e)に示すように、単位ブロック203,203を2層重ね合わせた際に生じる、下部切欠空間203bと上部切欠空間203aとを合わせた空間と合致するようになっている。
【0086】
そして、本実施形態では、図10(f)に示すように、素数配列X1(1)が記載されたブロック201から数値の小さい順に配置していき、単位ブロック203を配置させて層を形成させた後に、その単位ブロックの上部切欠空間203aに嵌め込む構成となっている。これにより、繰上用ブロック204の上部が環状に構成された層から突出するので、ユーザーが、次の層にブロックを配置させる際、どの位置から次のブロックを並び始めるかを容易に認識することができる。
【0087】
次いで、各単位ブロックの表面に表現される数字や図形、記号等の表示態様について説明する。図11(a)〜(d)は、単位ブロックの表示態様を示す正面図である。
【0088】
本実施形態では、基準層に配列される繰上用ブロック204は、図11(e)に示すように、「0」が表記されている。すなわち、本実施形態では、30」を周期とする素数塔の繰り上がりについての理解を助けるために、繰上用ブロック204には、「素数格納配列には格納されない、0に対応する列(0,30,60…)を表現する数値とその層を示す「nY」という文字が表記されている。そして、この繰上用ブロック204の上層又は下層に属する単位ブロックでは、「0」に30又は−30を加算した値が、素数候補表の次行の各列として表現されるとともに、「nY」という文字は、そのn行目を示すこととなる。なお、本実施形態において、繰上用ブロック204の表面は、金色で表示している。
【0089】
一方、基準層に配列される素数格納配列X1(1)〜X11(29)の単位ブロック201,202,203の表面201a,202a,203aには、図11(a)及び(b)に示すように、数値が太文字で表記されるとともに、素数配列Xnが併記されるようになっている。
【0090】
そして、本実施形態では、基準層の上層又は下層に配置される単位ブロック201,202,203においては、素数格納配列に格納された各値に対して30又は−30を加算した値が、素数候補表の次行の各列として表現されるとともに、その各列に応じてその表記を変えている。
【0091】
詳述すると、本実施形態では、先ず、素数配列X2(2),X3(3),X4(5)の列の上下に位置する単位ブロックと、その他の配列番号X1(1),X5(7),X6(11),X7(13),X8(17),X9(19),X10(23)及びX11(29)の列に配列されるブロックの表示形式を区別して表示させるようになっている。
【0092】
素数格納配列の2、3及び5に対応する列に属する単位ブロック202には、その属する列の特徴を示すスキップマークが表現される。具体的には、素数配列X2(2),X3(3),X4(5)の列に配置されるブロックは、図9に示すように、例えば、ブロックの表面を黒やカラーで表示させる構成とし、素数配列X2(2),X3(3),X4(5)の列ごとに表示色を変化させている。さらに、素数配列X2(2),X3(3),X4(5)の上層又は下層に属する単位ブロックには、その数値のみを表記させる構成となっている。
【0093】
なお、本実施形態では、スキップマークとして、単位ブロック202の色を変更させたが、本発明は、これに限定するものではなく、例えば、2、3及び5に対応する列に属する単位ブロック202には、素数が含まれないことを即時に認識させることができればよく、例えば、単位ブロックの表面に「非素数」という文字を表記させるなど、種々の変更を行うことができる。
【0094】
一方、その他の素数格納配列X1(1),X5(7),X6(11),X7(13),X8(17),X9(19),X10(23)及びX11(29)に対応する列に属する単位ブロック201、及び203では、その数値が素数であるか、非素数であるかを表示させている。すなわち、各ブロック201,203に表現された値を処理対象値とし、素数格納配列に含まれるそれぞれの素数で、各処理対象値を除して割り切れた場合には、処理対象値に対応するブロックに、素数でないことを示す除外フラグを表示させている。
【0095】
具体的には、図11(c)に示すように、例えば、数値77については、7と11とを乗した値であるため、非素数であるとして、数値「77」を大文字で表すとともに、式「=7×11」と、数値7及び11の配列番号Xnを乗する式「=X5×X6」とを併記させる。
【0096】
また、例えば数値が素数の累乗数である場合には、図11(d)に示すように、非素数である数値「49」を大文字で表し、式「=72」と、数値7の配列番号Xnを乗する式「=(X5)2」とを併記させる。
【0097】
一方、各ブロックの前に配列されるべきブロックのうち除外フラグが表現されていないブロックの値で、各処理対象値を除して割り切れない場合には、当該処理対象値が、該処理対象値に対応するブロックに、素数であるとして素数フラグが表現されている。
【0098】
本実施形態では、配列番号X1(1),X5(7),X6(11),X7(13),X8(17),X9(19),X10(23)及びX11(29)の各列に配置されるブロックの中で、素数である場合には、ブロックの表面部分を白地とし、太文字の数値と素数配列Xnとが併記され、表記される各文字を中抜きして、列毎に中抜きの色を変化させるようにしている。
【0099】
(作用・効果)
このような本実施形態によれば、任意の数字であるターゲット値が、素数に該当するか否かを判定するための素数候補表を、単位ブロック201,202,203、及び繰上用ブロック204とから構成して筒状の素数塔として構築し、次行に含まれる各列について、前記素数格納配列の2、3及び5に対応する列に属する単位ブロックには、その属する列の特徴を示すスキップマークが表現されているので、素数格納配列の2、3及び5に対応する列には、素数が含まれていないことが即時に認識することができ、素数判定に関する情報を簡易かつ整理された情報として確認することができる。これにより、例えば、遊びながら素数の出現場所が予想可能となり、素数の性質がより掴み易くなるとともに、非素数の出現(若しくは判別)が可能となる。また、このように素数の性質を理解することを通じて、例えば、分数計算における約分及び通分計算の理解度の向上も期待できる。
【0100】
また、本実施形態では、単位ブロック201,202,203及び繰上用ブロック204には、各ブロックに表現された値を処理対象値とし、前記素数格納配列に含まれるそれぞれの素数で、各処理対象値を除して割り切れた場合には、該処理対象値に対応するブロックに、素数でないことを示す除外フラグが表現され、各ブロックの前に配列されるべきブロックのうち前記除外フラグが表現されていないブロックの値で、前記各処理対象値を除して割り切れない場合には、当該処理対象値が、該処理対象値に対応するブロックに、素数であるとして素数フラグが表現されているので、筒状の素数塔として構築された各ブロックは、素数であるか否かを各ブロックに表現させているので、素数判定に関する情報を簡易かつ整理された情報として確認することができる。
【0101】
[変更例]
(変更例1)
なお、上述した各実施形態の説明は、本発明の一例である。このため、本発明は上述した実施形態に限定されることなく、本発明に係る技術的思想を逸脱しない範囲であれば、設計等に応じて種々の変更が可能であることはもちろんである。図12(a)は、本変更例に係る知育教材の外観を示す斜視図であり、(b)は、本変更例に係る素数候補塔210を上部より示す上面図である。
【0102】
例えば、図12(a)及び(b)に示すように、12個の単位ブロック211,212を1層として12面柱の形状をした素数候補塔210としてもよい。
【0103】
この素数候補塔210は、配列番号X1(1)からX11(29)までの数値等を示す11個のブロック211と、各層の繰上げを示す繰上用ブロック212とから1層を形成させ、複数の層を積み上げることで円筒状の素数候補塔210が構成される。
【0104】
ここで、配列番号X1(1)からX11(29)までの11個の単位ブロック211は、すべて同一形状をなしており、その表面211aには数値が記載され、その数値が素数である場合には、数値に対応する配列番号Xnが表記されている。
【0105】
また、本変更例では、素数である、配列番号X2(2),X3(3),X5(5)のブロックの表面は、黒に塗りつぶされ、白文字で数値と、その通知に対応する配列番号Xnが表示されている。また、この配列番号X2(2),X3(3),X5(5)の列の上下に配列されブロックの表面には、白地に黒文字で数値のみや、「非素数」という除外フラグが表現されるようになっている。
【0106】
さらに、配列番号X1(1),X5(7),X6(11),X7(13),X8(17),X9(19),X10(23)及びX11(29)の列の上下に配置されたブロックであって、素数を表すブロックは、黒に塗りつぶされ、白文字で数値と、素数フラグである、その通知に対応する配列番号Xnが表示されている。
【0107】
一方、配列番号X1(1),X5(7),X6(11),X7(13),X8(17),X9(19),X10(23)及びX11(29)の上下の列に配置されたブロックであって、非素数を表すブロックの表面は、除外フラグをカラー表示するようになっている。特に本変更例では、非素数となる数値であって、異なる素数が因数となる数値を表すブロックと、同一の素数が因数となる数値を表すブロックとは、異なる色で表示させるようになっている。
【0108】
具体的には、例えば、異なる素数である因数7と因数11とを乗した値である数値77は、ブロックの表面を赤色にし、非素数である数値「77」を大文字で表すとともに、式「=7×11」と、数値7及び11の配列番号Xnを乗する式「=X5×X6」とを併記させる。
【0109】
一方、例えば、同一の素数である因数7と因数7とを乗した値である数値49は、ブロックの表面を青色にし、非素数である数値「49」を大文字で表し、式「=72」と、数値7の配列番号Xnを乗する式「=(X5)2」とを併記させる。
【0110】
また、本変更例では、繰上用ブロック212は、垂直断面が平行四辺形の平行六面体の形状をなし、現在の層に属する隣接ブロック及び上層又は下層に属する隣接ブロックの両方に対し両側面で接触するようになっている。例えば、図12(a)に示すように、「Y=0」が記載された繰上用ブロック212は、一方の側面は、「Y=0」の層に配置される配列番号X−9のブロックの側面と接し、他方の側面は、「30:Y」の層に配置される配列番号X1のブロックの側面と接するようになっている。これにより、単位ブロック211を組み合わせて、1層目を形成させた際には、繰上用ブロック212がリング状に構成された積み木から突出する構成となっている。これにより、ユーザーがどの位置から次のブロックを並び始めるかを容易に認識することができる。
【0111】
また、繰上用ブロック212の表面には、30毎の数値と、各層を示すnYが表記されるとともに、その数値を素因数で表した式(例えば、数値30では、「=2×3×5」及び「=X2×X3×X4」)を表記される。
【0112】
(変更例2)
第2実施形態では、数値1及び2〜30の素数が記載されたブロックを1層とし、これらの数値に30又は、−30を加算した数値が記載されたブロックを上下の列に配置させる構成としたが、本変更例では、すべての数値をブロックに表記し、そのブロックを組み合わせる構成としてもよい。図13は、本変更例に係る知育教材220のブロックの一部分を示す斜視図である。なお、本変更例においても、上述した実施形態及び変更例と同一の構成要素には同一の符号を付し、その機能等は特に言及しない限り同一であり、その説明は省略する。
【0113】
本変更例において、素数候補塔220は、1〜30までの数値を単位ブロックに記載し、30個のブロックで一層を構成させている。この際、非素数である、4,6,8,9,10,12,14,15,16,18,20,21,22,24,25,26,27,28,及び30が記載されたブロック221の幅L4は、素数である2,3,及び5が記載されたブロック202の幅の1/2(その他の素数である1,7,13,17,19,23,及び29が記載されたブロック201の幅の1/4)の長さとしている。
【0114】
また、数値0,30,60等の各層の開始については、繰上用ブロック222に表記され、1が記載されたブロック201に設けられた下部切片空間223と合致するような、三角柱の形状をなしている。
【0115】
また、本変更例では、単位ブロックの底面、上面、及び両側面に他のブロックと嵌合する凹部及び凸部(図示せず)が設けられており、ブロックの組立てを固定するようになっている。
【0116】
なお、本発明は、素数候補表が表記されればよく、積み木状の知育教材の他、ブロック玩具や、学習用教材として用いてもよい。また、これらは、種々の大きさとすることができ、例えば、組立てたブロック群が手のひらサイズの大きさとすることもできる。また、販売先としては、幼児教育専門所、デパート等の知育玩具コーナー、本屋、文具店、小学生向け学習塾など様々な店舗で販売することができる。
【符号の説明】
【0117】
L1,L2、L3,L4…ブロックの幅
X…横軸
X1〜X10…配列番号
Xn…最後尾の配列番号
Y…縦軸
1…コンピュータ
2…印刷装置
3…モニタ
4…操作デバイス
4a…マウス
4b…キーボード
6…記録媒体
7…ユーザー
81…フレキシブルディスク
82…CD−ROM
83…カセットテープ
84…RAMカード
101…入力インターフェイス
102…出力インターフェイス
103…操作信号取得部
110…演算処理部
111…横軸描画部
112…次行描画部
113…ピックアップ判断部
114…処理対象値演算部
115…除外フラグ描画部
115a…最終描画処理部
116…終了判定部
117…画像情報生成部
120…記憶部
121…素数格納配列部
122…素数候補表記憶部
200,210,220…素数塔
201,202,211,221…単位ブロック
201a,202a,203a,204a,211a…単位ブロックの表面
203a…上部切欠空間
203b…下部切欠空間
204,212,222…繰上用ブロック
223…下部切片空間
【技術分野】
【0001】
本発明は、素数候補表を作成する素数候補表の作成プログラム及び、素数候補表を利用した素数塔用知育教材に関する。
【背景技術】
【0002】
素数とは、1より大きな自然数であって、1とその数自身以外に正の約数がない数値をいい、従来、自然数や整数の積を考える上で基本的な構成要素であり、数論、暗号理論等において重要な役割を果たしている。例えば、電子情報の認証手段としての暗号技術では、素数のもつ性質を利用し、秘密鍵として2つの素数を使用したRSA方式が利用されている。
【0003】
ここで、ある整数が素数か否かを判定する素数の判定方法には、与えられた自然数 n を「合成数である」または「不明である」と判別する確率的アルゴリズムに基づく確率的素数判定法であるミラーラビン素数判定法等(例えば、非特許文献1)や、与えられた自然数nを「素数である」あるいは否と判定する決定的アルゴリズムに基づく決定的素数判定であるAKS素数判定法等がある。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】W. R. Alford, A. Granville and C. Pomerance, On the difficulty of finding reliable witnesses, in: Algorithmic Number Theory, First International Symposium, Proceedings (L. M. Adleman, M.-D. Huang, eds.), LNCS 877, Springer-Verlag, 1994, pp. 1?16. Carl Pomerance, List of Papers, 96.
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1に開示された素数判定法等は、ある数値が素数であるか否かを一つずつ調べていく方法であり、これら素数の判定結果に関する情報を纏めるのは、ユーザー自身であるため、素数であるか等の情報をノートに記載することや、情報処理端末等に入力することは、その作業が煩雑になるとともに、情報が整理されていないと、閲覧時に誤認してしまう問題や、出現パターンが不明確であるという問題があった。
【0006】
そこで、本発明は、上記のような問題を解決するものであり、任意の数字が素数に該当するかの判定結果を素数候補表として作成して表示させることで、素数判定に関する情報を簡易かつ整理された情報として確認することができる素数候補表作成プログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
上記課題を解決するために、本発明は、任意の数字であるターゲット値が、素数に該当するか否かを判定するための素数候補表を作成するプログラムであって、
(1)コンピュータに、2から30までに出現する素数、及び1を、それぞれ出現順に素数格納配列に格納して記憶領域に保持するとともに、素数格納配列に含まれる各値を、素数候補表の横軸の各列として描画する横軸描画ステップと、
(2)素数格納配列に格納された各素数に対して30を加算し、加算した値を素数候補表の次行の各列として追加する次行描画ステップと、
(3)次行に含まれる各列について、素数格納配列の2,3及び5に対応する列をスキップしながら、各列の値を処理対象値として順次ピックアップし、各処理対象値を、素数格納配列に含まれるそれぞれの素数で除し、整数で割り切れた場合には、処理対象値に対応する列に、素数でないことを示す除外フラグを描画し、整数で割り切れない場合には、当該処理対象値を、素数であるとして素数格納配列に格納し、記憶領域に保持させる除外フラグ描画ステップと、
(4)除外フラグ描画ステップの対象となっている処理対象値が、ターゲット値よりも大きいか否かを判断し、処理対象値がターゲット値以下である間は、次行描画ステップ及び除外フラグ描画ステップを繰り返し、処理対象値がターゲット値よりも大きくなった時点で、素数候補表を完成させる最終描画処理を実行する終了判定ステップとを含む処理を実行させる。
【0008】
なお、スキップ処理の際、非素数であることを示すメッセージを即時に表示させる機能を有してもよい。具体的には、入力された数値を認識し、2桁以上の数の末尾が0、偶数、及び5である時には、即座に非素数であることを示すメッセージやアニメーション等を表示させる。また、除外フラグを描画する際には、例えば、素数でないことを表現するために、当該処理対象値の因数分解(素数を約数に含む)の式を表示してもよい。
【0009】
このような発明によれば、素数格納配列に記憶された素数に基づいて、ターゲット値が素数か否かの判定を実行するとともに、その判定結果を素数候補表として出力するので、素数判定に関する情報を簡易かつ整理された情報として確認することができる。また、本発明によれば、このような素数候補表を使用することで、例えば、素数の出現場所が予想可能となり、素数の性質がより掴み易くなるとともに、非素数の出現(若しくは判別)が可能となる。
【0010】
また、本発明は、除算処理を行った値が素数である場合には、その値を素数格納配列に記録して、その素数格納配列に追加された素数に基づき、次行の各列に描写された処理対象値に対して除算処理を行うので、予め、素数格納配列に記録する素数は最小限とすることができ、記憶領域の有効活用することができる。また、次行から発生する処理対象値についても、新たに格納した素数に基づいて素数判定を実行できるので、素数判定の確率が向上される。
【0011】
上記発明において、横軸描画ステップでは、ターゲット値を30で除した余りが、2から30までに出現する素数、及び1に該当するか否かを判断し、該当する場合には、横軸描画ステップ以降の処理を実行し、該当しない場合には、素数候補表を作成することなく最終処理を実行する前処理ステップを有することが好ましい。この場合には、表作成処理の前処理として、素数のふるい分け処理を行い、不要な処理を省略し、それ以降の演算処理時間を短縮することができる。
【0012】
また、他の発明では、任意の数字であるターゲット値が、素数に該当するか否かを判定するための素数候補表を、筒状の素数塔として構築する知育教材であって、環状に配列されることによって前記素数塔を構成する各層を形成し、表面に数字や図形、記号等が表現される多数の単位ブロックと、前記素数塔を構成する各層に含まれる単位ブロックのうち最大又は最小の値が表現され、現在の層に属する隣接ブロック及び上層又は下層に属する隣接ブロックの両方に対し両側面で接触する繰上用ブロックとから構成される。
【0013】
そして、前記素数塔を構成する各層のうち、基準となる基準層に属する単位ブロック及び繰上用ブロックには、2から30までに出現する素数、及び1が、それぞれ出現順に素数格納配列として表現され、前記基準層の上層又は下層に属する単位ブロック及び繰上用ブロックには、前記素数格納配列に格納された各値に対して30又は−30を加算した値が、前記素数候補表の次行の各列として表現されている。さらに、前記次行に含まれる各列について、前記素数格納配列の2、3及び5に対応する列に属する単位ブロックには、その属する列の特徴を示すスキップマークが表現されている。
【0014】
なお、繰上用ブロックについては、「30」を周期とする繰り上がりについての理解を助けるために、素数格納配列には格納されない、0に対応する列(0,30,60…)を表現するようにしてもよい。
【0015】
このような発明によれば、例えば、表面に数値及び素数配列Xnなどの数字や図形、記号等が表現されるブロックを数値の出現順に組立てることで、立体的に素数候補表が表現され、素数格納配列の2、3及び5に対応する列に属する単位ブロックには、その属する列の特徴を示すスキップマークを表現させているので、素数判定に関する情報を簡易かつ整理された情報として確認することができる。これにより、例えば、遊びながら素数の出現場所が視覚を通じて記憶され、素数の性質がより理解し易くなる。
【0016】
上記発明において、前記単位ブロック及び繰上用ブロックには、各ブロックに表現された値を処理対象値とし、前記素数格納配列に含まれるそれぞれの素数で、各処理対象値を除して、整数で割り切れた場合には、該処理対象値に対応するブロックに、素数でないことを示す除外フラグ(数式などを含む。)が表現され、各ブロックの前に配列されるべきブロックのうち前記除外フラグが表現されていないブロックの値で、前記各処理対象値を除して、整数で割り切れない場合には、当該処理対象値が、該処理対象値に対応するブロックに、素数であるとして素数フラグが表現されていることが好ましい。この場合には、筒状の素数塔として構築された各ブロックは、素数であるか否かを各ブロックに表現させているので、遊びながら素数判定に関する情報を簡易かつ整理された情報として確認することができる。
【発明の効果】
【0017】
以上述べたように、この発明によれば、任意の数字が素数に該当するかの判定に際し、1から当該任意の数字までの判定結果を、素数候補表として作成して表示させることで、素数判定に関する情報を簡易かつ整理された情報として確認することができる。
【図面の簡単な説明】
【0018】
【図1】実施形態に係る素数候補表作成プログラムを実行するシステムの概略構成を示す説明図である。
【図2】実施形態に係る素数候補表作成システムにおいて、素数候補表作成プログラムを実行する際の動作を示すフローチャート図である。
【図3】実施形態に係るコンピュータのCPU上に構築される機能モジュールを示すブロック図である。
【図4】実施形態に係る素数候補表の作成過程を示す説明図である。
【図5】実施形態に係る素数候補表の作成過程を示す説明図である。
【図6】実施形態に係る素数候補表の作成過程を示す説明図である。
【図7】実施形態に係る素数候補表の作成過程を示す説明図である。
【図8】実施形態に係る素数候補表作成プログラムを記録したコンピュータ読み取り可能な記録媒体を示す斜視図である。
【図9】第2実施形態に係る知育玩具の外観を示す斜視図である。
【図10】第2実施形態に係る知育玩具の各ブロックの形状を示す斜視図である。
【図11】(a)〜(d)は、第2実施形態に係る各ブロックの表示態様を示す正面図である。
【図12】(a)は、変更例に係る知育玩具の外観を示す斜視図であり、(b)は、本変更例に係る知育玩具を上部より示す上面図である。
【図13】変更例に係る知育玩具220のブロックの一部分を示す斜視図である。
【発明を実施するための形態】
【0019】
[第1実施形態]
以下に添付図面を参照して、本発明に係る素数候補表作成プログラムの実施形態を詳細に説明する。図1は、本発明に係る素数候補表作成プログラムが適用される第1実施形態としての素数候補表作成システムの全体構成を示す概念図である。ここでは、予め素数候補表作成プログラムがコンピュータにインストールされている場合を例に説明する。
【0020】
同図に示すように、素数候補表作成プログラムがインストールされたコンピュータ1に操作デバイス4(マウス4a、及びキーボード4b)と、出力装置(モニタ3、及び印刷装置2)とが接続され、ユーザー7が、任意の数字であるターゲット値を入力することで、出力装置から素数候補表を出力することができる。
【0021】
具体的には、ユーザー7が、コンピュータ1に接続されたキーボード4bやマウス4aを操作し、任意の数字であるターゲット値を入力することで、情報処理内において素数候補表作成プログラムが実行される。そしてコンピュータ1内で、入力されたターゲット値に対して除算処理を実行するとともに、素数候補表T1を作成し、その素数候補表をモニタ3の表示画面に表示させたり、印刷装置2によって記録媒体6に印刷表示させる。表1は、本実施携帯に係る素数候補表の一例である。ユーザー7は、この素数候補表により数値1からターゲット値(マイナス値も含む)までの素数候補を確認することができる。
【表1】
【0022】
ここで、コンピュータ1は、CPUを備えた演算処理装置であり、パーソナルコンピュータ等の汎用コンピュータや、機能を特化させた専用装置により実現することができ、例えば、モバイルコンピュータやPDA(Personal Digital Assistance)、携帯電話機が含まれる。なお、コンピュータ1は、LAN等の通信網に接続され、通信網を通じて、プリンタなどの外部機器に対してデータの送受信を行う通信機能を備えているものとする。この通信網としては、例えば、通信プロトコルTCP/IPを用いて種々の通信回線(電話回線やISDN回線、ADSL回線などの公衆回線、専用回線、無線通信網)を相互に接続して構築される分散型のIP網が挙げられ、このIP網には、インターネットの他、10BASE−Tや100BASE−TX等によるイントラネット(企業内ネットワーク)や家庭内ネットワークなどのLANなども含まれる。
【0023】
印刷装置2は、例えば、上記通信網や、USB接続を介して、コンピュータ1に接続され、コンピュータ1から送られた印刷データに基づいて、素数候補表の印刷を行うことができる。モニタ3は、例えば、液晶ディスプレイ等の表示装置であり、アプリケーションによって生成されるウィンドウを通じて、映像や文字などを表示することができる。操作デバイス4は、ユーザー操作を操作信号としてコンピュータ1に入力する操作デバイスであり、マウス4a、及びキーボード4b等のボタンの他、ジョグダイヤルや、タッチパネル等であってもよい。そして特に本実施形態において、操作デバイスは、任意のターゲット値を取得したり、素数候補表作成処理の開始及び停止等の操作を受け付ける操作部として機能する。
【0024】
(素数候補表作成プログラム)
上述した本実施形態係る素数候補表作成システムは、所定の言語で記述された素数候補表作成プログラムをコンピュータのCPU1上で実行することにより実現することができる。図2は、本実施形態に係る素数候補表作成システムにおいて、素数候補表作成プログラムを実行する際の動作を示すフローチャート図である。
【0025】
先ず始めに、ユーザーが操作デバイス4によって、素数か否かを判断する対象となる任意の数値(ターゲット値)を入力し(S101)、素数候補表作成プログラムを実行する。なお、このとき、コンピュータ1では、2から30までに出現する素数、及び1を、それぞれ出現順に素数格納配列に格納して記憶領域121に保持する(S102)。本実施形態では、この素数格納配列に格納された2から30までに出現する素数、及び1は、予め初期値として設定ファイルなどに記述され、不揮発性のメモリやハードディスクに記憶保持されており、プログラムの起動時や実行時に適宜読み出され、素数格納配列に代入される。
【0026】
次に、コンピュータ1は、前処理を行う(S116)。この前処理とは、ターゲット値を30で除した余りが、2から30までに出現する素数、及び1に該当するか否かを判断する処理である。ここで、2から30までに出現する素数、及び1に該当しない場合(S116における“N”)、素数候補表を作成することなく最終処理を実行する(S115)。さらに、前処理には、ターゲット値を30で除する処理を実行する前提として、ターゲット値が2桁以上の数値である場合、その末尾が0、2、及び5であるか否かを判断する処理を実行してもよい。この処理により、ターゲット値の末尾(一の位)が0、偶数(2)、及び5である場合には、30で除する処理を実行することなく素数候補表を作成しないと判断し(S116における“N”)、最終処理を実行する(S115)。一方、ターゲット値が1桁の数値である場合や、2桁以上の数値であって、末尾が0、偶数(2)、及び5以外である場合には、30で除する処理を実行する。
【0027】
なお、本実施形態では、この前処理によって素数候補表を作成しないと判断した場合には(S116における“N”)、非素数であるメッセージを即時に表示する処理を実行する(S117)。なお、この非素数であるメッセージの表示に際し、素数でないことを示す、数式(例えば、素数を約数に含む因数分解式)などを表示するようにしてもよい。
【0028】
一方、前処理において、2から30までに出現する素数、及び1に該当する場合には(S116における“Y”)、以下の横軸描画処理以降の処理を実行し、現在の素数格納配列に含まれる各値(2から30までに出現する素数、及び1)を、素数候補表の横軸の各列として描画する(S103)。なお、本実施形態において、この前処理はターゲット値を30で除した余りが、2から30までに出現する素数、及び1に該当しない場合であっても、以下の横軸描画処理、素数候補表の次行を追加、素数による除算、及び判定を実行するか否かの選択をユーザーに促すようにしてもよい。この場合には、ターゲット値が記載されない素数候補表が作成され、ターゲット値が素数でない旨を併記することが好ましい。
【0029】
次いで、コンピュータ1は、素数候補表に描画された各列の値である処理対象値とターゲット値を順次比較し、処理対象値がターゲット値よりも大きいか否かを判断し(S104a)、処理対象値がターゲット値を越えるまで、以下の素数候補表の次行を追加、素数による除算、及び判定を繰り返し実行する(S104a〜S104b)。
【0030】
具体的には、先ず、素数格納配列に格納された各素数に対して30を加算し(S105)、加算した各値を素数候補表の次行の各列として追加する(S106)。そして、コンピュータ1は、追加された次行に含まれる各列に対し、以下の処理を施す(S107a〜S107b)。すなわち、次行の各列に含まれる値を処理対象値として順次ピックアップする(S108)。このとき、そのピックアップした値が素数格納配列の2、3及び5に対応する列である場合には、処理を省略して次の列へとスキップする(S109)。
【0031】
これは、素数格納配列に格納された数値2、3及び5は素数であるものの、素数格納配列に格納された数値2、3及び5に30の倍数の数値が足された数値は、数値2、3又は5で割り切れる数値であるため、数格納配列の2、3及び5の列に対応するには素数が出現しないからである。
【0032】
次に、素数格納配列に含まれたそれぞれの素数を順次選択し、選択された処理対象値を除する処理(S111)を、ループ処理で実行する(S110a〜S110b)。なお、このステップS110a〜S110bの処理は、素数格納配列に含まれる全ての素数値で除算するまで繰り返し実行してもよいが、整数で割り切れた時点で、ループ処理を終了するようにしてもよい。
【0033】
そして、上記ループ処理(S110a〜S110b)を抜けた後、処理対象値が素数格納配列に含まれる値の何れかの値で割り切れた場合には(S112における“Y”)、処理対象値に対応する列に素数でないことを示す除外フラグ(素数でないことを示す、数式(例えば、素数を約数に含む因数分解式)などを含む。)を描画する(S114)。一方、処理対象値が素数配列に含まれる全ての値で割り切れない場合には(S112における“N”)、当該処理対象値を素数であるとして、素数格納配列の最後尾に格納し、記憶領域に保持させる(S113)。
【0034】
そして、コンピュータ1は、素数候補表の対象となっている次行の全列に含まれた処理対象値に対して、除外フラグ処理(S114)又は素数格納処理(S113)が終了するまで、ピックアップ処理(S108)、スキップ処理(S109)、及び除算処理(S110)を繰り返し実行する(S107b)。
【0035】
その後、処理対象値がターゲット値よりも大きくなった時点で、ループ処理(S104a〜S104b)を抜けだし、素数候補表を完成させる最終描画処理を実行する(S115)。そして、終了判定処理後に、モニタ3上に素数候補表が表示されるとともに、ユーザ操作によって、印刷装置2によりプリントアウトされる。なお、ここで、前処理の後、描画処理をすることなく、最終描画処理が実行された場合には、整数で割り切れた時の数式をモニタ3等に表示させる。
【0036】
(機能モジュール)
上述した素数候補表作成プログラムを実行させることにより、コンピュータ1のCPU上で仮想的に機能モジュールが構築され、コンピュータ1を素数候補表作成システムとして利用することができる。図3は、本実施形態に係るコンピュータ1のCPU上に構築される機能モジュールを示すブロック図である。
【0037】
図3に示すように、コンピュータ1には、出入力系のモジュールとして、入力インターフェイス101と、出力インターフェイス102と、操作信号取得部103とを備えている。
【0038】
入力インターフェイス101は、マウス4aやキーボード4b等の操作デバイス4が接続され、その操作信号が入力されるモジュールである。本実施形態において、入力インターフェイス101は、ユーザー7が入力した任意の数字であるターゲット値を操作信号として操作信号取得部103へ入力する。出力インターフェイス102は、映像及び音声の出力信号を、モニタ3及びスピーカーからそれぞれ出力させるモジュールである。また、本実施形態において、出力インターフェイス102は、演算処理部110から受信した画像情報をモニタ3、又は印刷装置2へ出力する。
【0039】
操作信号取得部103は、ユーザー操作による操作信号を、入力インターフェイス101から受信するモジュールであり、受信した操作信号を解析し、ユーザー操作に応じた処理を他のモジュールに実行させる。特に、本実施形態において、この操作信号取得部103は、素数候補表作成の命令信号及び、任意の数値を受信した場合には、この命令信号及び数値に関する信号を演算処理部110に入力する。
【0040】
また、コンピュータ1には、素数候補表作成系のモジュールとして、演算処理部110と、記憶部120とを備えている。
【0041】
記憶部120は、素数候補表に関する情報を記憶するメモリ装置等であり、本実施形態において、記憶部120には、素数格納配列部121と、素数候補表記憶部122とを備えている。
【0042】
記憶部120は、素数データを出現順に素数格納配列に格納して保持する記憶領域である。特に本実施形態において、素数格納配列部121には、予め2から30までに出現する素数、及び1を素数格納配列に出現順に格納して記憶、保持している。また、記憶部120は、演算処理部110から送信された素数データについても、素数格納配列に出現順に格納する機能を有している。
【0043】
素数候補表記憶部122は、演算処理部110において実行される描画処理で使用される素数候補表データを保持する記憶領域であり、演算処理部110からの制御により、素数候補表を演算処理部110と送受信する。
【0044】
演算処理部110は、CPUやDSP(Digital Signal Processor)等のプロセッサ、メモリ、及びその他の電子回路等のハードウェア、或いはその機能を持ったプログラム等のソフトウェア、又はこれらの組み合わせなどによって構成された演算モジュールであり、プログラムを適宜読み込んで実行することにより種々の機能モジュールを仮想的に構築し、構築された各機能モジュールによって、素数候補表作成に関する処理や、各部の動作制御、ユーザー操作に対する種々の処理を行う。
【0045】
本実施形態において、演算処理部110には、横軸描画部111と、次行描画部112と、ピックアップ判断部113と、処理対象値演算部114と、除外フラグ描画部115と、終了判定部116と、画像情報生成部117とを備えている。
【0046】
横軸描画部111は、操作信号取得部103からの操作信号に基づいて、記憶部120から素数候補表を抽出するとともに、素数格納配列に含まれる各値を、素数候補表の横軸の各列として描画するモジュールである。次行描画部112は、素数格納配列に格納された各素数に対して30を加算し、加算した値を素数候補表の次行の各列として追加するモジュールである。
【0047】
また、横軸描画処理部111には、ターゲット値を30で除した余りが、2から30までに出現する素数、及び1に該当するか否かを判断する前処理機能を備えている。本実施形態において、横軸描画処理部111は、ターゲット値を30で除した余りが、2から30までに出現する素数、及び1に該当する場合には、素数候補表の横軸の各列として描画する処理を実行する。一方、ターゲット値を30で除した余りが、2から30までに出現する素数、及び1に該当しない場合には、素数候補表を作成することなく最終処理を実行する信号を最終描画処理部115aに送信する。なお、本実施形態において、この前処理機能には、前処理の判断結果をユーザーに通知し、その後の処理を続行するか否かの判断を促す機能も備えていてもよい。
【0048】
ピックアップ判断部113は、次行に含まれる各列について、素数格納配列の2、3及び5に対応する列をスキップしながら、各列の値を処理対象値として順次ピックアップするモジュールである。
【0049】
処理対象値演算部114は、ピックアップ判断部によりピックアップされた各処理対象値を、素数格納配列に含まれるそれぞれの値で除算するモジュールである。そして、処理対象値演算部114は、対象となった処理対象値の除算結果を、除外フラグ描画部115に送出する。ここで、処理対象値の除算結果には、何れかの素数格納配列に含まれる値で割り切れた結果と、素数格納配列に含まれる全ての値で割り切れなかった結果とが含まれる。また、処理対象値演算部114は、処理対象となっている値を終了判定部116に入力する。
【0050】
除外フラグ描画部115は、処理対象値演算部114から入力された信号に基づいて、素数候補表に除外フラグを描画するモジュールである。具体的に、除外フラグ描画部115は、処理対象値演算部114から入力された信号が、何れかの値で割り切れた信号である場合には、処理対象値に対応する列に、素数でないことを示す除外フラグを描画する。なお、この除外フラグの描画では、例えば、素数でないことを示す、数式(例えば、素数を約数に含む因数分解式)などを表示する処理も含まれる。
【0051】
さらに、除外フラグ描画部115には、処理対象値演算部からの信号が、素数格納配列に格納された全ての値で割り切れない信号であった場合には、処理対象となっている処理対象値を、素数であるとして素数格納配列に格納し、記憶領域に保持させる機能も備えている。
【0052】
終了判定部116は、処理対象値演算部114から入力された処理対象値が、操作信号取得部103から取得したターゲット値よりも大きいか否かを判断するモジュールである。終了判定部116は、判断の結果、処理対象値がターゲット値以下である間は、ピックアップ判断部113に処理続行の信号を入力し、処理対象値がターゲット値より大きいと判断した場合には、その判断結果信号を最終描画処理部115aに入力する。
【0053】
最終描画処理部115aは、終了判定部116からの信号に基づいて、素数候補表を完成させる最終描画処理を実行する。具体的に、最終描画処理部115aは、終了判定部116からの信号を受信すると、現在、処理が実行されている行を最終行として素数候補表を作成するとともに、素数候補表に描画された情報を画像情報生成部117へ入力する。また、最終描画処理部115aは、横軸描画処理部111の前処理によって、素数候補表を作成することなく最終処理を実行する信号を受信した場合には、例えば、ターゲット値は、素数でない旨を通知するメッセージ等を含む画像情報及び、整数で割り切れたときの数式を生成し、モニタ3等に表示させる。
【0054】
画像情報生成部117は、印刷処理や画像表示に必要な画像データの変換等を行い、印刷処理及び画像表示を実行するモジュールである。具体的に、画像情報生成部117は、最終描画処理部115aで処理された素数候補表データを画像信号に変換し、モニタ3の表示画面に出力可能な信号を生成する機能や、印刷の処理単位であるジョブデータを受信し、このジョブデータに含まれる印刷に必要な画像データの変換等を行い、印刷を実行させる機能を備えている。また、画像情報生成部117には、ジョブデータを受信する通信インターフェースや、RGB印刷画像をCMYK印刷画像に変換する色変換回路、各色のインクヘッドの駆動及び搬送経路の駆動手段の動作を制御し、画像形成処理全体を制御する画像形成制御機能が含まれる。
【0055】
(素数候補表作成方法)
上述したCPU上に仮想的に構築された機能モジュールを動作させることで、本実施形態における素数候補表が作成される。以下に、本実施形態に係る素数候補表が作成される動作を説明する。図4、図5、図6、及び図7は、本実施形態に係る素数候補表の作成過程を示す説明図である。なお、本実施形態においては、ターゲット値を337として、入力された場合を例として説明するものとする。
【0056】
先ず、コンピュータ1では、数値1及び3〜30までに出現する素数を、それぞれ出現順に素数格納配列部121に格納して記憶領域に保持されており、この素数格納配列部121に格納された素数にそれぞれ配列番号を付与している。具体的には、図4(a)に示すように、2から30までの素数及び1を、それぞれ、1=X1,2=X2,3=X3,5=X4,7=X5,11=X6,13=X7,17=X8,19=X9,23=X10,29=X11とする。
【0057】
そして、ユーザーが操作デバイス4によって、素数か否かを判断する任意の数値(例えば、337)を入力し、素数候補表作成プログラムが実行されると、その操作信号は、操作信号取得部103から横軸描画部111と、終了判定部116へ入力される。
【0058】
横軸描画部111は、操作信号を受信すると、まず、ターゲット値を30で除した余りが、2から30までに出現する素数、及び1に該当するか否かを判断する。ここで、入力されたターゲット値337を、30で除した場合、その余りは、7であるので、2から30までに出現する素数、及び1に該当すると判断し、以下の横軸描画処理以降の処理を実行する。
【0059】
次いで、横軸描画部111は、図4(a)に示すように、素数格納配列部121に格納された各値を抽出し(P1)、素数候補表の横軸の各列として出現順に描画する。具体的に、横軸描画部111は、横軸の各列の欄に配列番号X1〜X11と、その素数配列番号に該当する素数値とを表記する(P2)。
【0060】
次いで、次行描画部112は、素数候補表の縦軸Yを作成する。具体的に、次行描画部112は、横軸の各列の欄に記載された各素数値と、数値30に縦軸の各列番号を乗じた数とを加算していく。例えば、縦軸の一列目には、図4(a)に示すように、各素数値に30×1列目の数値である30を加算する。ここで、素数格納配列の数値2、3及び5に対応する列X2,X3,及びX4である各列には、加算処理は行わない。これは、X2,X3及びX4である各列は、常に末尾が2、3又は5であり、且つ、横軸の各列には30の倍数が加算されていくため、素数候補表に記載される数値は、全て2、3、又は5の倍数となり、この欄に記載される数値には素数は発生しないためである。したがって、X1の欄には31が記載され、X2,X3及びX4の欄をスキップして、X5の欄からX11の欄に、それぞれ、37,41,…59を素数候補表の次行の各列に追加する(P3)。ここで、縦軸Yの欄には、縦軸の番号であるYと、横軸の各列に記載された値に加算した数値30とを記載する。
【0061】
そして、ピックアップ判断部113は、次行に含まれる各列について、各列の値を処理対象値として順次ピックアップする。具体的には、図4(b)に示すように、まず、次行の各列の最初に記載された31を処理対象値として、ピックアップする(P4)。この際、ピックアップ判断部113は、ピックアップした値が素数格納配列の数値2、3及び5に対応する列X2,X3及びX4である場合にはスキップ処理をする。これは、X2,X3及びX4の表上の縦列は、2の倍数、3の倍数、かつ5の倍数である30を順次足すため、この縦列に記載される数値は、常にX2、X3及びX4の倍数であり、この各列に素数は出現しないためである。
【0062】
ピックアップ判断部113は、処理対象値であると判断した場合には、その信号を処理対象値演算部114に入力する。本実施形態において、図4(b)に示すように、横軸X1,縦軸Y1に描画された値31は、素数格納配列の2、3及び5に対応する列ではないので、処理対象値としてピックアップされる。
【0063】
処理対象値演算部114は、受信した信号から、処理対象値を素数格納配列に記憶された配列番号X1〜X11の各素数値で除算処理する(P5)。ここで、コンピュータ1は、処理対象値に対して、素数格納配列に含まれる素数値によって、それぞれ除する処理を繰り返し実行する。
【0064】
ここで、処理対象値が、素数配列に含まれる全ての素数で割り切れない場合には、処理対象値が素数であるとして、その素数に、新たな配列番号Xnを付与するとともに、素数格納配列の最後尾に格納し、記憶領域121に保持させる。具体的には、図5(a)に示すように、処理対象値31は、配列番号X1〜X11の各素数では、割り切ることができないので、素数格納配列部121に記憶されている配列番号の次番号であるX12を付与し、素数候補表に描画する(P6)。そして、その素数31を配列番号X12と関連付けして、素数格納配列部121に記憶させる(P7)。
【0065】
一方、処理対象値が素数格納配列に含まれる値の何れかで割り切れた場合には、非素数が出現したとして、処理対象値に対応する列に、素数でないことを示す除外フラグを描画する。具体的には、図5(b)に示すように、処理対象が移動し、処理対象値が49の場合(P8)、処理対象値49は、素数7の数値で割り切れる数値であるので、除外フラグ描画部115は、割り切れた場合の数式((X5)2、及び(7)2等)を記入し(P9)、対象処理値上に取消し線を記入し、非素数であることを示す処理を行う。
【0066】
また、処理対象値演算部114は、除算処理する処理対象値を終了判定部116に入力する。そして、終了判定部116は、対象となっている処理対象値が、ターゲット値よりも大きいか否かを判断する。本実施例では、処理対象値である数値49は、ターゲット値である数値337よりも小さい値であるので、図5(b)に示すように、次の列に記載された処理対象値(数値59)について、ピックアップ処理を実行し、演算処理の後に除外フラグ描画処理を実行する。このように、処理対象値がターゲット値以下である間は、ピックアップ処理から除外フラグ描画処理までの処理を繰り返し実行する(P10)。
【0067】
さらに、横軸X11の欄の処理対象値が終了した後も、処理対象値がターゲット値以下である場合は、次行描画部112は、縦軸Yの行2Yに各値を追加する処理を行う。具体的には、図6(a)に示すように、横軸の各列の欄に記載された各素数値と、数値30に対して縦軸の列番号である2を乗じた数である数値60とを加算し、横軸の各列に値を描画する(P11)。ここでも、素数格納配列の数値2、3及び5に対応する列X2,X3及びX4である各列には、加算処理は行わない。なお、本実施形態において、素数格納配列部121には、それまでの処理で素数と判定された値が配列番号と関連付けて記録されており、次回の除算処理において使用される。そして、図6(b)に示すように、配列番号X1の列から順次、ピックアップ処理から除外フラグ描画処理を繰り返し実行する(P12)。
【0068】
その後、図7に示すように、上記の処理を繰り返し、処理対象値が341となった場合、処理対象値演算部114は、終了判定部116に処理対象値341の情報を入力することで、終了判定部116は、処理対象値がターゲット値よりも大きいと判定し、最終描画処理部115aに終了信号を送出する。そして、最終描画処理部115aは処理している列と、それ以降の各列に対して終了フラグを描画し(P13)、表1に示すような素数候補表を完成させる。
【0069】
画像情報生成部117は、最終描画処理部115aで処理された素数候補表データを画像信号に変換し、モニタ3の表示画面に出力可能な信号を生成したり、印刷の処理単位であるジョブデータを受信し、このジョブデータに含まれる印刷に必要な画像データの変換等を行い、印刷を実行させる。
【0070】
(素数候補表作成プログラムの記録媒体)
なお、上述した素数候補表作成プログラムは、図8に示すような、汎用コンピュータ1で読み取り可能な記録媒体81〜84に記録することができる。具体的には、同図に示すような、フレキシブルディスク81やカセットテープ84等の磁気記録媒体、若しくはCD−ROMやDVD−ROM82等の光ディスクの他、RAMカード83など、種々の記録媒体に記録することができる。本実施形態は書き込み不可のCD−ROMやDVD−ROM82中にあるコンテンツに対してリンクを設けることができる特徴を有する。
【0071】
そして、この素数候補表作成プログラムを記録したコンピュータ読み取り可能な記録媒体によれば、汎用のコンピュータや専用コンピュータを用いて、上述した効果を奏するシステムや方法を実施することが可能となるとともに、プログラムの保存、運搬及びインストールを容易に行うことができる。
【0072】
(作用・効果)
このような実施形態によれば、素数格納配列部121に記憶された素数に基づいて、ターゲット値が素数か否かの判定に際し、1から当該ターゲット値までの判定結果を素数候補表として出力するので、素数判定に関する情報を簡易かつ整理された情報として確認することができる。これにより、例えば、素数の出現場所が予想可能となり、素数の性質がより掴み易くなるとともに、非素数の出現(若しくは判別)が可能となる。
【0073】
具体的には、このような素数候補表プログラムを実行して、素数候補表作成することで、横軸に、0及び1、並びに2から30までの素数を表し、縦軸では、30ごとの数値を横軸の数値に加算していくので、素数候補表から、偶数の排除ができ、かつ、数値3及び5の倍数を判別できる。
【0074】
また、このような実施形態によれば、非素数である値の欄に、整数で割り切れた場合の数式(例えば、表1に示す横軸X1:縦軸3Yの欄では、X5・X7、及び7×13等)を記載することで、素数候補表に表示される非素数値は、全て素数の倍数であることが容易に発見でき、素因数分解が可能となる。
【0075】
さらに、除算処理を行った値が素数である場合には、その値を素数格納配列に記録して、その素数格納配列に記録された素数についても次行の各列に描写された処理対象値に対して除算処理を行うので、予め、素数格納配列に記録する素数は最小限とすることができ、記憶領域の有効活用することができる。また、次行から発生する処理対象値についても、新たに格納した素数に基づいて素数判定を実行できるので、素数判定の確率が向上される。
【0076】
また、本実施形態においては、横軸描画処理では、ターゲット値を30で除した余りが、2から30までに出現する素数、及び1に該当するか否かを判断し、該当する場合には、横軸描画ステップ以降の処理を実行し、該当しない場合には、素数候補表を作成することなく最終処理を実行する前処理処理を、予め素数候補表の描画処理に先行させて行うので、不要な処理を省略し、それ以降の演算処理時間を短縮することができる。
【0077】
[第2実施形態]
次いで、本発明の第2実施形態について説明する。本実施形態では、任意の数字であるターゲット値が、素数に該当するか否かを判定するための素数候補表T1を、筒状の素数塔200として構築する知育教材に用いた場合を例に説明する。図9は、第2実施形態に係る素数塔200の外観を示す斜視図であり、図10は、第2実施形態に係る素数塔200を形成する単位ブロック201,202,203、繰上用ブロック204の形状を示す斜視図である。なお、本実施形態では、プラスの値とマイナスの値と表記されたブロックを用いており、全てのブロックを組み合わせることで、プラス部分が約10段、マイナス部分が約3段の素数候補塔200が構成された場合を例に説明する。また、本実施形態において、上述した第1実施形態と同一の構成要素には同一の符号を付し、その機能等は特に言及しない限り同一であり、その説明は省略する。
【0078】
本実施形態に係る素数塔200は、表面に数字や図形、記号等が表現される多数の単位ブロックを組み合わせることで、図9に示すように、環状に配列されて素数塔を構成する各層を形成するようになっている。なお、上述した実施形態において素数候補表T1は、下へ向かって数字が大きくなり、上方へ向かってマイナスとなり、その値が小さく(絶対値は大きく)なるように表記したが、本実施形態における素数塔200は、ブロックが積み上げられる方向である上方へ向かって数字が大きくなり、下方がマイナスとなるようになっている。この数値が大きくなる方向とブロックの積み上げ方向とは、自由に設計することができ、ブロックが積み上げられる方向に、数値が小さくなるように変更してもよい。
【0079】
この素数塔200を構成する単位ブロックは、例えば、木材や、プラスチック等で形成されており、11個の単位ブロック201,202,203と、繰上用ブロック204とで各層を構成させるようになっている。ここで、素数塔を構成する各層のうち、基準となる基準層に属する単位ブロック201,202,203には、2から30までに出現する素数、及び1が、それぞれ出現順に素数格納配列として表現されている。具体的に、基準層における単位ブロック201,202,203の配列は、素数候補表に対応しており、素数配列X1(1),X2(2),X3(3),X4(5),X5(7),X6(11),X7(13),X8(17),X9(19),X10(23)及びX11(29)が数値の小さな順に配置されている。繰上用ブロック204は、各層の繰上げ位置を示すためのブロックであり、素数塔200を構成する各層に含まれる単位ブロックのうち最大又は最小の値が表現されるようになっている。本実施形態では、繰上用ブロック204については、「30」を周期とする素数塔の繰り上がりについての理解を助けるために、素数格納配列には格納されない、0に対応する列(0,30,60…)を表現する数値とその層を示す「nY」という文字が表記されている。
【0080】
そして、この基準層の上層又は下層に属する単位ブロック201,202,203及び繰上用ブロック204には、素数格納配列に格納された各値、又は0に対して30又は−30を加算した値が、素数候補表の次行の各列として表現されるようになっている。
【0081】
次いで、各単位ブロック201〜204の各形状について説明する。先ず、本実施形態において、基準層に属する単位ブロック201,202は、図10(a)、及び(b)に示すように、水平断面が略扇状の形状となっている。ここで、素数配列X2(2),X3(3),及びX4(5)を表す単位ブロック202の外側円弧辺の幅L2は、その他の素数(X1(1),X5(7),X6(11),X7(13),X8(17),X9(19),及びX10(23))を表すブロック201に係る外側円弧辺の幅L1と比較して、1/2の長さとなっている。
【0082】
これは、数値2、3及び5は素数であるものの、数値2、3及び5に30の倍数の数値が足された数値は、数値2、3又は5で割り切れる数値であるため、基準層に配列される素数ブロックX2(2),X3(3),X4(5)の列に対応する単位ブロック202には素数が出現しないことを利用者に視認させるためである。
【0083】
また、X11の列に配置される単位ブロック203は、図10(c)に示すように、単位ブロック201の幅と同一な長さの幅L3を有するブロックであって、底面及び上面の略中央部分からX1の列のブロックと接する側面の中央部分に向けて切欠された五角柱の形状をなしている。このような形状によって、X11の列のブロックをX1の列のブロックの横に配列させた場合、X11のブロックと、X1のブロックとの間に上部切欠空間203aと、下部切欠空間203bとが生じるようになっている。
【0084】
そして、本実施形態では、この下層部分の上部切欠空間203aと上層部分の下部切欠空間203bに繰上用ブロック204を配置させるようになっている。
【0085】
繰上用ブロック204は、図10(d)に示すように略三角柱の形状となっており、図10(e)に示すように、単位ブロック203,203を2層重ね合わせた際に生じる、下部切欠空間203bと上部切欠空間203aとを合わせた空間と合致するようになっている。
【0086】
そして、本実施形態では、図10(f)に示すように、素数配列X1(1)が記載されたブロック201から数値の小さい順に配置していき、単位ブロック203を配置させて層を形成させた後に、その単位ブロックの上部切欠空間203aに嵌め込む構成となっている。これにより、繰上用ブロック204の上部が環状に構成された層から突出するので、ユーザーが、次の層にブロックを配置させる際、どの位置から次のブロックを並び始めるかを容易に認識することができる。
【0087】
次いで、各単位ブロックの表面に表現される数字や図形、記号等の表示態様について説明する。図11(a)〜(d)は、単位ブロックの表示態様を示す正面図である。
【0088】
本実施形態では、基準層に配列される繰上用ブロック204は、図11(e)に示すように、「0」が表記されている。すなわち、本実施形態では、30」を周期とする素数塔の繰り上がりについての理解を助けるために、繰上用ブロック204には、「素数格納配列には格納されない、0に対応する列(0,30,60…)を表現する数値とその層を示す「nY」という文字が表記されている。そして、この繰上用ブロック204の上層又は下層に属する単位ブロックでは、「0」に30又は−30を加算した値が、素数候補表の次行の各列として表現されるとともに、「nY」という文字は、そのn行目を示すこととなる。なお、本実施形態において、繰上用ブロック204の表面は、金色で表示している。
【0089】
一方、基準層に配列される素数格納配列X1(1)〜X11(29)の単位ブロック201,202,203の表面201a,202a,203aには、図11(a)及び(b)に示すように、数値が太文字で表記されるとともに、素数配列Xnが併記されるようになっている。
【0090】
そして、本実施形態では、基準層の上層又は下層に配置される単位ブロック201,202,203においては、素数格納配列に格納された各値に対して30又は−30を加算した値が、素数候補表の次行の各列として表現されるとともに、その各列に応じてその表記を変えている。
【0091】
詳述すると、本実施形態では、先ず、素数配列X2(2),X3(3),X4(5)の列の上下に位置する単位ブロックと、その他の配列番号X1(1),X5(7),X6(11),X7(13),X8(17),X9(19),X10(23)及びX11(29)の列に配列されるブロックの表示形式を区別して表示させるようになっている。
【0092】
素数格納配列の2、3及び5に対応する列に属する単位ブロック202には、その属する列の特徴を示すスキップマークが表現される。具体的には、素数配列X2(2),X3(3),X4(5)の列に配置されるブロックは、図9に示すように、例えば、ブロックの表面を黒やカラーで表示させる構成とし、素数配列X2(2),X3(3),X4(5)の列ごとに表示色を変化させている。さらに、素数配列X2(2),X3(3),X4(5)の上層又は下層に属する単位ブロックには、その数値のみを表記させる構成となっている。
【0093】
なお、本実施形態では、スキップマークとして、単位ブロック202の色を変更させたが、本発明は、これに限定するものではなく、例えば、2、3及び5に対応する列に属する単位ブロック202には、素数が含まれないことを即時に認識させることができればよく、例えば、単位ブロックの表面に「非素数」という文字を表記させるなど、種々の変更を行うことができる。
【0094】
一方、その他の素数格納配列X1(1),X5(7),X6(11),X7(13),X8(17),X9(19),X10(23)及びX11(29)に対応する列に属する単位ブロック201、及び203では、その数値が素数であるか、非素数であるかを表示させている。すなわち、各ブロック201,203に表現された値を処理対象値とし、素数格納配列に含まれるそれぞれの素数で、各処理対象値を除して割り切れた場合には、処理対象値に対応するブロックに、素数でないことを示す除外フラグを表示させている。
【0095】
具体的には、図11(c)に示すように、例えば、数値77については、7と11とを乗した値であるため、非素数であるとして、数値「77」を大文字で表すとともに、式「=7×11」と、数値7及び11の配列番号Xnを乗する式「=X5×X6」とを併記させる。
【0096】
また、例えば数値が素数の累乗数である場合には、図11(d)に示すように、非素数である数値「49」を大文字で表し、式「=72」と、数値7の配列番号Xnを乗する式「=(X5)2」とを併記させる。
【0097】
一方、各ブロックの前に配列されるべきブロックのうち除外フラグが表現されていないブロックの値で、各処理対象値を除して割り切れない場合には、当該処理対象値が、該処理対象値に対応するブロックに、素数であるとして素数フラグが表現されている。
【0098】
本実施形態では、配列番号X1(1),X5(7),X6(11),X7(13),X8(17),X9(19),X10(23)及びX11(29)の各列に配置されるブロックの中で、素数である場合には、ブロックの表面部分を白地とし、太文字の数値と素数配列Xnとが併記され、表記される各文字を中抜きして、列毎に中抜きの色を変化させるようにしている。
【0099】
(作用・効果)
このような本実施形態によれば、任意の数字であるターゲット値が、素数に該当するか否かを判定するための素数候補表を、単位ブロック201,202,203、及び繰上用ブロック204とから構成して筒状の素数塔として構築し、次行に含まれる各列について、前記素数格納配列の2、3及び5に対応する列に属する単位ブロックには、その属する列の特徴を示すスキップマークが表現されているので、素数格納配列の2、3及び5に対応する列には、素数が含まれていないことが即時に認識することができ、素数判定に関する情報を簡易かつ整理された情報として確認することができる。これにより、例えば、遊びながら素数の出現場所が予想可能となり、素数の性質がより掴み易くなるとともに、非素数の出現(若しくは判別)が可能となる。また、このように素数の性質を理解することを通じて、例えば、分数計算における約分及び通分計算の理解度の向上も期待できる。
【0100】
また、本実施形態では、単位ブロック201,202,203及び繰上用ブロック204には、各ブロックに表現された値を処理対象値とし、前記素数格納配列に含まれるそれぞれの素数で、各処理対象値を除して割り切れた場合には、該処理対象値に対応するブロックに、素数でないことを示す除外フラグが表現され、各ブロックの前に配列されるべきブロックのうち前記除外フラグが表現されていないブロックの値で、前記各処理対象値を除して割り切れない場合には、当該処理対象値が、該処理対象値に対応するブロックに、素数であるとして素数フラグが表現されているので、筒状の素数塔として構築された各ブロックは、素数であるか否かを各ブロックに表現させているので、素数判定に関する情報を簡易かつ整理された情報として確認することができる。
【0101】
[変更例]
(変更例1)
なお、上述した各実施形態の説明は、本発明の一例である。このため、本発明は上述した実施形態に限定されることなく、本発明に係る技術的思想を逸脱しない範囲であれば、設計等に応じて種々の変更が可能であることはもちろんである。図12(a)は、本変更例に係る知育教材の外観を示す斜視図であり、(b)は、本変更例に係る素数候補塔210を上部より示す上面図である。
【0102】
例えば、図12(a)及び(b)に示すように、12個の単位ブロック211,212を1層として12面柱の形状をした素数候補塔210としてもよい。
【0103】
この素数候補塔210は、配列番号X1(1)からX11(29)までの数値等を示す11個のブロック211と、各層の繰上げを示す繰上用ブロック212とから1層を形成させ、複数の層を積み上げることで円筒状の素数候補塔210が構成される。
【0104】
ここで、配列番号X1(1)からX11(29)までの11個の単位ブロック211は、すべて同一形状をなしており、その表面211aには数値が記載され、その数値が素数である場合には、数値に対応する配列番号Xnが表記されている。
【0105】
また、本変更例では、素数である、配列番号X2(2),X3(3),X5(5)のブロックの表面は、黒に塗りつぶされ、白文字で数値と、その通知に対応する配列番号Xnが表示されている。また、この配列番号X2(2),X3(3),X5(5)の列の上下に配列されブロックの表面には、白地に黒文字で数値のみや、「非素数」という除外フラグが表現されるようになっている。
【0106】
さらに、配列番号X1(1),X5(7),X6(11),X7(13),X8(17),X9(19),X10(23)及びX11(29)の列の上下に配置されたブロックであって、素数を表すブロックは、黒に塗りつぶされ、白文字で数値と、素数フラグである、その通知に対応する配列番号Xnが表示されている。
【0107】
一方、配列番号X1(1),X5(7),X6(11),X7(13),X8(17),X9(19),X10(23)及びX11(29)の上下の列に配置されたブロックであって、非素数を表すブロックの表面は、除外フラグをカラー表示するようになっている。特に本変更例では、非素数となる数値であって、異なる素数が因数となる数値を表すブロックと、同一の素数が因数となる数値を表すブロックとは、異なる色で表示させるようになっている。
【0108】
具体的には、例えば、異なる素数である因数7と因数11とを乗した値である数値77は、ブロックの表面を赤色にし、非素数である数値「77」を大文字で表すとともに、式「=7×11」と、数値7及び11の配列番号Xnを乗する式「=X5×X6」とを併記させる。
【0109】
一方、例えば、同一の素数である因数7と因数7とを乗した値である数値49は、ブロックの表面を青色にし、非素数である数値「49」を大文字で表し、式「=72」と、数値7の配列番号Xnを乗する式「=(X5)2」とを併記させる。
【0110】
また、本変更例では、繰上用ブロック212は、垂直断面が平行四辺形の平行六面体の形状をなし、現在の層に属する隣接ブロック及び上層又は下層に属する隣接ブロックの両方に対し両側面で接触するようになっている。例えば、図12(a)に示すように、「Y=0」が記載された繰上用ブロック212は、一方の側面は、「Y=0」の層に配置される配列番号X−9のブロックの側面と接し、他方の側面は、「30:Y」の層に配置される配列番号X1のブロックの側面と接するようになっている。これにより、単位ブロック211を組み合わせて、1層目を形成させた際には、繰上用ブロック212がリング状に構成された積み木から突出する構成となっている。これにより、ユーザーがどの位置から次のブロックを並び始めるかを容易に認識することができる。
【0111】
また、繰上用ブロック212の表面には、30毎の数値と、各層を示すnYが表記されるとともに、その数値を素因数で表した式(例えば、数値30では、「=2×3×5」及び「=X2×X3×X4」)を表記される。
【0112】
(変更例2)
第2実施形態では、数値1及び2〜30の素数が記載されたブロックを1層とし、これらの数値に30又は、−30を加算した数値が記載されたブロックを上下の列に配置させる構成としたが、本変更例では、すべての数値をブロックに表記し、そのブロックを組み合わせる構成としてもよい。図13は、本変更例に係る知育教材220のブロックの一部分を示す斜視図である。なお、本変更例においても、上述した実施形態及び変更例と同一の構成要素には同一の符号を付し、その機能等は特に言及しない限り同一であり、その説明は省略する。
【0113】
本変更例において、素数候補塔220は、1〜30までの数値を単位ブロックに記載し、30個のブロックで一層を構成させている。この際、非素数である、4,6,8,9,10,12,14,15,16,18,20,21,22,24,25,26,27,28,及び30が記載されたブロック221の幅L4は、素数である2,3,及び5が記載されたブロック202の幅の1/2(その他の素数である1,7,13,17,19,23,及び29が記載されたブロック201の幅の1/4)の長さとしている。
【0114】
また、数値0,30,60等の各層の開始については、繰上用ブロック222に表記され、1が記載されたブロック201に設けられた下部切片空間223と合致するような、三角柱の形状をなしている。
【0115】
また、本変更例では、単位ブロックの底面、上面、及び両側面に他のブロックと嵌合する凹部及び凸部(図示せず)が設けられており、ブロックの組立てを固定するようになっている。
【0116】
なお、本発明は、素数候補表が表記されればよく、積み木状の知育教材の他、ブロック玩具や、学習用教材として用いてもよい。また、これらは、種々の大きさとすることができ、例えば、組立てたブロック群が手のひらサイズの大きさとすることもできる。また、販売先としては、幼児教育専門所、デパート等の知育玩具コーナー、本屋、文具店、小学生向け学習塾など様々な店舗で販売することができる。
【符号の説明】
【0117】
L1,L2、L3,L4…ブロックの幅
X…横軸
X1〜X10…配列番号
Xn…最後尾の配列番号
Y…縦軸
1…コンピュータ
2…印刷装置
3…モニタ
4…操作デバイス
4a…マウス
4b…キーボード
6…記録媒体
7…ユーザー
81…フレキシブルディスク
82…CD−ROM
83…カセットテープ
84…RAMカード
101…入力インターフェイス
102…出力インターフェイス
103…操作信号取得部
110…演算処理部
111…横軸描画部
112…次行描画部
113…ピックアップ判断部
114…処理対象値演算部
115…除外フラグ描画部
115a…最終描画処理部
116…終了判定部
117…画像情報生成部
120…記憶部
121…素数格納配列部
122…素数候補表記憶部
200,210,220…素数塔
201,202,211,221…単位ブロック
201a,202a,203a,204a,211a…単位ブロックの表面
203a…上部切欠空間
203b…下部切欠空間
204,212,222…繰上用ブロック
223…下部切片空間
【特許請求の範囲】
【請求項1】
任意の数字であるターゲット値が、素数に該当するか否かを判定するための素数候補表を作成するプログラムであって、コンピュータに、
2から30までに出現する素数、及び1を、それぞれ出現順に素数格納配列に格納して記憶領域に保持するとともに、該素数格納配列に含まれる各値を、前記素数候補表の横軸の各列として描画する横軸描画ステップと、
前記素数格納配列に格納された各値に対して30を加算し、加算した値を前記素数候補表の次行の各列として追加する次行描画ステップと、
前記次行に含まれる各列について、前記素数格納配列の2、3及び5に対応する列をスキップしながら、各列の値を処理対象値として順次ピックアップし、各処理対象値を、前記素数格納配列に含まれるそれぞれの素数で除し、割り切れた場合には、該処理対象値に対応する列に、素数でないことを示す除外フラグを描画し、割り切れない場合には、当該処理対象値を、素数であるとして前記素数格納配列に格納し、前記記憶領域に保持させる除外フラグ描画ステップと、
前記除外フラグ描画ステップの対象となっている前記処理対象値が、前記ターゲット値よりも大きいか否かを判断し、該処理対象値が該ターゲット値以下である間は、前記次行描画ステップ及び除外フラグ描画ステップを繰り返し、該処理対象値が該ターゲット値よりも大きくなった時点で、前記素数候補表を完成させる最終描画処理を実行する終了判定ステップと
を含む処理を実行させることを特徴とする素数候補表の作成プログラム。
【請求項2】
前記横軸描画ステップにおいて、前記ターゲット値を30で除した余りが、前記1、及び2から30までに出現する素数に該当するか否かを判断し、該当する場合には、前記横軸描画ステップ以降の処理を実行し、該当しない場合には、前記素数候補表を作成することなく前記最終処理を実行する、前処理ステップをさらに含むことを特徴とする請求項1に記載の素数候補表の作成プログラム。
【請求項3】
任意の数字であるターゲット値が、素数に該当するか否かを判定するための素数候補表を、筒状の素数塔として構築する知育教材であって、
環状に配列されることによって前記素数塔を構成する各層を形成し、表面に数字や図形、記号等が表現される多数の単位ブロックと、
前記素数塔を構成する各層に含まれる単位ブロックのうち最大又は最小の値が表現され、現在の層に属する隣接ブロック及び上層又は下層に属する隣接ブロックの両方に対し両側面で接触する繰上用ブロックと
から構成され、
前記素数塔を構成する各層のうち、基準となる基準層に属する単位ブロック及び繰上用ブロックには、2から30までに出現する素数及び1が、それぞれ出現順に素数格納配列として表現され、
前記基準層の上層又は下層に属する単位ブロック及び繰上用ブロックには、前記素数格納配列に格納された各値に対して30又は−30を加算した値が、前記素数候補表の次行の各列として表現され、
前記次行に含まれる各列について、前記素数格納配列の2、3及び5に対応する列に属する単位ブロックには、その属する列の特徴を示すスキップマークが表現されている
ことを特徴とする素数塔用知育教材。
【請求項4】
前記単位ブロック及び繰上用ブロックには、単位ブロックに表現された値を処理対象値とし、前記素数格納配列に含まれるそれぞれの素数で、各処理対象値を除して割り切れた場合には、該処理対象値に対応するブロックに、素数でないことを示す除外フラグが表現され、
単位ブロックの前に配列されるべきブロックのうち前記除外フラグが表現されていないブロックの値で、前記各処理対象値を除して割り切れない場合には、当該処理対象値が、該処理対象値に対応するブロックに、素数であるとして素数フラグが表現されている
ことを特徴とする請求項3に記載の素数塔用知育教材。
【請求項1】
任意の数字であるターゲット値が、素数に該当するか否かを判定するための素数候補表を作成するプログラムであって、コンピュータに、
2から30までに出現する素数、及び1を、それぞれ出現順に素数格納配列に格納して記憶領域に保持するとともに、該素数格納配列に含まれる各値を、前記素数候補表の横軸の各列として描画する横軸描画ステップと、
前記素数格納配列に格納された各値に対して30を加算し、加算した値を前記素数候補表の次行の各列として追加する次行描画ステップと、
前記次行に含まれる各列について、前記素数格納配列の2、3及び5に対応する列をスキップしながら、各列の値を処理対象値として順次ピックアップし、各処理対象値を、前記素数格納配列に含まれるそれぞれの素数で除し、割り切れた場合には、該処理対象値に対応する列に、素数でないことを示す除外フラグを描画し、割り切れない場合には、当該処理対象値を、素数であるとして前記素数格納配列に格納し、前記記憶領域に保持させる除外フラグ描画ステップと、
前記除外フラグ描画ステップの対象となっている前記処理対象値が、前記ターゲット値よりも大きいか否かを判断し、該処理対象値が該ターゲット値以下である間は、前記次行描画ステップ及び除外フラグ描画ステップを繰り返し、該処理対象値が該ターゲット値よりも大きくなった時点で、前記素数候補表を完成させる最終描画処理を実行する終了判定ステップと
を含む処理を実行させることを特徴とする素数候補表の作成プログラム。
【請求項2】
前記横軸描画ステップにおいて、前記ターゲット値を30で除した余りが、前記1、及び2から30までに出現する素数に該当するか否かを判断し、該当する場合には、前記横軸描画ステップ以降の処理を実行し、該当しない場合には、前記素数候補表を作成することなく前記最終処理を実行する、前処理ステップをさらに含むことを特徴とする請求項1に記載の素数候補表の作成プログラム。
【請求項3】
任意の数字であるターゲット値が、素数に該当するか否かを判定するための素数候補表を、筒状の素数塔として構築する知育教材であって、
環状に配列されることによって前記素数塔を構成する各層を形成し、表面に数字や図形、記号等が表現される多数の単位ブロックと、
前記素数塔を構成する各層に含まれる単位ブロックのうち最大又は最小の値が表現され、現在の層に属する隣接ブロック及び上層又は下層に属する隣接ブロックの両方に対し両側面で接触する繰上用ブロックと
から構成され、
前記素数塔を構成する各層のうち、基準となる基準層に属する単位ブロック及び繰上用ブロックには、2から30までに出現する素数及び1が、それぞれ出現順に素数格納配列として表現され、
前記基準層の上層又は下層に属する単位ブロック及び繰上用ブロックには、前記素数格納配列に格納された各値に対して30又は−30を加算した値が、前記素数候補表の次行の各列として表現され、
前記次行に含まれる各列について、前記素数格納配列の2、3及び5に対応する列に属する単位ブロックには、その属する列の特徴を示すスキップマークが表現されている
ことを特徴とする素数塔用知育教材。
【請求項4】
前記単位ブロック及び繰上用ブロックには、単位ブロックに表現された値を処理対象値とし、前記素数格納配列に含まれるそれぞれの素数で、各処理対象値を除して割り切れた場合には、該処理対象値に対応するブロックに、素数でないことを示す除外フラグが表現され、
単位ブロックの前に配列されるべきブロックのうち前記除外フラグが表現されていないブロックの値で、前記各処理対象値を除して割り切れない場合には、当該処理対象値が、該処理対象値に対応するブロックに、素数であるとして素数フラグが表現されている
ことを特徴とする請求項3に記載の素数塔用知育教材。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公開番号】特開2011−227493(P2011−227493A)
【公開日】平成23年11月10日(2011.11.10)
【国際特許分類】
【出願番号】特願2011−76544(P2011−76544)
【出願日】平成23年3月30日(2011.3.30)
【出願人】(510087586)
【Fターム(参考)】
【公開日】平成23年11月10日(2011.11.10)
【国際特許分類】
【出願日】平成23年3月30日(2011.3.30)
【出願人】(510087586)
【Fターム(参考)】
[ Back to top ]