JP6044628B2 - Random number generation device, random number generation method, object placement device, and computer program - Google Patents
Random number generation device, random number generation method, object placement device, and computer program Download PDFInfo
- Publication number
- JP6044628B2 JP6044628B2 JP2014500087A JP2014500087A JP6044628B2 JP 6044628 B2 JP6044628 B2 JP 6044628B2 JP 2014500087 A JP2014500087 A JP 2014500087A JP 2014500087 A JP2014500087 A JP 2014500087A JP 6044628 B2 JP6044628 B2 JP 6044628B2
- Authority
- JP
- Japan
- Prior art keywords
- random number
- range
- generated
- sequence
- taken
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 57
- 238000004590 computer program Methods 0.000 title claims description 9
- 230000006870 function Effects 0.000 claims description 215
- 230000008569 process Effects 0.000 claims description 28
- 238000012545 processing Methods 0.000 claims description 17
- 230000008859 change Effects 0.000 description 35
- 238000010586 diagram Methods 0.000 description 11
- 230000010365 information processing Effects 0.000 description 10
- 238000004364 calculation method Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 2
- 238000012804 iterative process Methods 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000007429 general method Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
- H04L9/0656—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
- H04L9/0662—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
- H04L9/0668—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator producing a non-linear pseudorandom sequence
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Nonlinear Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
Description
本発明は、特定の性質を持つ疑似乱数を発生する計算処理の技術分野に関する。 The present invention relates to a technical field of calculation processing for generating pseudo-random numbers having specific properties.
例えばコンピュータ(情報処理装置)を利用した計算処理において、乱数が必要になる場合が多々ある。乱数を装置によって生成する場合、係るコンピュータや専用の演算回路等の装置により、元になるデータ(以下、「オブジェクト」または「オブジェクトデータ」と称する場合がある)を用いて特定の演算を行わせることにより、当該装置は、擬似的な乱数を発生する。本願では、このような装置を「疑似乱数発生装置」と称し、且つ以下の説明において、このような装置が生成する疑似乱数を、単に「乱数」と略称する場合がある。 For example, random numbers are often required in calculation processing using a computer (information processing apparatus). When a random number is generated by a device, a specific operation is performed by using the original data (hereinafter may be referred to as “object” or “object data”) by a device such as a computer or a dedicated arithmetic circuit. As a result, the device generates a pseudo random number. In the present application, such a device is referred to as a “pseudo random number generator”, and in the following description, a pseudo random number generated by such a device may be simply referred to as a “random number”.
そして、係る疑似乱数発生装置には、元になる同一データを用いて生成する場合は同じ数値列を発生する一方で、元になるデータが異なる場合には互いに略関連性を持たない数値列を発生する、という性質を有する疑似乱数発生装置がある。このような疑似乱数発生装置は、各種分野において幅広く使われている。そして、このような性質を有する疑似乱数発生装置として、例として、特許文献1及び特許文献2に記載された技術を挙げることができる。
The pseudo-random number generator generates the same numerical sequence when generated using the same original data, while the numerical sequences that are not substantially related to each other when the original data are different. There are pseudo-random number generators that have the property of being generated. Such pseudo random number generators are widely used in various fields. Examples of the pseudorandom number generator having such properties include the techniques described in
図10は、特許文献1に記載された方法の手順を説明する図である。特許文献1に記載された疑似乱数の発生方法は、既知のオブジェクトデータに基づき疑似乱数(擬似的な乱数列)を発生する方法を開示する。
FIG. 10 is a diagram illustrating the procedure of the method described in
即ち、図10に示した反復処理の手順において、まず、反復ステップ1では、スタート値S0が受け取られ、そのスタート値S0を基に鍵K0が算出される。
That is, in the iterative processing procedure shown in FIG. 10, first, in
反復ステップ2では、係るスタート値S0と、反復ステップ1にて算出された鍵K0に対して、一方向関数fが適用される。この反復ステップ2における一方向関数fの演算結果は、f(S0,K0)で表される。
In the
反復ステップ3では、反復ステップ2にて得られた演算結果f(S0,K0)が3つの値(S1,K1,R1)に分解される。これら3つの値において、S1は当該一方向関数fによる次の演算の初期値として、K1は鍵として扱われる(反復ステップ4)。そして、R1は、図10に示した一連の反復処理によって生成される疑似乱数の第1の部分として扱われる。
In the
反復ステップ5では、反復ステップ4におけるS1及びK1を利用して当該一方向関数fによる演算が施され、該演算の結果であるf(S1,K1)が得られる。そして、反復ステップ6では、反復ステップ2と同様に、演算結果f(S1,K1)が3つの値(S2,K2,R2)に分解される。
In the
即ち、特許文献1に記載された方法では、上述した一連の反復処理が所定の回数繰り返し行われ、その後、個々の反復処理にて求められたR1,R2,・・・などの疑似乱数の部分が合成されることによって、最終的に疑似乱数が得られる。このように、特許文献1に記載された方法によれば、既知のオブジェクトデータを用いて、擬似的に乱数列を発生することができる。
That is, in the method described in
また、特許文献2には、レジスタと論理回路とが組み合わせられた疑似乱数発生回路により、擬似的な乱数列として、ランダム性に優れる大量の2値パターンを高速に生成する技術が開示されている。
ところで、例えば特許文献1に開示された方法において、疑似乱数発生装置が生成する乱数の値の範囲(以下、「乱数列が採り得る値域」、或いは「乱数列の値域」と略称することがある)が変更された場合を考える。この場合、その変更後に生成される乱数列に含まれる乱数の値のうち、その変更前に生成される乱数の範囲にも含まれる乱数の値は、係る変更前に当該疑似乱数発生装置が生成する乱数の順番を維持するとは限られず、且つ、係る変更前の乱数列に含まれる乱数の値を採るとも限られない。
By the way, in the method disclosed in
そこで、本発明は、発生する乱数列が採り得る値域が変更されたとしても、その変更後の乱数列に含まれる乱数の値のうち、当該変更前に生成する乱数列が採り得る値域に含まれる乱数の値が、当該変更前に生成する乱数の順番を維持すると共に、当該変更前の乱数列に含まれる乱数の値を採る乱数発生装置、乱数発生方法、オブジェクト配置装置、並びにコンピュータ・プログラムを提供することを主たる目的とする。 Therefore, even if the range that can be taken by the generated random number sequence is changed, the present invention is included in the range that can be taken by the random number sequence that is generated before the change among the random number values that are included in the changed random number sequence. Random number generator, random number generation method, object placement apparatus, and computer program for maintaining the order of random numbers generated before the change and taking the random number value included in the random number sequence before the change The main purpose is to provide
上記の目的を達成すべく、本発明に係る乱数発生装置は、以下の構成を備えることを特徴とする。 In order to achieve the above object, a random number generation device according to the present invention has the following configuration.
即ち、本発明に係る乱数発生装置は、乱数の元となる同一の情報に基づいて同一の乱数列を生成すると共に、生成する乱数列が採り得る値域が互いに異なる複数種類の乱数列を発生可能であり、注目する乱数列が採り得る値域に含まれる乱数が、その値域とは異なる他の乱数列が採り得る値域に含まれる関係にある場合に、前記他の乱数列が採り得る値域に含まれる関係にある前記注目する乱数列の乱数と、前記注目する乱数列が採り得る値域に含まれる前記他の乱数列の乱数とは、同一の値であり、且つ自装置が発生すべき乱数列に同一の順番で現れることを特徴とする。 In other words, the random number generation device according to the present invention can generate the same random number sequence based on the same information that is the source of the random number, and can generate a plurality of types of random number sequences having different value ranges that the generated random number sequence can take. The random number included in the range that can be taken by the random number sequence of interest is included in the range that can be taken by the other random number sequence when there is a relationship that is included in the range that can be taken by another random number sequence different from that range. And the random number of the other random number sequence included in a range that can be taken by the focused random number sequence have the same value, and the random number sequence to be generated by the device itself Appearing in the same order.
また、本発明の他の見地としてのオブジェクト配置装置は、
上記構成を有する乱数発生装置と、
オブジェクトの配置先を、そのオブジェクトに固有な情報を基に前記乱数発生装置によって生成される乱数を用いて、前記複数種類の乱数列が採り得る値域を表す空間の部分空間として少なくとも何れかの配置先が割り付けられている対応情報を参照することによって決定する配置手段と、を備えることを特徴とする。An object placement device as another aspect of the present invention is:
A random number generator having the above-described configuration;
Arrangement of an object as a partial space of a space representing a range of values that can be taken by the plurality of types of random number sequences using random numbers generated by the random number generator based on information unique to the object And arrangement means for determining by referring to the correspondence information to which the destination is assigned.
また、本発明の更なる他の見地としての乱数発生方法は、
乱数の元となる同一の情報に基づいて同一の乱数列を生成すると共に、生成する乱数列が採り得る値域が互いに異なる複数種類の乱数列を発生可能な乱数発生手段を用いて、注目する乱数列が採り得る値域に含まれる乱数が、その値域とは異なる他の乱数列が採り得る値域に含まれる関係にある場合には、前記他の乱数列が採り得る値域に含まれる関係にある前記注目する乱数列の乱数と、前記注目する乱数列が採り得る値域に含まれる前記他の乱数列の乱数とが、同一の値であり、且つ発生すべき乱数列に同一の順番で出現させることを特徴とする。Moreover, the random number generation method as still another aspect of the present invention is:
Random number of interest using random number generation means that generates the same random number sequence based on the same information that is the source of the random number and that can generate multiple types of random number sequences that can be taken from different ranges. When the random number included in the range that can be taken by the sequence is in a relationship that is included in the range that can be taken by another random number sequence different from the range, the relationship that is included in the range that can be taken by the other random number sequence The random number of the random number sequence of interest and the random number of the other random number sequence included in the range that can be taken by the focused random number sequence have the same value and appear in the same order in the random number sequence to be generated It is characterized by.
尚、同目的は、上記構成を有する乱数発生装置または対応する方法を、コンピュータによって実現するコンピュータ・プログラム、及びそのコンピュータ・プログラムが格納されている、コンピュータ読み取り可能な記憶媒体によっても達成される。 This object is also achieved by a computer program for realizing the random number generation device having the above-described configuration or a corresponding method by a computer, and a computer-readable storage medium storing the computer program.
本発明によれば、発生する乱数列が採り得る値域が変更されたとしても、その変更後の乱数列に含まれる乱数の値のうち、当該変更前に生成する乱数列が採り得る値域に含まれる乱数の値が、当該変更前に生成する乱数の順番を維持すると共に、当該変更前の乱数列に含まれる乱数の値を採る乱数発生装置等の提供が実現する。 According to the present invention, even if the range of values that can be taken by the generated random number sequence is changed, among the random number values included in the changed random number sequence, the range of values that can be taken by the random number sequence generated before the change is included. The random number value to be maintained maintains the order of the random numbers generated before the change, and the provision of a random number generator or the like that takes the random number value included in the random number sequence before the change is realized.
次に、本発明を模範的に実施する形態及びその実施例について、図面を参照して詳細に説明する。 Next, exemplary embodiments of the present invention and examples thereof will be described in detail with reference to the drawings.
<第1の実施形態>
図1は、本発明の模範的な第1の実施形態に係る乱数発生装置(疑似乱数発生装置)の構成を示すブロック図であり、以下に説明する実施形態およびその実施例に共通する概念を表す。<First Embodiment>
FIG. 1 is a block diagram showing the configuration of a random number generation device (pseudorandom number generation device) according to a first exemplary embodiment of the present invention. The concept common to the embodiments and examples described below is shown in FIG. Represent.
図1において、乱数発生装置10は、乱数発生機能12を有する。この乱数発生機能12は、外部より与えられるシード情報(初期値)14に基づいて、以下に説明する如く乱数(疑似乱数)を生成し、生成した乱数16を出力する機能を有する。乱数の範囲情報15は、乱数発生機能12が生成する乱数列が採り得る値域(以下、「乱数列の値域」と略称する)を、乱数発生装置10の外部から乱数発生装置10(乱数発生機能12)に対して指定する情報である。この乱数の範囲情報15は、乱数発生装置10を利用するユーザが適当なUI(ユーザ・インタフェース)を用いて、或いは外部装置が通信回線(不図示)を介して、乱数発生装置10に設定してもよい。
In FIG. 1, the random
ここで、乱数の範囲情報(乱数列の値域を表す情報)15は、例えば、特定の数値範囲を表すことが可能な情報であれば、本実施形態において、その情報の実体は限定されない。そして、例えば、図6を参照して後述するオブジェクト配置装置500の場合、乱数の範囲情報15は、オブジェクトの配置先が記憶可能な残容量(空き容量)が少なくなった場合や、既存の配置先の削除、新たな配置先の追加等のシステム仕様変更が発生した場合等に、乱数発生装置10に供給される。
Here, if the random number range information (information indicating the range of the random number sequence) 15 is information that can represent a specific numerical range, for example, the entity of the information is not limited in this embodiment. For example, in the case of an
そして、本実施形態において、係る乱数発生装置10(乱数発生機能12)は、次の機能を実行する。 In this embodiment, the random number generation device 10 (random number generation function 12) performs the following function.
乱数発生機能12は、乱数(即ち、疑似乱数)の元となる同一の情報がシード(初期値)として与えられた場合に、同一の乱数列を生成することができる。また、乱数発生機能12は、乱数の範囲情報15に基づいて、生成する乱数列の値域が互いに異なる複数種類の乱数列を発生可能である。
The random
尚、本実施形態において個々の乱数列を算出する手順自体には、現在では一般的な手法を採用することができるので、本実施形態における詳細な説明は省略する。 It should be noted that a general method can be employed for the procedure itself for calculating individual random number sequences in the present embodiment, and a detailed description thereof will be omitted.
乱数発生機能12は、注目する乱数列の値域に含まれる乱数Aが、その値域とは異なる他の乱数列の値域に含まれる関係にあるか否かを判断することができる。
The random
そして、乱数発生機能12は、上記判断よって当該関係が成立すると判断した場合、当該他の乱数列の値域に含まれる関係にある乱数A(当該注目する乱数列の乱数)と、当該注目する乱数列の値域に含まれる当該他の乱数列の乱数Bとが、同一の値であり、且つ乱数発生装置10が発生すべき乱数列に同一の順番で出現する乱数列(乱数16)を出力する。
If the random
このような乱数発生装置10によれば、発生すべき乱数列の値域が乱数の範囲情報15に応じて変更された場合であっても、その変更後の乱数列に含まれる乱数の値のうち、当該変更前に生成する乱数列の値域に含まれる乱数の値は、当該変更前に生成する乱数の順番を維持すると共に、当該変更前の乱数列に含まれる乱数の値である。
According to such a random
尚、本実施形態において、乱数列には、数値の列とは限定されず、例えば、文字、識別子、及びビット列、座標等がなす様々な種類の列を採用可能である(以下の実施形態においても同様である)。 In the present embodiment, the random number sequence is not limited to a numeric value sequence, and for example, various types of sequences made up of characters, identifiers, bit sequences, coordinates, etc. can be adopted (in the following embodiments) Is the same).
<第2の実施形態>
次に、上述した第1の実施形態に係る乱数発生装置を基本とする第2の実施形態について説明する。以下の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第1の実施形態と同様な構成についての重複する説明は省略する。<Second Embodiment>
Next, a second embodiment based on the random number generation device according to the first embodiment described above will be described. In the following description, characteristic portions according to the present embodiment will be mainly described, and a duplicate description of the same configuration as that of the first embodiment will be omitted.
図2は、本発明の模範的な第2の実施形態における乱数発生装置の構成を示すブロック図である。 FIG. 2 is a block diagram showing a configuration of a random number generation device according to the second exemplary embodiment of the present invention.
乱数発生装置100は、シード提供機能101と、複数のサブ乱数発生機能102と、乱数選択機能103とを有する。乱数発生装置100は、入力されたシード情報104aに基づいて、乱数106を発生する装置である。この乱数106の値は、乱数発生装置100が発生する乱数列の値域がシード情報104aに応じて変更された場合であっても、その変更後に生成する乱数列に含まれ、且つ、その変更前に自装置が発生する乱数列の値域にも含まれる乱数の値は、その変更後においても、係る変更前に自装置が発生する各乱数の値の順番を維持した値である。
The random
シード提供機能101は、外部から受け取ったシード情報104aに基づいて、個々のサブ乱数発生機能102に設定するシード(シード情報)104bを生成する。即ち、シード提供機能101は、シード情報104aとしてある値を入手するのに応じて、所定の関係を満足する複数種類のシードからなるシード情報104bを生成する。この所定の関係は、当該個々のサブ乱数発生機能102別に異なるシード情報104bが生成されるように、例えば関数やテーブル等によって定められていてもよい。この場合、シード提供機能101は、シード情報104aに基づいて、係る関数やテーブル等を用いて、当該個々のサブ乱数発生機能102別に異なるシード情報104bを生成する。
The
そして、シード提供機能101は、生成したシード情報104bを、当該個々のサブ乱数発生機能102に設定する。即ち、本実施形態において、シード提供機能101は、入力されたシード情報104aが同じであれば、同一のサブ乱数発生機能102に対しては、同じ内容のシード104bを提供する。
Then, the
サブ乱数発生機能102は、シード提供機能101から受け取ったシード情報104bに基づいて乱数を発生する。サブ乱数発生機能102は、受け取ったシード情報104bが同一であれば、同じ乱数列を生成する。このサブ乱数発生機能102による乱数の生成手順自体には、現在では一般的な技術を採用できるので、本実施形態における詳細な説明は省略する。
The sub-random
但し、本実施形態において、図2に示す個々のサブ乱数発生機能102は、発生する乱数列の値域がそれぞれ異なる。ここで、互いに異なる値域に関する情報は、例えば、外部より設定される乱数の範囲情報105に応じて、乱数選択機能103またはシード提供機能101が生成した結果を、当該個々のサブ乱数発生機能102に対して、乱数選択機能103またはシード提供機能101が設定する構成が想定できる。或いは、乱数の範囲情報105自体は、当該個々のサブ乱数発生機能102に指定すべき値域を含んでいてもよい。
However, in this embodiment, each sub-random
そして、本実施形態に係る複数のサブ乱数発生機能102は、前述したように、発生する乱数列の値域がそれぞれ異なると共に、サブ乱数発生機能B(第1のサブ乱数発生機能102)が発生する乱数列の値域は、そのサブ乱数発生機能Bよりも、発生する乱数列の値域が狭いサブ乱数発生機能A(第2のサブ乱数発生機能102)による乱数列の値域を含む(包含する)。この関係を図3に示す。 As described above, the plurality of sub-random number generation functions 102 according to the present embodiment have different ranges of generated random number sequences, and the sub-random number generation function B (first sub-random number generation function 102) is generated. The range of the random number sequence includes (includes) the range of the random number sequence by the sub-random number generation function A (second sub-random number generation function 102) in which the range of the generated random number sequence is narrower than that of the sub-random number generation function B. This relationship is shown in FIG.
図3は、第2の実施形態における個々のサブ乱数発生機能102が生成する乱数列の値域の関係と、乱数選択機能103が選択する乱数との関係を説明する図である。図3において、サブ乱数発生機能Bに関する値域は、−1から8までの実数である。これに対して、サブ乱数発生機能Aに関する値域は、0から4までの実数である。このような関係がある場合に、乱数選択機能103は、当該2つのサブ乱数発生機能(A及びB)に関する値域が重複する範囲においては、サブ乱数発生機能Aが生成する乱数を選択する。そして、乱数選択機能103は、当該2つのサブ乱数発生機能(A及びB)に関する値域が重複しない範囲においては、サブ乱数発生機能Bが生成する乱数を選択する。
FIG. 3 is a diagram illustrating the relationship between the range of the random number sequence generated by the individual sub-random
ここで、上述した関係を一般化して換言すると、乱数選択機能103は、複数のサブ乱数発生機能102のうち特定のサブ乱数発生機能102によって生成される特定の乱数が、その特定のサブ乱数発生機能102によって生成される乱数列の値域よりも狭い他の乱数列の値域に含まれる関係にあるか否かを判断する。
Here, to generalize the above relationship, in other words, the random
そして乱数選択機能103は、係る判断において当該関係が成立すると判断した場合には、その関係が成立するか否かを、当該狭い値域を有する他の乱数列のうち、当該注目する乱数列の値域の次に広い値域を採り得る他の乱数列を比較対象として順次判断する。その過程において、乱数選択機能103は、当該特定の乱数が含まれ、且つ係る関係が成立する最も値域が狭い乱数列を生成する他のサブ乱数発生機能102を選択する。そして乱数選択機能103は、当該選択した他のサブ乱数発生機能102が生成する乱数列の中から、当該特定の乱数を生成する際に用いる同一の情報を基に生成した他の乱数を、出力すべき乱数106として選択する。
If the random
一方、乱数選択機能103は、係る判断において当該関係が成立せず、当該特定のサブ乱数発生機能102によって生成される特定の乱数が、生成する乱数列の値域が当該特定のサブ乱数選択機能102よりも狭い他のサブ乱数選択機能102によって生成される乱数列の値域に含まれないと判断した場合には、当該特定の乱数を、出力すべき乱数106として選択する。
On the other hand, the random
即ち、本実施形態に係る乱数発生装置100において、乱数選択機能103は、注目する乱数列の値域に含まれる特定の乱数が、その値域よりも狭い他の乱数列の値域に含まれる関係が成立するか否かを判断する。そして、乱数選択機能103は、係る関係が成立する場合には、その関係が成立するか否かを、当該狭い値域の他の乱数列のうち、当該注目する乱数列の値域の次に広い値域を採り得る他の乱数列を比較対象として順次判断する過程において、当該特定の乱数が含まれ、且つ当該関係が成立する最も値域が狭い乱数列の中から、該特定の乱数を生成する際に用いる同一の情報を基に生成した他の乱数を選択する。この動作の一方で、乱数選択機能103は、当該注目する乱数列の値域よりも狭い他の乱数列の値域に当該特定の乱数が含まれない場合には、その特定の乱数を選択する。
That is, in the random
このような処理手順により、乱数選択機能103は、発生すべき乱数列(乱数106)を構成する。
By such processing procedure, the random
ここで、乱数選択機能103は、乱数発生装置100の外部から受け取った乱数の範囲情報(値域)105に基づいて、個々のサブ乱数発生機能102の動作を制御することができる。即ち、乱数選択機能103は、当該複数のサブ乱数発生機能102が発生すべき乱数列の値域を、外部から取得することによって把握することができる。
Here, the random
そして、乱数選択機能103は、係る制御に応じて個々のサブ乱数発生機能102が出力する乱数列の中から、乱数発生装置100の外部に出力すべき乱数106を選択する。この選択動作の過程において、当該個々のサブ乱数発生機能102は、それぞれが乱数列を生成する装置構成であっても、或いは、乱数選択機能103による判断の過程において乱数列の生成が必要と判断された特定のサブ乱数発生機能102だけが乱数列を生成する装置構成であってもよい。
Then, the random
次に、上述した乱数選択機能103の動作を実現する具体例について、図4を参照して詳細に説明する。
Next, a specific example for realizing the operation of the random
図4は、本発明の第2の実施形態に係る乱数選択機能103の動作を表すフローチャートである。
FIG. 4 is a flowchart showing the operation of the random
まず、乱数選択機能103は、複数のサブ乱数発生機能102の中から、特定のサブ乱数発生機能102を選択する(ステップS1)。このとき選択される特定のサブ乱数発生機能102とは、当該複数のサブ乱数発生機能102のうち、当該特定のサブ乱数発生機能102以外の全てのサブ乱数発生機能102が出力する乱数列の値域を含むような乱数列の値域を有するサブ乱数発生機能である。即ち、本実施形態において、複数のサブ乱数発生機能102は、発生する乱数列の値域が互いに異なり、一方のサブ乱数発生機能102に係る値域が、他方のサブ乱数発生機能102の値域を含む関係を有する。このため、本ステップにおいて選択されるサブ乱数発生機能102は、発生する乱数列の値域が最も広いサブ乱数発生機能102である装置構成が想定される。
First, the random
乱数選択機能103は、ステップS1にて選択した当該特定のサブ乱数発生機能102が乱数を発生するように制御(指示)する(ステップS2)。
The random
次に、乱数選択機能103は、当該複数のサブ乱数発生機能102の中から、当該特定のサブ乱数発生機能102よりも、発生する乱数列の値域が狭いサブ乱数発生機能102が存在するか否かを判断する(ステップS3)。乱数選択機能103は、ステップS3における判断を、例えば、上記の如く外部から受け取った乱数の範囲情報(値域)105に基づいて行うことができる。
Next, the random
乱数選択機能103は、ステップS3における判断の結果、発生する乱数列の値域が狭いサブ乱数発生機能102が存在すると判断した場合(ステップS3にてYES)、処理をステップS4に進める。
If the random
乱数選択機能103は、ステップS3にて検出したサブ乱数発生機能102のうち、発生する乱数列の値域が最も広いサブ乱数発生機能102を検出する。そして乱数選択機能103は、検出したサブ乱数発生機能102が発生する乱数列の値域に、ステップS2にて生成された乱数(注目する乱数」と称する場合がある)が含まれるか否かを判断する(ステップS4)。
The random
乱数選択機能103は、ステップS4における判断の結果、当該注目する乱数が、ステップS4にて検出したサブ乱数発生機能102が発生する乱数列の値域に含まれると判断した場合(ステップS4にてYES)、処理をステップS5に進める。
When the random
乱数選択機能103は、ステップS4にて検出したサブ乱数発生機能102を用いて、新たに乱数を生成し、生成した乱数を新たに注目する乱数として、処理をステップS3に戻す(ステップS5)。
The random
一方、乱数選択機能103は、ステップS3における判断の結果、現在注目する乱数を生成したサブ乱数発生機能102よりも値域が狭いサブ乱数発生機能102は存在しないと判断した場合(ステップS3にてNO)、或いは、当該注目する乱数が、ステップS4にて検出したサブ乱数発生機能102の発生する乱数列の値域に含まれないと判断した場合(ステップS4にてNO)、処理をステップS6に進める。
On the other hand, if the random
乱数選択機能103は、本ステップの実行に先だって最後に生成した乱数(即ち、現在注目する乱数)を、乱数発生装置100が出力すべき乱数106として選択(決定)する(ステップS6)。
The random
即ち、乱数選択機能103は、ステップS2にて最初に乱数(注目する乱数)を生成した後、上述したステップS3からステップS5までの処理を繰り返す。これにより、乱数選択機能103は、発生する乱数列の値域がより狭いサブ乱数発生機能102を特定すると共に、特定できた場合は当該特定したサブ乱数発生機能102によって発生した乱数を新たな注目する乱数として選択する処理を繰り返す。そして、係る繰り返しの過程において、乱数選択機能103は、これ以上狭い値域のサブ乱数発生機能102が存在しないと判断した場合には、当該狭い値域のサブ乱数発生機能102によって生成した乱数を、出力すべき乱数106として選択する訳である。
That is, the random
ここで、上述した一連の処理を一般化して説明する。即ち、本実施形態において、当該複数のサブ乱数発生機能102である第1及び第2の乱数発生機能は、生成する乱数列の値域が互いに異なると共に、該第1の乱数発生機能が生成する乱数列の値域が、該第2の乱数発生機能が生成する乱数列の値域を含む関係を有する。 Here, the series of processes described above will be generalized and described. That is, in the present embodiment, the first and second random number generation functions that are the plurality of sub-random number generation functions 102 are different from each other in the range of the random number sequence to be generated, and the random numbers generated by the first random number generation function The value range of the sequence has a relationship including the value range of the random number sequence generated by the second random number generation function.
そして、乱数選択機能103は、当該第1の乱数発生機能によって生成された第1の乱数が、当該第2の乱数発生機能によって生成される第2の乱数列の値域に含まれるか否かを判断する第1の処理を実行可能である。また、乱数選択機能103は、係る第1の処理にて含まれると判断した場合に、当該第2の乱数発生機能により生成された第2の乱数を選択する第2の処理を実行可能である。そして、乱数選択機能103は、係る第2の処理にて第2の乱数を選択する度に、その第2の乱数を新たな第1の乱数として、当該第1の処理と第2の処理とを繰り返し行う。係る繰り返しの過程において、乱数選択機能103は、当該第1の乱数発生機能によって生成された第1の乱数が、当該第2の乱数発生機能によって生成される第2の乱数列の値域に含まれないと判断した場合に、当該第1の乱数発生機能により生成された第1の乱数を、出力すべき乱数106として選択する。
Then, the random
上述した本実施形態に係る乱数発生装置100によれば、発生する乱数列の値域が変更されたとしても、その変更後の乱数列に含まれる乱数の値のうち、当該変更前に生成する乱数列の値域に含まれる乱数の値が、当該変更前に生成する乱数の順番を維持すると共に、当該変更前の乱数列に含まれる乱数の値を厳密且つ迅速に決定することができる。
According to the random
尚、サブ乱数発生機能102が略一様な乱数の値を発生する場合、乱数発生装置100が発生する乱数の値は、略一様になる。ここで、乱数の値が略一様であるとは、係る乱数発生装置100が発生する乱数列の値域において、その乱数列をなす個々の乱数の値の分布状態が略均一な状態を表す(以下の説明においても同様である)。このことを換言すると、当該値域内に分布する個々の乱数の密度が略一様である、と捉えることもできる。
When the sub-random
尚、上述した本実施形態では、サブ乱数発生機能102が発生する情報が数(数値の列)である装置構成の場合について説明した。但し、本発明は、係る装置構成には限定されず、前述したように、本発明は、例えば、文字、識別子、及びビット列、座標等がなす様々な種類の列を採用可能であり、この場合、乱数発生装置100が発生する情報も数には限定されない。
In the above-described embodiment, a case has been described in which the apparatus configuration is such that the information generated by the sub-random
尚、サブ乱数発生装置102が発生する情報は単数ではなく複数の場合も考えられ、その場合、乱数発生装置100が発生する情報も複数である。
Note that the information generated by the
[実施例]
次に、上述した乱数発生装置10及び100(図1,図2)に示した各ブロックの機能を、情報処理装置(コンピュータ)によって実現した場合の構成及び動作の具体例を、図5を参照して説明する。[Example]
Next, see FIG. 5 for a specific example of the configuration and operation when the functions of the blocks shown in the random
図5は、本発明の各実施形態に係る乱数発生装置を実現可能な情報処理装置1000のハードウエア構成(ハードウェア資源)の一例を示す図である。
FIG. 5 is a diagram illustrating an example of a hardware configuration (hardware resource) of the
図5に示すハードウエア構成は、CPU(Central Processing Unit)401と、ROM(Read Only Memory)402と、RAM(Random Access Memory)403と、ハードディスク(記憶装置)404と、これら構成を接続するバス(通信路)405から構成されている。ここで、記憶装置404は、不揮発性の記憶装置の一例である。
The hardware configuration shown in FIG. 5 includes a CPU (Central Processing Unit) 401, a ROM (Read Only Memory) 402, a RAM (Random Access Memory) 403, a hard disk (storage device) 404, and a bus connecting these configurations. (Communication path) 405. Here, the
上述したフローチャート(図4)等を用いて説明した各ブロックの機能(処理)は、そのような機能を実現可能なプログラムの供給を情報処理装置1000に受けた後、そのプログラムを、CPU401に読み出して実行することによって達成される。また、当該装置内に供給されたプログラムは、読み書き可能なRAM403や、ハードディスク(HDD)404に格納することも可能である。ここで、RAM403は、一時記憶可能な記憶デバイスの一例である。HDD404は、不揮発性の記憶装置の一例である。
The function (processing) of each block described using the above-described flowchart (FIG. 4) etc. is read by the
また、プログラムの供給方法は、CD−ROM等の各種記憶媒体を介してインストールする方法や、インターネット等の通信回線を介して外部よりダウンロードする方法等の方法を用いることができる。そして、このような場合において、本発明は、係るコンピュータ・プログラムのコード或いは、係るコードが格納された記憶媒体(HDD404)によって構成されると認識することができる。 As a program supply method, a method such as a method of installing via various storage media such as a CD-ROM or a method of downloading from the outside via a communication line such as the Internet can be used. In such a case, it can be recognized that the present invention is constituted by a code of the computer program or a storage medium (HDD 404) in which the code is stored.
但し、上述したオブジェクト配置装置10,100は、論理回路デバイス等を適宜組み合わせた専用のハードウエアによって実現しても良い。或いは、上述したオブジェクト配置装置10,100を情報処理装置(コンピュータ)によって実現する場合において、その情報処理装置は、オブジェクト配置装置10,100が実行する一連の機能(処理)を、物理的または仮想的に複数の情報処理装置に分散した状態で実行してもよい。
However, the
図6は、本発明の第1及び第2の実施形態に係る実施例におけるオブジェクト配置装置500のハードウエア構成を概念的に説明する図である。図6に示すオブジェクト配置装置500は、同図に示すように、オブジェクト配置機能501と、例えば第2の実施形態に係る乱数発生装置100とを有する。オブジェクト配置装置500には、一例として、5台のストレージノード(500a乃至500e)が接続されている。個々のストレージノード(500a乃至500e)は、例えば、通信ネットワーク上に適宜分散して配置されているとする。そして、以下の説明では、オブジェクト配置装置500を、情報処理装置1000によって実現する例について説明する。
FIG. 6 is a diagram conceptually illustrating the hardware configuration of the
但し、ストレージノード(500a乃至500e)は、例えば、HDD404の内部に、仮想的に構成してもよい。
However, the storage nodes (500a to 500e) may be virtually configured in the
係るオブジェクト配置装置500において、オブジェクト配置機能501は、オブジェクト(以下、「オブジェクトデータ」と称する場合がある)502の配置先を、そのオブジェクトに固有な情報を基に、上述した乱数発生装置100(10)によって生成される乱数を用いて、当該複数種類の乱数列の値域を表す空間の部分空間として少なくとも何れかの配置先が割り付けられている対応情報を参照することによって決定する。
In the
オブジェクト配置装置500は、ストレージノード500a乃至500eの中から、注目するオブジェクト(オブジェクトデータ)502を配置すべきストレージノードを、そのオブジェクト502が持つ識別子情報(ID)に基づいて選択する。係る選択に際して、オブジェクト配置装置500は、当該オブジェクトを、各ストレージノードが記憶可能な容量に略比例した確率で配置する。そして、オブジェクト配置装置500は、ストレージノードが追加もしくは削除された場合においても、最小限のデータ移動により、オブジェクトを、各ストレージノードが記憶可能な容量に略比例した確率で配置する、という性質を維持する。
The
本実施例では、係る性質を実現するために、オブジェクト配置装置500では1次元の連続した空間(即ち、数直線と捉えることもできる)を用意し、該空間上に各ストレージノードの容量に比例した部分空間を、互いに重複しないように各ストレージノードに割り当てる。
In this embodiment, in order to realize such a property, the
図7は、本発明の第1及び第2の実施形態に係る実施例における複数のストレージノードの記憶容量を、1次元空間における部分空間(A乃至D)として表した例を示す図である。即ち、図7に例示する1次元空間において、ストレージノード500a乃至500eは、それぞれ1個の実数により当該1次元空間上の位置を表現する。
FIG. 7 is a diagram illustrating an example in which the storage capacities of a plurality of storage nodes in the examples according to the first and second embodiments of the present invention are expressed as partial spaces (A to D) in a one-dimensional space. That is, in the one-dimensional space illustrated in FIG. 7, each of the
本実施例において、オブジェクト配置装置500は、上述した乱数発生装置100(10)を使用することによって乱数を発生する。オブジェクト配置装置500は、乱数発生装置100が発生する乱数の値の範囲を、乱数に対応する座標(即ち、本実施例では当該1次元空間:図7)が全てのストレージノードに割り当てられている部分空間を含むように設定する。乱数に対応する座標がストレージノードに割り当てられた部分空間を指し示している場合、オブジェクト配置装置500は、乱数に対応する座標が指し示している部分空間が割り当てられているストレージノードに対して、オブジェクトを配置する。
In the present embodiment, the
一方、乱数に対応する座標がストレージノードに割り当てられた部分空間を指し示していない場合、オブジェクト配置装置500は、乱数に対応する座標がストレージノードに割り当てられた部分空間を指し示すまで、乱数発生装置100による乱数発生と、乱数に対応する座標がストレージノードに割り当てられた部分空間を指し示しているか否かの判定を繰り返す。
On the other hand, if the coordinates corresponding to the random number do not point to the partial space assigned to the storage node, the
本実施例において、ストレージノード500a乃至500eは、例えば、図6及び以下の示す通りの記憶容量(最大記憶容量)を有することとする。即ち、
・ストレージノード500a: 1.0 [TeraBytes]、
・ストレージノード500b: 0.5 [TeraBytes]、
・ストレージノード500c: 0.7 [TeraBytes]、
・ストレージノード500d: 1.8 [TeraBytes]、
・ストレージノード500e: 0.2 [TeraBytes]。In this embodiment, the
図8は、本発明の第1及び第2の実施形態に係る実施例における部分空間とストレージノードとの対応表(部分空間−ストレージノード対応表600)を表す図である。 FIG. 8 is a diagram showing a correspondence table (partial space-storage node correspondence table 600) between partial spaces and storage nodes in the examples according to the first and second embodiments of the present invention.
即ち、図7及び図8に示すように、ストレージノード500aは、当該一次元空間上の0から1(1は含まない)の部分空間に対応する。ストレージノード500bは、当該一次元空間上の1から1.5(1.5は含まない)の部分空間に対応する。ストレージノード500cは、当該一次元空間上の2から2.7(2.7は含まない)の部分空間に対応する。ストレージノード500dは、当該一次元空間上の3から4(4は含まない)の部分空間と、同空間上の5から5.8(5.8は含まない)の部分空間とに対応する。そして、ストレージノード500eは、当該一次元空間上の4から4.2(4.2は含まない)の部分空間に対応する。
That is, as shown in FIGS. 7 and 8, the
乱数発生装置100(10)は、本実施例において、例えば、−1.0から8.0までの実数を生成し、2つのサブ乱数発生機能102(サブ乱数発生機能102Aおよびサブ乱数発生機能102B)を有することとする。この場合、サブ乱数発生機能102Aは、0.0から6.0までの実数を乱数として発生することとする。そして、サブ乱数発生機能102Bは、−1.0から8.0までの実数を乱数として発生することとする。つまり、サブ乱数発生機能102Aが発生する乱数列の値域は、図7に示すように、0.0から6.0までの実数が指し示す空間を指し示し、サブ乱数発生機能102Bが発生する乱数は、−1.0から8.0までの実数が指し示す空間を指し示す。 In this embodiment, the random number generation device 100 (10) generates, for example, real numbers from −1.0 to 8.0, and generates two sub-random number generation functions 102 (a sub-random number generation function 102A and a sub-random number generation function 102B). ). In this case, the sub-random number generation function 102A generates a real number from 0.0 to 6.0 as a random number. Then, the sub-random number generation function 102B generates a real number from −1.0 to 8.0 as a random number. That is, the range of the random number sequence generated by the sub-random number generation function 102A indicates a space indicated by a real number from 0.0 to 6.0, as shown in FIG. 7, and the random number generated by the sub-random number generation function 102B is Indicates the space pointed to by a real number from -1.0 to 8.0.
ここで、オブジェクト配置装置500に、識別子情報“a”を持つオブジェクトデータAを入力した場合について述べる。
Here, a case where object data A having identifier information “a” is input to the
サブ乱数発生機能102Aが生成する乱数が指し示す空間は、部分空間−ストレージノード対応表600に示したように、本実施例において全ての部分空間を含む。このため、乱数発生装置100は、上述した実施形態における乱数発生装置100の動作の如くサブ乱数発生機能102Aのみを使用する。
The space indicated by the random number generated by the sub-random number generation function 102A includes all the partial spaces in this embodiment, as shown in the partial space-storage node correspondence table 600. Therefore, the random
この場合、サブ乱数発生機能102Aは、まず、識別子情報“a”に文章列“A”を追加した文字列に関するハッシュを計算する。この計算によって得られるハッシュ値をハッシュAとする。 In this case, the sub-random number generation function 102A first calculates a hash related to the character string obtained by adding the sentence string “A” to the identifier information “a”. The hash value obtained by this calculation is set as hash A.
次に、オブジェクト配置装置500内部の乱数発生装置100において、サブ乱数発生機能102Aは、乱数を生成する。
Next, in the random
まず、最も乱数列の値域が広いサブ乱数発生機能102Aにより、ハッシュAをシードとして用いて乱数を発生する。ここでは、生成された乱数が1.7であるとする。この場合、乱数列の値域が当該サブ乱数発生機能102Aよりも狭い他のサブ乱数発生機能102は存在しないため、当該生成された乱数1.7は、乱数発生装置100が出力すべき乱数である。
First, a random number is generated using the hash A as a seed by the sub-random number generation function 102A having the widest range of the random number sequence. Here, it is assumed that the generated random number is 1.7. In this case, since there is no other sub-random
次に、オブジェクト配置装置500は、乱数が指し示す部分空間が存在するか否かを判定する。乱数は1.7であるため、図7及び図8に示した関係を考慮すると、この乱数が指し示す部分空間は存在しないことが判る。そのため、オブジェクト配置装置500内部の乱数発生装置100において、サブ乱数発生機能102Aは、新たな乱数を生成する。
Next, the
即ち、サブ乱数発生機能102Aは、次の乱数を生成する。ここでは、生成された乱数が4.9であるとする。この場合においても、乱数列の値域が当該サブ乱数発生機能102Aよりも狭い他のサブ乱数発生機能102は存在しないため、乱数4.9は、乱数発生装置100が出力すべき乱数である。
That is, the sub-random number generation function 102A generates the next random number. Here, it is assumed that the generated random number is 4.9. Also in this case, since there is no other sub-random
そして、サブ乱数発生機能102Aは、乱数が指し示す部分空間が存在するか否かを再び判定する。注目する乱数は4.9であるため、図7及び図8に示した関係を考慮すると、この場合も、当該乱数が指し示す部分空間は存在しない。そのため、サブ乱数発生機能102Aは、新たな乱数を生成する。 Then, the sub-random number generation function 102A determines again whether or not the partial space indicated by the random number exists. Since the random number of interest is 4.9, considering the relationship shown in FIG. 7 and FIG. 8, there is no partial space indicated by the random number in this case as well. For this reason, the sub-random number generation function 102A generates a new random number.
この場合も上述した手順と同様に乱数を計算した結果として乱数0.4を得て、その乱数の値が乱数発生装置100の出力すべき乱数として選択されたとする。
Also in this case, it is assumed that the random number 0.4 is obtained as a result of calculating the random number in the same manner as described above, and the value of the random number is selected as the random number to be output by the random
そして、オブジェクト配置装置500は、係る乱数0.4が指し示す部分空間が存在するか否かを、図8(図7)を参照することによって判断する。するとこの場合、当該乱数0.4が指し示す部分空間(A)が存在し、該部分空間がストレージノード500aに対応することが判る。よって、この場合、オブジェクト配置装置500は、オブジェクトデータAを、ストレージノード500aに配置する。
Then, the
ここで、サブ乱数発生機能(102)が略一様に乱数を生成する場合、乱数発生装置が発生する乱数も略一様になる。乱数が略一様で、乱数列の値域が全ての部分空間を含むとき、各配置先(本実施例においてはストレージノード500a乃至500e)が、あるオブジェクト502の配置先として選ばれる可能性は、各配置先に対応する部分空間の広さ(大きさ)に略比例する。
Here, when the sub-random number generation function (102) generates the random numbers substantially uniformly, the random numbers generated by the random number generator are also substantially uniform. When the random numbers are substantially uniform and the range of the random number sequence includes all partial spaces, the possibility that each placement destination (
(ストレージノードの追加)
ここで、0.3[TeraBytes]の記憶容量を持つストレージノード500fを、オブジェクト配置装置500に新たに追加し、これにより、ストレージノード500fを空間上の6から6.3(6.3は含まない)の部分空間に対応付けた場合を考える。(Add storage node)
Here, a storage node 500f having a storage capacity of 0.3 [TeraBytes] is newly added to the
この場合、個々のオブジェクトデータを記憶するストレージノードが変更になる可能性があるため、オブジェクト配置装置500は、それらオブジェクトノードを記憶するストレージノードを再度計算する。ここでも、識別子情報“a”を持つオブジェクトデータAを配置すべきストレージノードを演算する場合を考える。
In this case, since there is a possibility that the storage nodes that store the individual object data are changed, the
この場合、ストレージノード500fに対応する部分空間Fが追加されたことにより、サブ乱数発生機能102Aが発生する乱数が指し示す空間では、全ての部分空間を包含することができない。そこでこのような場合、オブジェクト配置装置500内部の乱数発生装置100は、乱数発生装置100はサブ乱数発生機能102Aだけでなく、係る追加された部分空間Fも包含可能なサブ乱数空間発生機能102Bを使用することを決定する。
In this case, since the partial space F corresponding to the storage node 500f is added, the space indicated by the random number generated by the sub-random number generation function 102A cannot include all the partial spaces. Therefore, in such a case, the random
まず、オブジェクト配置装置500は、識別子情報“a”に文章列“A”もしくは文章列“B”を追加し、追加後の文字列に関するハッシュを計算する。本実施例においては、文章列“A”に関して計算されたハッシュをハッシュAとし、文章列“B”に関して計算されたハッシュをハッシュBとする。
First, the
次に、オブジェクト配置装置500内部の乱数発生装置100は、生成する乱数列の値域が最も広いサブ乱数発生機能102Bにより、ハッシュBをシードとして用いて乱数を生成する。ここでは、算出された乱数が3.0であるとする。この場合、乱数3.0は、サブ乱数発生機能102Aの乱数列の値域に含まれる。このため、乱数発生装置100は、図4を参照して上述したように、乱数3.0を採用(出力)するのではなく、サブ乱数発生機能102Bに係る値域よりも範囲が狭いサブ乱数発生機能102Aによって新たな乱数を生成する。この場合、サブ乱数発生機能102Aは、ハッシュAをシードとして用いて乱数を生成する。ここでは算出された乱数が1.7であるとする。本実施例においては、サブ乱数発生機能102Aより乱数列の値域が狭い乱数生成手段は存在しない。このため、乱数1.7は、乱数発生装置100が出力すべき乱数である。
Next, the random
次に、オブジェクト配置装置500は、係る乱数1.7が指し示す部分空間が存在するか否かを判定するも、図8(図7)に示すように、この乱数に対応する部分空間は存在しない。そのため、乱数発生装置100は、乱数の発生を再度行う。
Next, the
そこで、オブジェクト配置装置500内部の乱数発生装置100は、図4に示したフローチャートの手順に従って改めて乱数を生成する。即ち、乱数発生装置100は、発生する乱数列の値域が最も広いサブ乱数発生機能102Bにより、次の乱数を生成する。ここでは、算出された乱数が6.2であるとする。この場合、乱数6.2は、次に乱数列の値域が広いサブ乱数発生機能102Aの乱数列の値域に含まれない。このため、乱数6.2は、乱数発生装置100が出力すべき乱数である。
Therefore, the random
そして、オブジェクト配置装置500は、係る乱数6.2が指し示す部分空間が存在するか否かを判定する。この場合、当該乱数6.2が指し示す部分空間Fが存在し、該部分空間Fには、ストレージノード500fが対応付する。そこで、オブジェクト配置装置500は、オブジェクトデータAを、ストレージノード500fに移動する。
Then, the
本実施例に係るオブジェクト配置装置500では、配置先(ストレージノード)が追加された場合、追加した配置先にのみオブジェクトデータが移動する。係るオブジェクト配置装置500において、そのオブジェクト配置装置が備える乱数生成装置100が略一様に乱数を生成する。乱数発生装置100が発生する乱数列の値域が全ての部分空間を含むとき、追加した配置先を含め、個々の配置先に対応する乱数が選ばれる可能性は、各配置先に対応する部分空間の広さ(大きさ)に略比例するという性質がある。
In the
このような性質を、乱数列の値域が変更された場合においても維持するためには、上述した第1及び第2の実施形態、並びに本実施例において上述した乱数発生装置10,100のように、係る変更後の乱数列に含まれる乱数の値のうち、当該変更前に生成する乱数列の値域に含まれる乱数の値が、当該変更前に生成する乱数の順番を維持すると共に、当該変更前の乱数列に含まれる乱数の値を生成可能な乱数発生装置が必要である。
In order to maintain such a property even when the range of the random number sequence is changed, as in the first and second embodiments described above and the
(ストレージノードの削除)
次に、オブジェクト配置装置500からストレージノード500fを削除する場合を考える。この場合、個々のオブジェクトデータを記憶するストレージノードが変更になる可能性があるため、オブジェクト配置装置500は、それらオブジェクトノードを記憶するストレージノードを再度計算する。ここでも、識別子情報“a”を持つオブジェクトデータAを配置するストレージノードを演算する場合を考える。(Delete storage node)
Next, consider a case where the storage node 500f is deleted from the
サブ乱数発生機能102Aが生成する乱数が指し示す空間は、図8(図7)から判るように、全ての部分空間を包含する。このため、オブジェクト配置装置500において、乱数発生装置100は、サブ乱数発生機能102Aのみを使用する。
As can be seen from FIG. 8 (FIG. 7), the space indicated by the random number generated by the sub-random number generation function 102A includes all the partial spaces. Therefore, in the
まず、乱数発生装置100は、識別子情報“a”に文章列“A”を追加し、追加した文字列に関するハッシュを計算する。文章列“A”に関するハッシュをハッシュAとする。
First, the random
次に、オブジェクト配置装置500において、乱数発生装置100は、乱数を生成する。この場合も、乱数発生装置100は、乱数列の値域が最も広いサブ乱数発生機能102Aにより、ハッシュAをシードとして用いて乱数を発生する。ここでは、算出された乱数が1.7であるとする。そしてこの場合、乱数列の値域がサブ乱数発生機能102Aの次に広いサブ乱数発生機能102は存在しない。このため、乱数1.7は、乱数発生装置100が出力すべき乱数である。そして、係る乱数1.7が指し示す部分空間は存在しないので、乱数発生装置100は、乱数の生成を再度行う。
Next, in the
そして、乱数発生装置100において、サブ乱数発生機能102Aによって次に算出された乱数が4.9であるとする。この場合も、サブ乱数発生機能102Aによって生成された乱数4.9が採用されるべき乱数であるが、係る乱数4.9が指し示す部分空間はやはり存在しないので、乱数発生装置100は、乱数の生成を再度行う。
In the random
この場合、乱数発生装置100は、サブ乱数発生機能102Aにより改めて乱数を生成する。そしてこの場合、算出された乱数が0.4であるとすると、この乱数に対応する部分空間Aが存在するので、オブジェクト配置装置500は、その部分空間Aに対応するストレージノード500aに、オブジェクトデータAを移動する。
In this case, the random
オブジェクト配置装置500では、配置先(ストレージノード)が削除された場合、削除した配置先に配置されていたオブジェクトデータのみが移動する。係るオブジェクト配置装置500において、そのオブジェクト配置装置が備える乱数生成装置100が略一様に乱数を生成する。乱数発生装置100の乱数列の値域が全ての部分空間を含む場合、残った配置先のうち、削除された特定の配置先に記憶されていたオブジェクトデータの新たな配置先として選ばれる可能性は、当該残った配置先それぞれに対応する部分空間の広さ(大きさ)に略比例するという性質がある。
In the
このような性質を乱数列の値域が変更された場合においても維持するためには、上述した第1及び第2の実施形態、並びに本実施例において上述した乱数発生装置10,100のように、係る変更後の乱数列に含まれる乱数の値のうち、当該変更前に生成する乱数列の値域に含まれる乱数の値が、当該変更前に生成する乱数の順番を維持すると共に、当該変更前の乱数列に含まれる乱数の値を生成可能な乱数発生装置が必要である。
In order to maintain such a property even when the range of the random number sequence is changed, as in the first and second embodiments described above and the
以上説明したように、本実施例に係るオブジェクト配置装置500によれば、オブジェクトの配置先であるストレージノードを、そのストレージノードの記憶容量に合わせた長さの線分として1次元空間(数直線)に予め割り付け、乱数発生装置100は、注目する乱数の値が、当該割り付けられた線分の数値範囲に含まれるまで乱数の発生を繰り返す。そして、乱数発生装置100が生成したある乱数が何れかのストレージノードを割り付けた当該1次元空間上の数に一致したとき、その数に対応するストレージノードをオブジェクトの配置先であると決定する。
As described above, according to the
このような処理構成の本実施例によれば、上記の一連の処理を行う場合に、乱数列の値域を変更することが可能である。これにより、乱数列の値域が固定の場合に比べて次のような利点がある。 According to this embodiment having such a processing configuration, it is possible to change the range of the random number sequence when performing the above-described series of processing. This has the following advantages over the case where the range of the random number sequence is fixed.
即ち、乱数列の値域が固定された装置構成の場合、想定を超えた数量のストレージノードは当該値域に割り付けられないので、改めて乱数列の値域の設定から改変する必要が生じる。この場合、オブジェクト配置装置では、変更後の新たな値域に基づいて多くの乱数の値が変化するため、個々のオブジェクトを記憶すべきストレージノードが大きく変化する事態の発生が予想される。 In other words, in the case of a device configuration in which the range of the random number sequence is fixed, storage nodes whose number exceeds the assumption cannot be assigned to the range, so that it is necessary to change the setting from the range of the random number sequence again. In this case, in the object placement device, since many random number values change based on the new range after the change, it is expected that a situation in which the storage node where each object is stored greatly changes will occur.
これに対して本実施例によれば、乱数列の値域を、外部から設定する乱数の範囲情報105によって変更するのに応じて、オブジェクト配置装置500は、ストレージノードの数量(単純には台数)が予め想定した数量に比べて多くなった場合であっても、当該数直線上(1次元空間)の乱数列の値域を拡大することができる。そして、オブジェクト配置装置500において、新たに値域が拡大された後の乱数列に含まれ、且つ変更前の値域にも含まれる乱数の値は、係る変更の前後で乱数列における順番(発生順位)をそのまま維持することができる。即ち、オブジェクト配置装置500によれば、乱数列の値域の拡大が必要な事態が生じた場合であっても柔軟に対応することができ、且つ格納すべきストレージノードを変更しなければならないオブジェクトの件数を極小化することができる。
On the other hand, according to the present embodiment, the
また、乱数列の値域が固定された装置構成の場合、ストレージノードが部分空間として割り付けられている数直線上の領域が非常に狭い場合、乱数列の値域を変更することができない。この場合、乱数の発生を何度も繰り返す必要がある場合があり、このような場合には最終的に割り付け先が決定されるまでに時間を要するという問題がある。 Also, in the case of a device configuration in which the range of the random number sequence is fixed, the range of the random number sequence cannot be changed if the area on the number line to which the storage node is allocated as a partial space is very narrow. In this case, it may be necessary to repeat the generation of random numbers many times. In such a case, there is a problem that it takes time until the assignment destination is finally determined.
これに対して本実施例に係るオブジェクト配置装置500によれば、ストレージノードが部分空間として割り付けられている数直線上の領域が非常に狭い場合であっても、乱数の範囲情報105によって外部から指示するのに応じて、乱数列の値域を、係る狭い領域に応じて狭めることができる。このことは、乱数の発生回数を軽減できるということを意味するから、オブジェクト配置装置500によれば、処理速度の高速化を実現することができる。
On the other hand, according to the
このように、本実施例に係るオブジェクト配置装置500によれば、上記の如く採用すべき値域の大きさを柔軟に変更できる。このため、オブジェクト配置装置500を用いてオブジェクトをストレージノードに配置するシステムにおいては、運用開始に際して過大に大きな余裕を持った広い値域の乱数列を考慮しなくてもよい。即ち、係るシステムは、運用開始当初には必要最小限の値域を発生する乱数を用意し、その値域に最小限のストレージノードを部分空間として割り付ければよい。このことを換言すると、運用開始当初に少ない数量のストレージノードが必要なのにも関わらず、新たなストレージノードの将来の増設を考慮して広い値域の乱数列を採用して当該少ない数量のストレージノードを割り付けた場合は、配置先決定に要する時間の長期化が予想される。これに対して、係るオブジェクト配置装置500を用いたシステムによれば、上記の如く採用する乱数列の値域を柔軟に変更することができると共に、変更に伴い影響を受けるオブジェクトを極小化できる。このため、係るオブジェクト配置装置500を用いたシステムによれば、配置先決定までのレスポンスを担保すべく、運用開始当初のシステム規模に合わせた乱数列の値域を用いるスモールスタートを実現することが可能である。更に、係るシステムによれば、将来のシステム規模の拡大に際しても、そのシステム規模に応じた乱数列の値域を採用することができるので、配置先決定までのレスポンスに影響を与えることも防止することができる。
As described above, according to the
尚、本実施例では、説明の便宜上から、1次元空間上に部分空間を配置した場合を例に説明した。しかしながら、本発明に係るオブジェクト配置装置は、複数次元の空間にも展適用可能である。ここで、複数次元の一例として2次元空間に部分空間を配置した場合について概説する。 In the present embodiment, for convenience of explanation, a case where a partial space is arranged on a one-dimensional space has been described as an example. However, the object placement device according to the present invention can be applied to a multi-dimensional space. Here, the case where a partial space is arranged in a two-dimensional space as an example of a plurality of dimensions will be outlined.
図9は、本発明の第1及び第2の実施形態に係る実施例におけるストレージノードの記憶容量を、2次元空間における部分空間として表した例を示す図である。図9に示す2次元空間は、2種類の乱数(A,B)によって構成される。この2次元空間には、図9に例示する如く、乱数Aである実数0から5の範囲、乱数Bである実数0から4の範囲において、複数の部分空間(A〜K)が配置されている。
FIG. 9 is a diagram showing an example in which the storage capacity of the storage node in the examples according to the first and second embodiments of the present invention is expressed as a partial space in a two-dimensional space. The two-dimensional space shown in FIG. 9 is composed of two types of random numbers (A, B). In this two-dimensional space, as illustrated in FIG. 9, a plurality of partial spaces (A to K) are arranged in the range of
このような2次元空間を利用する実装例としては、例えば、配置すべきオブジェクト自体が2次元空間で表される情報(例えば、高さを含まない地図情報等)である場合が想定される。この場合、個々のオブジェクト自体が有する次元と同じ次元のままで、当該個々のオブジェクトを、オブジェクト配置装置が採用している空間内の部分空間として割り当てることができる。 As an implementation example using such a two-dimensional space, for example, a case where an object to be arranged is information (for example, map information not including height) represented in the two-dimensional space is assumed. In this case, the individual object can be allocated as a partial space within the space adopted by the object placement device while maintaining the same dimension as that of the individual object itself.
即ち、上述した1次元空間を採用するオブジェクト配置装置500を用いて、係る2次元情報からなるオブジェクトを配置する場合、当該1次元空間内の部分空間に個々のオブジェクトを割り当てる処理に先だって、当該個々のオブジェクトを表す2次元情報を、1次元情報に変換する処理が必要である。更に実装の態様によっては、配置先の決定結果を表す1次元情報を、2次元情報に変換する処理が必要である。このことは、一連の処理に余分な時間を要し、処理負担(処理コスト)が大きいことを表す。
That is, when an object composed of such two-dimensional information is arranged using the above-described
これに対して、当該個々のオブジェクトを表す2次元情報を、そのまま2次元空間内の部分空間として割り当てられる装置構成の場合は、係る余分な処理負担が生じることはない。このため、係る装置構成によれば、オブジェクト配置装置の構成を、簡素に実現することがでると共に、オブジェクトを柔軟且つ高速に配置することができる。このことは、オブジェクトが2次元情報で表される場合に限定される効果ではない。即ち、係る効果は、配置先を決定すべきオブジェクトがn次元情報の場合(n≧1)には、当該n次元情報をそのまま割り当てられる複数次元空間を扱うオブジェクト配置装置を採用することによって享受できる。 On the other hand, in the case of a device configuration in which the two-dimensional information representing the individual object is assigned as it is as a partial space in the two-dimensional space, such extra processing burden does not occur. For this reason, according to such a device configuration, the configuration of the object placement device can be simply realized, and the object can be placed flexibly and at high speed. This is not an effect limited to the case where the object is represented by two-dimensional information. That is, such an effect can be enjoyed by adopting an object placement device that handles a multi-dimensional space to which the n-dimensional information can be assigned as it is when the object whose placement destination is to be determined is n-dimensional information (n ≧ 1). .
以上、本発明を、上述した模範的な実施形態およびその実施例に適用した例として説明した。しかしながら、本発明の技術的範囲は、上述した各実施形態及び実施例に記載した範囲には限定されない。当業者には、係る実施形態に対して多様な変更又は改良を加えることが可能であることは明らかである。そのような場合、係る変更又は改良を加えた新たな実施形態も、本発明の技術的範囲に含まれ得る。そしてこのことは、特許請求の範囲に記載した事項から明らかである。 In the above, this invention was demonstrated as an example applied to exemplary embodiment mentioned above and its Example. However, the technical scope of the present invention is not limited to the scope described in the above embodiments and examples. It will be apparent to those skilled in the art that various modifications and improvements can be made to such embodiments. In such a case, new embodiments to which such changes or improvements are added can also be included in the technical scope of the present invention. This is clear from the matters described in the claims.
即ち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。 That is, the present invention can apply various modes that can be understood by those skilled in the art within the scope of the present invention.
この出願は、2012年2月15日に出願された日本出願特願2012−030976を基礎とする優先権を主張し、その開示の全てをここに取り込む。 This application claims the priority on the basis of Japanese application Japanese Patent Application No. 2012-030976 for which it applied on February 15, 2012, and takes in those the indications of all here.
10,100 乱数発生装置
12 乱数発生機能
101 シード提供機能
102 サブ乱数発生機能
13,103 乱数選択機能
14,104a,104b シード情報
15,105 乱数の範囲情報
16,106 乱数列
401 CPU
402 ROM
403 RAM
404 HDD
405 バス(通信路)
500 オブジェクト配置装置
500a〜500e ストレージノード
501 オブジェクト配置機能
502 オブジェクト
600 部分空間−ストレージノード対応表
1000 情報処理装置(コンピュータ)DESCRIPTION OF SYMBOLS 10,100
402 ROM
403 RAM
404 HDD
405 Bus (communication path)
500
Claims (14)
ことを特徴とする乱数発生装置。The same random number sequence can be generated based on the same information that is the source of random numbers, and multiple types of random number sequences that can be taken by the generated random number sequence can be generated. When the random number included in is in a range included in a range that can be taken by another random number sequence different from the range, the random number of the random number sequence of interest in a relationship included in the range that can be taken by the other random number sequence And the random numbers of the other random number sequences included in the range that the noted random number sequence can take are the same value, and appear in the same order in the random number sequence to be generated by the own device. Random number generator.
ことを特徴とする請求項1記載の乱数発生装置。When the specific random number included in the range that can be taken by the random number sequence of interest is in a relationship that is included in the range that can be taken by another random number sequence that is narrower than the range, whether or not the relationship is satisfied, Among the other random number sequences that can take the narrow range, the specific random number is included in the process of sequentially determining as another comparison target another random number sequence that can take the next wide range that can be taken by the target random number sequence And selecting another random number generated based on the same information used when generating the specific random number from among the random number sequences having the narrowest range in which the relationship is established, If the specific random number is not included in a range that can be taken by another random number sequence that is narrower than the range that can be taken by the random number sequence, the random number sequence to be generated is configured by selecting the specific random number The random number generator according to claim 1 .
前記複数の乱数発生手段のうち何れかの生成した乱数の値を選択する乱数選択手段とを備え、
前記乱数選択手段は、
前記複数の乱数発生手段のうち特定の乱数発生手段によって生成される特定の乱数が、その特定の乱数発生手段によって生成される乱数列が採り得る値域よりも狭い他の乱数列が採り得る値域に含まれる関係にある場合に、その関係が成立するか否かを、該狭い値域を採り得る他の乱数列のうち、前記注目する乱数列が採り得る値域の次に広い値域を採り得る他の乱数列を比較対象として順次判断する過程において、該特定の乱数が含まれ、且つ該関係が成立する最も値域が狭い乱数列を生成する他の乱数発生手段が生成する乱数列の中から、該特定の乱数を生成する際に用いる同一の情報を基に生成した他の乱数を選択する一方で、
前記複数の乱数発生手段のうち前記特定の乱数発生手段によって生成される前記特定の乱数が、生成する乱数列が採り得る値域が前記特定の乱数選択手段よりも狭い他の乱数選択手段によって生成される乱数列が採り得る値域に含まれない場合には、前記特定の乱数を選択する
ことを特徴とする請求項2記載の乱数発生装置。A plurality of random number generating means for generating the plurality of types of random number sequences;
Random number selection means for selecting a random number value generated from any of the plurality of random number generation means,
The random number selection means includes
The specific random number generated by the specific random number generation means among the plurality of random number generation means is in a value range that can be taken by another random number sequence that is narrower than the range that the random number sequence generated by the specific random number generation means can take. In the case where the relationship is included, whether the relationship is established or not is determined based on the other random number sequences that can take the narrow range of values, and the other range that can take the next wide range of values that can be taken by the random number sequence of interest. In the process of sequentially determining a random number sequence as a comparison target, the specific random number is included, and the random number sequence generated by another random number generation unit that generates the random number sequence having the narrowest range in which the relationship is established is selected from the random number sequence While selecting other random numbers generated based on the same information used to generate a specific random number,
Among the plurality of random number generation means, the specific random number generated by the specific random number generation means is generated by another random number selection means whose value range that the generated random number sequence can take is narrower than the specific random number selection means. The random number generator according to claim 2, wherein the specific random number is selected when the random number sequence is not included in an acceptable range.
前記乱数選択手段は、
前記第1の乱数発生手段によって生成された第1の乱数が、前記第2の乱数発生手段によって生成される第2の乱数列が採り得る値域に含まれるか否かを判断する第1の処理と、
前記第1の処理にて含まれると判断した場合に、前記第2の乱数発生手段により生成された第2の乱数を選択する第2の処理とを、
前記第2の処理にて第2の乱数を選択する度に、前記第2の乱数を新たな前記第1の乱数として、前記第1の処理と前記第2の処理とを繰り返し行うと共に、
前記第1の乱数発生手段によって生成された第1の乱数が、前記第2の乱数発生手段によって生成される第2の乱数列が採り得る値域に含まれないと判断した場合に、前記第1の乱数発生手段により生成された第1の乱数を、前記特定の乱数として選択する
ことを特徴とする請求項3記載の乱数発生装置。The first and second random number generation means, which are the plurality of random number generation means, have different value ranges that can be taken by the generated random number sequence, and range values that can be taken by the random number sequence that is generated by the first random number generation means, The random number sequence generated by the second random number generation means has a relationship including a range that can be taken,
The random number selection means includes
First processing for determining whether or not the first random number generated by the first random number generation means is included in a value range that can be taken by the second random number sequence generated by the second random number generation means. When,
A second process for selecting a second random number generated by the second random number generator when it is determined that the second process is included in the first process;
Each time the second random number is selected in the second process, the first process and the second process are repeated using the second random number as the new first random number,
When it is determined that the first random number generated by the first random number generation means is not included in a range that can be taken by the second random number sequence generated by the second random number generation means, the first random number generation means 4. The random number generator according to claim 3, wherein the first random number generated by the random number generator is selected as the specific random number.
ことを特徴とする請求項1乃至請求項5の何れかに記載の乱数発生装置。6. The random number generation device according to claim 1, wherein the random number generation device generates a random number sequence representing at least one of a numerical value, a character, an identifier, a coordinate, and a bit string.
オブジェクトの配置先を、そのオブジェクトに固有な情報を基に前記乱数発生装置によって生成される乱数を用いて、前記複数種類の乱数列が採り得る値域を表す空間の部分空間として少なくとも何れかの配置先が割り付けられている対応情報を参照することによって決定する配置手段と、を備える
ことを特徴とするオブジェクト配置装置。The random number generator according to any one of claims 1 to 6,
Arrangement of an object as a partial space of a space representing a range of values that can be taken by the plurality of types of random number sequences using random numbers generated by the random number generator based on information unique to the object An object placement device comprising: placement means for determining by referring to correspondence information to which a destination is assigned.
ことを特徴とする乱数発生方法。Random number of interest using random number generation means that generates the same random number sequence based on the same information that is the source of the random number and that can generate multiple types of random number sequences that can be taken from different ranges. When the random number included in the range that can be taken by the sequence is in a relationship that is included in the range that can be taken by another random number sequence different from the range, the relationship that is included in the range that can be taken by the other random number sequence The random number of the random number sequence of interest and the random number of the other random number sequence included in the range that can be taken by the focused random number sequence have the same value and appear in the same order in the random number sequence to be generated A random number generation method characterized by
ことを特徴とする請求項8記載の乱数発生方法。If the specific random number included in the range of values that can be taken by the random number sequence of interest generated by the random number generation means is in a range that can be taken by another random number sequence that is narrower than the range of values, the relationship is established In the process of sequentially determining whether other random number sequences that can take the next wide range after the range that can be taken by the random number sequence of interest among other random number sequences that can take the narrow range, While selecting the other random number generated based on the same information used when generating the specific random number, from the random number sequence that includes the specific random number and has the narrowest range in which the relationship is established When the specific random number is not included in a range that can be taken by another random number sequence that is narrower than the range that can be taken by the random number sequence of interest, the random number sequence to be generated is selected by selecting the specific random number With the features Random number generating method according to claim 8, wherein that.
該複数の乱数発生手段のうち特定の乱数発生手段によって生成した特定の乱数が、生成する乱数列が採り得る値域よりも狭い他の乱数列が採り得る値域に含まれる関係にある場合に、その関係が成立するか否かを、該狭い値域を採り得る他の乱数列のうち、前記注目する乱数列が採り得る値域の次に広い値域を採り得る他の乱数列を比較対象として順次判断する過程において、該特定の乱数が含まれ、且つ該関係が成立する最も値域が狭い乱数列を生成する他の乱数発生手段が生成する乱数列の中から、該特定の乱数を生成する際に用いる同一の情報を基に生成した他の乱数を選択する一方で、
前記複数の乱数発生手段のうち前記特定の乱数発生手段によって生成される前記特定の乱数が、生成する乱数列が採り得る値域が該特定の乱数選択手段よりも狭い他の乱数選択手段によって生成される乱数列が採り得る値域に含まれない場合には、前記特定の乱数を選択する
ことを特徴とする請求項9記載の乱数発生方法。As the random number generating means, using a plurality of random number generating means for generating a plurality of different types of random number sequences,
When the specific random number generated by the specific random number generation means among the plurality of random number generation means is in a range included in a range that can be taken by another random number sequence that is narrower than the range that can be taken by the generated random number sequence, Whether or not the relationship is established is sequentially determined by comparing, with other random number sequences that can take the narrow value range, other random number sequences that can take the next wide range after the range that the noted random number sequence can take. In the process, it is used to generate the specific random number from among the random number sequences generated by other random number generation means that generate the random number sequence that includes the specific random number and that has the narrowest range in which the relationship is established. While selecting other random numbers generated based on the same information,
Among the plurality of random number generation means, the specific random number generated by the specific random number generation means is generated by another random number selection means whose value range that the generated random number sequence can take is narrower than the specific random number selection means. The random number generation method according to claim 9, wherein the specific random number is selected when the random number sequence is not included in an acceptable range.
前記特定の乱数を選択するに際して、
前記第1の乱数発生手段によって生成した第1の乱数が、前記第2の乱数発生手段によって生成される第2の乱数列が採り得る値域に含まれるか否かを判断する第1の判断と、
前記第1の判断にて含まれると判断した場合に、前記第2の乱数発生手段により生成した第2の乱数を選択する第2の判断とを、
前記第2の判断にて第2の乱数を選択する度に、前記第2の乱数を新たな前記第1の乱数として、前記第1の判断と前記第2の判断とを繰り返し行うと共に、
前記第1の乱数発生手段によって生成した第1の乱数が、前記第2の乱数発生手段によって生成した第2の乱数列が採り得る値域に含まれないと判断した場合に、前記第1の乱数発生手段により生成された第1の乱数を、前記特定の乱数として選択する
ことを特徴とする請求項10記載の乱数発生方法。Using the first and second random number generation means as the plurality of random number generation means, the range of values that can be taken by the generated random number sequence is different from each other, and the range of values that can be taken by the random number sequence that is generated by the first random number generation unit is , Generating a random number of a relationship including a range that can be taken by the random number sequence generated by the second random number generation means,
In selecting the specific random number,
A first determination for determining whether or not the first random number generated by the first random number generation means is included in a value range that can be taken by the second random number sequence generated by the second random number generation means; ,
A second determination for selecting the second random number generated by the second random number generation means when it is determined that the second determination is included in the first determination;
Each time the second random number is selected in the second determination, the first determination and the second determination are repeated using the second random number as the new first random number,
When it is determined that the first random number generated by the first random number generation means is not included in the range that can be taken by the second random number sequence generated by the second random number generation means, the first random number 11. The random number generation method according to claim 10, wherein the first random number generated by the generation means is selected as the specific random number.
ことを特徴とするコンピュータ・プログラム。The same random number sequence can be generated based on the same information that is the source of random numbers, and multiple types of random number sequences that can be taken by the generated random number sequence can be generated. Is in a range that can be taken by another random number sequence different from that range, the random number sequence of interest that is in a range that can be taken by the other random number sequence A random number generation function in which a random number and the random number of the other random number sequence included in a range that can be taken by the focused random number sequence have the same value and appear in the same order in the random number sequence to be generated; A computer program that is executed by a computer.
ことを特徴とする請求項12記載のコンピュータ・プログラム。When the random number generation function causes the computer to have a specific random number included in a range that can be taken by the random number sequence of interest, in a range that can be taken by another random number sequence that is narrower than the range, Whether or not the relationship is satisfied is sequentially determined by comparing, with other random number sequences that can take the narrow range, the other random number sequences that can take the next wide range after the range that can be taken by the random number sequence of interest. Other random numbers generated based on the same information used when generating the specific random number from among the random number sequence that includes the specific random number and has the narrowest range in which the relationship is established. On the other hand, if the specific random number is not included in a range that can be taken by another random number sequence that is narrower than the range that can be taken by the random number sequence of interest, the generation is performed by selecting the specific random number. Construct a random number sequence to be The computer program of claim 12, characterized in that the.
前記複数の乱数発生機能のうち何れかの生成した乱数の値を選択する乱数選択機能とを前記コンピュータに実行させるコンピュータ・プログラムであって、
前記乱数選択機能によって、
前記複数の乱数発生機能のうち特定の乱数発生機能によって生成される特定の乱数が、その特定の乱数発生機能によって生成される乱数列が採り得る値域よりも狭い他の乱数列が採り得る値域に含まれる関係にある場合には、その関係が成立するか否かを、該狭い値域を採り得る他の乱数列のうち、前記注目する乱数列が採り得る値域の次に広い値域を採り得る他の乱数列を比較対象として順次判断する過程において、該特定の乱数が含まれ、且つ該関係が成立する最も値域が狭い乱数列を生成する他の乱数発生機能が生成する乱数列の中から、該特定の乱数を生成する際に用いる同一の情報を基に生成した他の乱数を選択する一方で、
前記複数の乱数発生機能のうち前記特定の乱数発生機能によって生成される前記特定の乱数が、生成する乱数列が採り得る値域が該特定の乱数選択機能よりも狭い他の乱数選択機能によって生成される乱数列が採り得る値域に含まれない場合には、前記特定の乱数を選択する
ことを特徴とする請求項13記載のコンピュータ・プログラム。A plurality of random number generation functions for generating the plurality of types of random number sequences as the random number generation function,
A computer program for causing the computer to execute a random number selection function for selecting a random number value generated from any of the plurality of random number generation functions,
By the random number selection function,
Among the plurality of random number generation functions, a specific random number generated by a specific random number generation function is in a value range that can be taken by another random number sequence that is narrower than a range that can be taken by a random number sequence generated by the specific random number generation function If the relationship is included, whether or not the relationship is satisfied is determined based on whether or not the narrowest range of random numbers can take the next widest range of values that the focused random number sequence can take. Among the random number sequences generated by other random number generation functions that generate the random number sequence that includes the specific random number and has the narrowest range in which the relationship is satisfied, While selecting other random numbers generated based on the same information used when generating the specific random number,
Among the plurality of random number generation functions, the specific random number generated by the specific random number generation function is generated by another random number selection function whose value range that can be taken by the generated random number sequence is narrower than the specific random number selection function The computer program according to claim 13, wherein the specific random number is selected when the random number sequence is not included in an acceptable range.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012030976 | 2012-02-15 | ||
JP2012030976 | 2012-02-15 | ||
PCT/JP2013/000627 WO2013121736A1 (en) | 2012-02-15 | 2013-02-06 | Random number generating device, random number generating method, object arranging device, and computer program |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2013121736A1 JPWO2013121736A1 (en) | 2015-05-11 |
JP6044628B2 true JP6044628B2 (en) | 2016-12-14 |
Family
ID=48983873
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014500087A Active JP6044628B2 (en) | 2012-02-15 | 2013-02-06 | Random number generation device, random number generation method, object placement device, and computer program |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP6044628B2 (en) |
WO (1) | WO2013121736A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108597563A (en) * | 2018-04-26 | 2018-09-28 | 西安交通大学医学院第附属医院 | Dynamic random group technology and system |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180018147A1 (en) * | 2015-01-15 | 2018-01-18 | Mitsubishi Electric Corporation | Random number expanding device, random number expanding method, and non-transitory computer readable recording medium storing random number expanding program |
US20210286593A1 (en) * | 2017-01-19 | 2021-09-16 | Nippon Telegraph And Telephone Corporation | Random number generation apparatus, method and program |
US11646867B2 (en) * | 2017-12-22 | 2023-05-09 | The Boeing Company | Systems and methods implementing countermeasures to phase tracking attacks on ring oscillator based entropy sources |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004185170A (en) * | 2002-12-02 | 2004-07-02 | Sony Corp | Random number data forming device |
JP4255895B2 (en) * | 2004-08-11 | 2009-04-15 | Kddi株式会社 | Pseudorandom number generator and method |
US7363324B2 (en) * | 2004-12-17 | 2008-04-22 | International Business Machines Corporation | Method, system and program for prioritizing maintenance of database tables |
-
2013
- 2013-02-06 WO PCT/JP2013/000627 patent/WO2013121736A1/en active Application Filing
- 2013-02-06 JP JP2014500087A patent/JP6044628B2/en active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108597563A (en) * | 2018-04-26 | 2018-09-28 | 西安交通大学医学院第附属医院 | Dynamic random group technology and system |
Also Published As
Publication number | Publication date |
---|---|
JPWO2013121736A1 (en) | 2015-05-11 |
WO2013121736A1 (en) | 2013-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200285634A1 (en) | System for data sharing platform based on distributed data sharing environment based on block chain, method of searching for data in the system, and method of providing search index in the system | |
US20080232580A1 (en) | Secret sharing apparatus, method, and program | |
JP6044628B2 (en) | Random number generation device, random number generation method, object placement device, and computer program | |
Dastgheib et al. | A digital pseudo-random number generator based on sawtooth chaotic map with a guaranteed enhanced period | |
JP2008304916A (en) | Mixed radix conversion with a priori defined statistical artifacts | |
US11270227B2 (en) | Method for managing a machine learning model | |
JP2011170667A (en) | File-synchronizing system, file synchronization method, and file synchronization program | |
JP5429502B2 (en) | Range search system, range search method, and range search program | |
WO2018193507A1 (en) | Authentication tag generation device, authentication tag verification device, method and program | |
JP4970287B2 (en) | Method, system and apparatus for generating pseudo-random data sequences | |
US11281688B2 (en) | Ranking and de-ranking data strings | |
JP6773115B2 (en) | Similar data search device, similar data search method and recording medium | |
JP6011775B2 (en) | Distributed apparatus, restoration apparatus, distribution method, restoration method, and distributed restoration system | |
KR101872329B1 (en) | Random number generator for supporting multi entropy pool | |
JP5555238B2 (en) | Information processing apparatus and program for Bayesian network structure learning | |
JP5636078B1 (en) | Apparatus and method for placing virtual network on physical network | |
JP2009124499A (en) | Random error generator, m-sequence generating circuit and its design method | |
JP6361254B2 (en) | Object placement apparatus, object placement method, and program | |
JP2017058501A (en) | Hash function calculation device and method | |
Limniotis et al. | De Bruijn sequences and suffix arrays: Analysis and constructions | |
JP6694141B2 (en) | Array control program, array control method, array control device | |
KR101738415B1 (en) | Data storage apparatus and method for storing a message dispersedly | |
KR102649929B1 (en) | Digital signature generation and verification method for low-end PLC | |
Foster | Accelerating homomorphic encryption in the cloud environment through high-level synthesis and reconfigurable resources | |
Chang et al. | Binary de Bruijn Sequences via Zech’s Logarithms |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160120 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20161018 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20161031 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6044628 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |