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 PDF

Info

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
Application number
JP2014500087A
Other languages
Japanese (ja)
Other versions
JPWO2013121736A1 (en
Inventor
健一郎 石川
健一郎 石川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Publication of JPWO2013121736A1 publication Critical patent/JPWO2013121736A1/en
Application granted granted Critical
Publication of JP6044628B2 publication Critical patent/JP6044628B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic 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/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom 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/0668Pseudorandom 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 Patent Document 1 and Patent Document 2.

図10は、特許文献1に記載された方法の手順を説明する図である。特許文献1に記載された疑似乱数の発生方法は、既知のオブジェクトデータに基づき疑似乱数(擬似的な乱数列)を発生する方法を開示する。   FIG. 10 is a diagram illustrating the procedure of the method described in Patent Document 1. The pseudo random number generation method described in Patent Document 1 discloses a method of generating a pseudo random number (pseudo random number sequence) based on known object data.

即ち、図10に示した反復処理の手順において、まず、反復ステップ1では、スタート値S0が受け取られ、そのスタート値S0を基に鍵K0が算出される。   That is, in the iterative processing procedure shown in FIG. 10, first, in iteration step 1, the start value S0 is received, and the key K0 is calculated based on the start value S0.

反復ステップ2では、係るスタート値S0と、反復ステップ1にて算出された鍵K0に対して、一方向関数fが適用される。この反復ステップ2における一方向関数fの演算結果は、f(S0,K0)で表される。   In the iteration step 2, the one-way function f is applied to the start value S0 and the key K0 calculated in the iteration step 1. The calculation result of the one-way function f in the iteration step 2 is represented by f (S0, K0).

反復ステップ3では、反復ステップ2にて得られた演算結果f(S0,K0)が3つの値(S1,K1,R1)に分解される。これら3つの値において、S1は当該一方向関数fによる次の演算の初期値として、K1は鍵として扱われる(反復ステップ4)。そして、R1は、図10に示した一連の反復処理によって生成される疑似乱数の第1の部分として扱われる。   In the iteration step 3, the calculation result f (S0, K0) obtained in the iteration step 2 is decomposed into three values (S1, K1, R1). Of these three values, S1 is treated as an initial value for the next calculation by the one-way function f, and K1 is treated as a key (repetition step 4). R1 is treated as the first part of the pseudorandom number generated by the series of iterative processes shown in FIG.

反復ステップ5では、反復ステップ4におけるS1及びK1を利用して当該一方向関数fによる演算が施され、該演算の結果であるf(S1,K1)が得られる。そして、反復ステップ6では、反復ステップ2と同様に、演算結果f(S1,K1)が3つの値(S2,K2,R2)に分解される。   In the iteration step 5, an operation is performed by the one-way function f using S1 and K1 in the iteration step 4, and f (S1, K1) as a result of the operation is obtained. In the iteration step 6, as in the iteration step 2, the calculation result f (S1, K1) is decomposed into three values (S2, K2, R2).

即ち、特許文献1に記載された方法では、上述した一連の反復処理が所定の回数繰り返し行われ、その後、個々の反復処理にて求められたR1,R2,・・・などの疑似乱数の部分が合成されることによって、最終的に疑似乱数が得られる。このように、特許文献1に記載された方法によれば、既知のオブジェクトデータを用いて、擬似的に乱数列を発生することができる。   That is, in the method described in Patent Document 1, the above-described series of iterative processes is repeated a predetermined number of times, and thereafter, pseudorandom numbers such as R1, R2,. As a result, a pseudo-random number is finally obtained. As described above, according to the method described in Patent Document 1, it is possible to generate a random number sequence in a pseudo manner using known object data.

また、特許文献2には、レジスタと論理回路とが組み合わせられた疑似乱数発生回路により、擬似的な乱数列として、ランダム性に優れる大量の2値パターンを高速に生成する技術が開示されている。   Patent Document 2 discloses a technique for generating a large number of binary patterns excellent in randomness as a pseudo-random number sequence by a pseudo-random number generation circuit in which a register and a logic circuit are combined. .

特表2009−512930号公報Special table 2009-512930 特開平09−282146号公報JP 09-282146 A

ところで、例えば特許文献1に開示された方法において、疑似乱数発生装置が生成する乱数の値の範囲(以下、「乱数列が採り得る値域」、或いは「乱数列の値域」と略称することがある)が変更された場合を考える。この場合、その変更後に生成される乱数列に含まれる乱数の値のうち、その変更前に生成される乱数の範囲にも含まれる乱数の値は、係る変更前に当該疑似乱数発生装置が生成する乱数の順番を維持するとは限られず、且つ、係る変更前の乱数列に含まれる乱数の値を採るとも限られない。   By the way, in the method disclosed in Patent Document 1, for example, the range of the value of the random number generated by the pseudo-random number generator (hereinafter, referred to as “value range that the random number sequence can take” or “value range of the random number sequence” may be abbreviated). ) Is changed. In this case, among the random number values included in the random number sequence generated after the change, the random number values that are also included in the range of random numbers generated before the change are generated by the pseudo random number generator before the change. The order of random numbers to be performed is not limited, and the random number value included in the random number sequence before the change is not necessarily taken.

そこで、本発明は、発生する乱数列が採り得る値域が変更されたとしても、その変更後の乱数列に含まれる乱数の値のうち、当該変更前に生成する乱数列が採り得る値域に含まれる乱数の値が、当該変更前に生成する乱数の順番を維持すると共に、当該変更前の乱数列に含まれる乱数の値を採る乱数発生装置、乱数発生方法、オブジェクト配置装置、並びにコンピュータ・プログラムを提供することを主たる目的とする。   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.

本発明の模範的な第1の実施形態に係る乱数発生装置(疑似乱数発生装置)の構成を示すブロック図である。1 is a block diagram illustrating a configuration of a random number generation device (pseudorandom number generation device) according to a first exemplary embodiment of the present invention. 本発明の模範的な第2の実施形態における乱数発生装置の構成を示すブロック図である。It is a block diagram which shows the structure of the random number generator in exemplary 2nd Embodiment of this invention. 第2の実施形態における個々のサブ乱数発生機能102が生成する乱数列の値域の関係と、乱数選択機能103が選択する乱数との関係を説明する図である。It is a figure explaining the relationship between the range of the random number sequence which the sub-random number generation function 102 in 2nd Embodiment produces | generates, and the random number which the random number selection function 103 selects. 本発明の第2の実施形態に係る乱数選択機能103の動作を表すフローチャートである。It is a flowchart showing operation | movement of the random number selection function 103 which concerns on the 2nd Embodiment of this invention. 本発明の各実施形態に係る乱数発生装置を実現可能な情報処理装置1000のハードウエア構成の一例を示す図である。It is a figure which shows an example of the hardware constitutions of the information processing apparatus 1000 which can implement | achieve the random number generator which concerns on each embodiment of this invention. 本発明の第1及び第2の実施形態に係る実施例におけるオブジェクト配置装置500のハードウエア構成を概念的に説明する図である。It is a figure which illustrates notionally the hardware constitutions of the object arrangement | positioning apparatus 500 in the Example which concerns on the 1st and 2nd Embodiment of this invention. 本発明の第1及び第2の実施形態に係る実施例における複数のストレージノードの記憶容量を、1次元空間における部分空間として表した例を示す図である。It is a figure which shows the example which represented the storage capacity of the some storage node in the Example which concerns on the 1st and 2nd Embodiment of this invention as a partial space in one-dimensional space. 本発明の第1及び第2の実施形態に係る実施例における部分空間とストレージノードとの対応表300を表す図である。It is a figure showing the correspondence table 300 of the partial space and storage node in the Example which concerns on the 1st and 2nd Embodiment of this invention. 本発明の第1及び第2の実施形態に係る実施例におけるストレージノードの記憶容量を、2次元空間における部分空間として表した例を示す図である。It is a figure which shows the example which represented the storage capacity of the storage node in the Example which concerns on the 1st and 2nd Embodiment of this invention as a partial space in a two-dimensional space. 特許文献1に記載された方法の手順を説明する図である。It is a figure explaining the procedure of the method described in patent document 1. FIG.

次に、本発明を模範的に実施する形態及びその実施例について、図面を参照して詳細に説明する。   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 number generation device 10 has a random number generation function 12. The random number generation function 12 has a function of generating a random number (pseudorandom number) as described below based on seed information (initial value) 14 given from the outside, and outputting the generated random number 16. The random number range information 15 is a range of values that can be taken by the random number sequence generated by the random number generation function 12 (hereinafter, abbreviated as “range of random number sequence”) from outside the random number generation device 10 (random number generation function 10). 12) information to be specified. The random number range information 15 is set in the random number generator 10 by a user using the random number generator 10 using an appropriate UI (user interface) or by an external device via a communication line (not shown). May be.

ここで、乱数の範囲情報(乱数列の値域を表す情報)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 object placement apparatus 500 described later with reference to FIG. 6, the random number range information 15 is used when the remaining capacity (free space) that can be stored by the object placement destination has decreased, The data is supplied to the random number generation device 10 when a system specification change such as deletion of a destination or addition of a new placement destination occurs.

そして、本実施形態において、係る乱数発生装置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 number generation function 12 can generate the same random number sequence when the same information that is the basis of a random number (that is, a pseudo random number) is given as a seed (initial value). Further, the random number generation function 12 can generate a plurality of types of random number sequences having different ranges of the generated random number sequence based on the random number range information 15.

尚、本実施形態において個々の乱数列を算出する手順自体には、現在では一般的な手法を採用することができるので、本実施形態における詳細な説明は省略する。   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 number generation function 12 can determine whether or not the random number A included in the range of the random number sequence of interest is in a relationship included in the range of another random number sequence different from the range.

そして、乱数発生機能12は、上記判断よって当該関係が成立すると判断した場合、当該他の乱数列の値域に含まれる関係にある乱数A(当該注目する乱数列の乱数)と、当該注目する乱数列の値域に含まれる当該他の乱数列の乱数Bとが、同一の値であり、且つ乱数発生装置10が発生すべき乱数列に同一の順番で出現する乱数列(乱数16)を出力する。   If the random number generation function 12 determines that the relationship is established by the above determination, the random number A (the random number of the random number sequence of interest) that is included in the range of the other random number sequence and the random number of interest A random number sequence (random number 16) that has the same value as the random number B of the other random number sequence included in the range of the sequence and appears in the same order in the random number sequence to be generated by the random number generation device 10 is output. .

このような乱数発生装置10によれば、発生すべき乱数列の値域が乱数の範囲情報15に応じて変更された場合であっても、その変更後の乱数列に含まれる乱数の値のうち、当該変更前に生成する乱数列の値域に含まれる乱数の値は、当該変更前に生成する乱数の順番を維持すると共に、当該変更前の乱数列に含まれる乱数の値である。   According to such a random number generation device 10, even if the range of the random number sequence to be generated is changed according to the random number range information 15, out of the random number values included in the changed random number sequence The random number value included in the range of the random number sequence generated before the change is the value of the random number included in the random number sequence before the change while maintaining the order of the random numbers generated before the change.

尚、本実施形態において、乱数列には、数値の列とは限定されず、例えば、文字、識別子、及びビット列、座標等がなす様々な種類の列を採用可能である(以下の実施形態においても同様である)。   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 number generation device 100 includes a seed providing function 101, a plurality of sub-random number generation functions 102, and a random number selection function 103. The random number generation device 100 is a device that generates a random number 106 based on the input seed information 104a. The value of the random number 106 is included in the random number sequence generated after the change even if the range of the random number sequence generated by the random number generation device 100 is changed according to the seed information 104a, and before the change. The random number value included in the range of the random number sequence generated by the own device is a value that maintains the order of the random number values generated by the own device before the change even after the change.

シード提供機能101は、外部から受け取ったシード情報104aに基づいて、個々のサブ乱数発生機能102に設定するシード(シード情報)104bを生成する。即ち、シード提供機能101は、シード情報104aとしてある値を入手するのに応じて、所定の関係を満足する複数種類のシードからなるシード情報104bを生成する。この所定の関係は、当該個々のサブ乱数発生機能102別に異なるシード情報104bが生成されるように、例えば関数やテーブル等によって定められていてもよい。この場合、シード提供機能101は、シード情報104aに基づいて、係る関数やテーブル等を用いて、当該個々のサブ乱数発生機能102別に異なるシード情報104bを生成する。   The seed providing function 101 generates a seed (seed information) 104b to be set in each sub-random number generation function 102 based on the seed information 104a received from the outside. That is, the seed providing function 101 generates seed information 104b including a plurality of types of seeds that satisfy a predetermined relationship in response to obtaining a certain value as the seed information 104a. This predetermined relationship may be determined by, for example, a function or a table so that different seed information 104b is generated for each individual sub-random number generation function 102. In this case, the seed providing function 101 generates different seed information 104b for each individual sub-random number generation function 102 using such a function or table based on the seed information 104a.

そして、シード提供機能101は、生成したシード情報104bを、当該個々のサブ乱数発生機能102に設定する。即ち、本実施形態において、シード提供機能101は、入力されたシード情報104aが同じであれば、同一のサブ乱数発生機能102に対しては、同じ内容のシード104bを提供する。   Then, the seed providing function 101 sets the generated seed information 104b in the individual sub-random number generation function 102. That is, in the present embodiment, the seed providing function 101 provides the same seed 104b with the same content to the same sub-random number generation function 102 if the input seed information 104a is the same.

サブ乱数発生機能102は、シード提供機能101から受け取ったシード情報104bに基づいて乱数を発生する。サブ乱数発生機能102は、受け取ったシード情報104bが同一であれば、同じ乱数列を生成する。このサブ乱数発生機能102による乱数の生成手順自体には、現在では一般的な技術を採用できるので、本実施形態における詳細な説明は省略する。   The sub-random number generation function 102 generates a random number based on the seed information 104b received from the seed provision function 101. If the received seed information 104b is the same, the sub random number generation function 102 generates the same random number sequence. Since a general technique can be used for the random number generation procedure itself by the sub-random number generation function 102, detailed description in this embodiment will be omitted.

但し、本実施形態において、図2に示す個々のサブ乱数発生機能102は、発生する乱数列の値域がそれぞれ異なる。ここで、互いに異なる値域に関する情報は、例えば、外部より設定される乱数の範囲情報105に応じて、乱数選択機能103またはシード提供機能101が生成した結果を、当該個々のサブ乱数発生機能102に対して、乱数選択機能103またはシード提供機能101が設定する構成が想定できる。或いは、乱数の範囲情報105自体は、当該個々のサブ乱数発生機能102に指定すべき値域を含んでいてもよい。   However, in this embodiment, each sub-random number generation function 102 shown in FIG. 2 has a different range of generated random number sequences. Here, the information regarding the different value ranges, for example, the result generated by the random number selection function 103 or the seed provision function 101 in accordance with the random number range information 105 set from the outside is sent to the individual sub-random number generation function 102. On the other hand, a configuration set by the random number selection function 103 or the seed provision function 101 can be assumed. Alternatively, the random number range information 105 itself may include a range to be specified for the individual sub-random number generation function 102.

そして、本実施形態に係る複数のサブ乱数発生機能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 number generation function 102 and the random number selected by the random number selection function 103 in the second embodiment. In FIG. 3, the range related to the sub-random number generation function B is a real number from −1 to 8. On the other hand, the range related to the sub-random number generation function A is a real number from 0 to 4. When there is such a relationship, the random number selection function 103 selects a random number generated by the sub-random number generation function A in a range where the value ranges related to the two sub-random number generation functions (A and B) overlap. Then, the random number selection function 103 selects a random number generated by the sub-random number generation function B in a range in which the ranges related to the two sub-random number generation functions (A and B) do not overlap.

ここで、上述した関係を一般化して換言すると、乱数選択機能103は、複数のサブ乱数発生機能102のうち特定のサブ乱数発生機能102によって生成される特定の乱数が、その特定のサブ乱数発生機能102によって生成される乱数列の値域よりも狭い他の乱数列の値域に含まれる関係にあるか否かを判断する。   Here, to generalize the above relationship, in other words, the random number selection function 103 generates the specific sub-random number generated by the specific sub-random number generation function 102 among the plurality of sub-random number generation functions 102. It is determined whether or not the relationship is included in the range of another random number sequence that is narrower than the range of the random number sequence generated by the function 102.

そして乱数選択機能103は、係る判断において当該関係が成立すると判断した場合には、その関係が成立するか否かを、当該狭い値域を有する他の乱数列のうち、当該注目する乱数列の値域の次に広い値域を採り得る他の乱数列を比較対象として順次判断する。その過程において、乱数選択機能103は、当該特定の乱数が含まれ、且つ係る関係が成立する最も値域が狭い乱数列を生成する他のサブ乱数発生機能102を選択する。そして乱数選択機能103は、当該選択した他のサブ乱数発生機能102が生成する乱数列の中から、当該特定の乱数を生成する際に用いる同一の情報を基に生成した他の乱数を、出力すべき乱数106として選択する。   If the random number selection function 103 determines that the relationship is established in the determination, the random number selection function 103 determines whether the relationship is established or not, among other random number sequences having the narrow range, the range of the random number sequence of interest. Next, another random number sequence that can take the next wide range is sequentially determined as a comparison target. In the process, the random number selection function 103 selects another sub-random number generation function 102 that generates a random number sequence that includes the specific random number and has the narrowest range in which the relationship is established. Then, the random number selection function 103 outputs another random number generated based on the same information used when generating the specific random number from the random number sequence generated by the selected other sub-random number generation function 102. The random number 106 to be selected is selected.

一方、乱数選択機能103は、係る判断において当該関係が成立せず、当該特定のサブ乱数発生機能102によって生成される特定の乱数が、生成する乱数列の値域が当該特定のサブ乱数選択機能102よりも狭い他のサブ乱数選択機能102によって生成される乱数列の値域に含まれないと判断した場合には、当該特定の乱数を、出力すべき乱数106として選択する。   On the other hand, the random number selection function 103 does not hold the relationship in the determination, and the specific random number generated by the specific sub-random number generation function 102 is generated. When it is determined that it is not included in the range of the random number sequence generated by the narrower sub-random number selection function 102, the specific random number is selected as the random number 106 to be output.

即ち、本実施形態に係る乱数発生装置100において、乱数選択機能103は、注目する乱数列の値域に含まれる特定の乱数が、その値域よりも狭い他の乱数列の値域に含まれる関係が成立するか否かを判断する。そして、乱数選択機能103は、係る関係が成立する場合には、その関係が成立するか否かを、当該狭い値域の他の乱数列のうち、当該注目する乱数列の値域の次に広い値域を採り得る他の乱数列を比較対象として順次判断する過程において、当該特定の乱数が含まれ、且つ当該関係が成立する最も値域が狭い乱数列の中から、該特定の乱数を生成する際に用いる同一の情報を基に生成した他の乱数を選択する。この動作の一方で、乱数選択機能103は、当該注目する乱数列の値域よりも狭い他の乱数列の値域に当該特定の乱数が含まれない場合には、その特定の乱数を選択する。   That is, in the random number generation device 100 according to the present embodiment, the random number selection function 103 establishes a relationship in which a specific random number included in the range of the random number sequence of interest is included in the range of another random number sequence that is narrower than that range. Judge whether to do. Then, when the relationship is established, the random number selection function 103 determines whether or not the relationship is established, among the other random number sequences in the narrow range of values, the wide range next to the range of the random number sequence of interest. In the process of sequentially determining other random number sequences that can adopt the comparison target as the comparison target, when generating the specific random number from among the random number sequences that include the specific random number and have the narrowest range of values for which the relationship is established Select another random number generated based on the same information to be used. On the other hand, if the specific random number is not included in the range of the other random number sequence that is narrower than the range of the random number sequence of interest, the random number selection function 103 selects the specific random number.

このような処理手順により、乱数選択機能103は、発生すべき乱数列(乱数106)を構成する。   By such processing procedure, the random number selection function 103 configures a random number sequence (random number 106) to be generated.

ここで、乱数選択機能103は、乱数発生装置100の外部から受け取った乱数の範囲情報(値域)105に基づいて、個々のサブ乱数発生機能102の動作を制御することができる。即ち、乱数選択機能103は、当該複数のサブ乱数発生機能102が発生すべき乱数列の値域を、外部から取得することによって把握することができる。   Here, the random number selection function 103 can control the operation of each sub-random number generation function 102 based on random number range information (value range) 105 received from the outside of the random number generation device 100. That is, the random number selection function 103 can grasp the range of the random number sequence to be generated by the plurality of sub-random number generation functions 102 by acquiring from the outside.

そして、乱数選択機能103は、係る制御に応じて個々のサブ乱数発生機能102が出力する乱数列の中から、乱数発生装置100の外部に出力すべき乱数106を選択する。この選択動作の過程において、当該個々のサブ乱数発生機能102は、それぞれが乱数列を生成する装置構成であっても、或いは、乱数選択機能103による判断の過程において乱数列の生成が必要と判断された特定のサブ乱数発生機能102だけが乱数列を生成する装置構成であってもよい。   Then, the random number selection function 103 selects the random number 106 to be output to the outside of the random number generation device 100 from the random number sequence output by each sub-random number generation function 102 in accordance with such control. In the process of this selection operation, each of the sub-random number generation functions 102 determines that it is necessary to generate a random number sequence in the determination process by the random number selection function 103 even if each of the sub-random number generation functions 102 has a device configuration that generates a random number sequence. Only the specified sub-random number generation function 102 may be configured to generate a random number sequence.

次に、上述した乱数選択機能103の動作を実現する具体例について、図4を参照して詳細に説明する。   Next, a specific example for realizing the operation of the random number selection function 103 will be described in detail with reference to FIG.

図4は、本発明の第2の実施形態に係る乱数選択機能103の動作を表すフローチャートである。   FIG. 4 is a flowchart showing the operation of the random number selection function 103 according to the second embodiment of the present invention.

まず、乱数選択機能103は、複数のサブ乱数発生機能102の中から、特定のサブ乱数発生機能102を選択する(ステップS1)。このとき選択される特定のサブ乱数発生機能102とは、当該複数のサブ乱数発生機能102のうち、当該特定のサブ乱数発生機能102以外の全てのサブ乱数発生機能102が出力する乱数列の値域を含むような乱数列の値域を有するサブ乱数発生機能である。即ち、本実施形態において、複数のサブ乱数発生機能102は、発生する乱数列の値域が互いに異なり、一方のサブ乱数発生機能102に係る値域が、他方のサブ乱数発生機能102の値域を含む関係を有する。このため、本ステップにおいて選択されるサブ乱数発生機能102は、発生する乱数列の値域が最も広いサブ乱数発生機能102である装置構成が想定される。   First, the random number selection function 103 selects a specific sub-random number generation function 102 from the plurality of sub-random number generation functions 102 (step S1). The specific sub-random number generation function 102 selected at this time is a range of random number sequences output from all the sub-random number generation functions 102 other than the specific sub-random number generation function 102 among the plurality of sub-random number generation functions 102 This is a sub-random number generation function having a range of a random number sequence including. That is, in the present embodiment, the plurality of sub-random number generation functions 102 have different ranges of generated random number sequences, and the range related to one sub-random number generation function 102 includes the range of the other sub-random number generation function 102 Have Therefore, it is assumed that the sub-random number generation function 102 selected in this step is a device configuration that is the sub-random number generation function 102 having the widest range of the generated random number sequence.

乱数選択機能103は、ステップS1にて選択した当該特定のサブ乱数発生機能102が乱数を発生するように制御(指示)する(ステップS2)。   The random number selection function 103 performs control (instruction) so that the specific sub-random number generation function 102 selected in step S1 generates a random number (step S2).

次に、乱数選択機能103は、当該複数のサブ乱数発生機能102の中から、当該特定のサブ乱数発生機能102よりも、発生する乱数列の値域が狭いサブ乱数発生機能102が存在するか否かを判断する(ステップS3)。乱数選択機能103は、ステップS3における判断を、例えば、上記の如く外部から受け取った乱数の範囲情報(値域)105に基づいて行うことができる。   Next, the random number selection function 103 determines whether there is a sub-random number generation function 102 having a narrower range of the generated random number sequence than the specific sub-random number generation function 102 among the plurality of sub-random number generation functions 102. Is determined (step S3). The random number selection function 103 can make the determination in step S3 based on, for example, random number range information (value range) 105 received from the outside as described above.

乱数選択機能103は、ステップS3における判断の結果、発生する乱数列の値域が狭いサブ乱数発生機能102が存在すると判断した場合(ステップS3にてYES)、処理をステップS4に進める。   If the random number selection function 103 determines that the sub-random number generation function 102 having a narrow range of the generated random number sequence exists as a result of the determination in step S3 (YES in step S3), the process proceeds to step S4.

乱数選択機能103は、ステップS3にて検出したサブ乱数発生機能102のうち、発生する乱数列の値域が最も広いサブ乱数発生機能102を検出する。そして乱数選択機能103は、検出したサブ乱数発生機能102が発生する乱数列の値域に、ステップS2にて生成された乱数(注目する乱数」と称する場合がある)が含まれるか否かを判断する(ステップS4)。   The random number selection function 103 detects the sub random number generation function 102 having the widest range of the generated random number sequence from the sub random number generation functions 102 detected in step S3. Then, the random number selection function 103 determines whether or not the random number sequence generated by the detected sub-random number generation function 102 includes the random number generated in step S2 (sometimes referred to as a “random number of interest”). (Step S4).

乱数選択機能103は、ステップS4における判断の結果、当該注目する乱数が、ステップS4にて検出したサブ乱数発生機能102が発生する乱数列の値域に含まれると判断した場合(ステップS4にてYES)、処理をステップS5に進める。   When the random number selection function 103 determines that the target random number is included in the range of the random number sequence generated by the sub-random number generation function 102 detected in step S4 as a result of the determination in step S4 (YES in step S4) ), The process proceeds to step S5.

乱数選択機能103は、ステップS4にて検出したサブ乱数発生機能102を用いて、新たに乱数を生成し、生成した乱数を新たに注目する乱数として、処理をステップS3に戻す(ステップS5)。   The random number selection function 103 newly generates a random number using the sub-random number generation function 102 detected in step S4, and returns the processing to step S3 as a random number to which attention is newly generated (step S5).

一方、乱数選択機能103は、ステップS3における判断の結果、現在注目する乱数を生成したサブ乱数発生機能102よりも値域が狭いサブ乱数発生機能102は存在しないと判断した場合(ステップS3にてNO)、或いは、当該注目する乱数が、ステップS4にて検出したサブ乱数発生機能102の発生する乱数列の値域に含まれないと判断した場合(ステップS4にてNO)、処理をステップS6に進める。   On the other hand, if the random number selection function 103 determines in step S3 that there is no sub-random number generation function 102 having a narrower range than the sub-random number generation function 102 that generated the current random number (NO in step S3). Or if it is determined that the random number of interest is not included in the range of the random number sequence generated by the sub-random number generation function 102 detected in step S4 (NO in step S4), the process proceeds to step S6. .

乱数選択機能103は、本ステップの実行に先だって最後に生成した乱数(即ち、現在注目する乱数)を、乱数発生装置100が出力すべき乱数106として選択(決定)する(ステップS6)。   The random number selection function 103 selects (determines) the last generated random number (that is, the current random number of interest) as the random number 106 to be output by the random number generation device 100 (step S6).

即ち、乱数選択機能103は、ステップS2にて最初に乱数(注目する乱数)を生成した後、上述したステップS3からステップS5までの処理を繰り返す。これにより、乱数選択機能103は、発生する乱数列の値域がより狭いサブ乱数発生機能102を特定すると共に、特定できた場合は当該特定したサブ乱数発生機能102によって発生した乱数を新たな注目する乱数として選択する処理を繰り返す。そして、係る繰り返しの過程において、乱数選択機能103は、これ以上狭い値域のサブ乱数発生機能102が存在しないと判断した場合には、当該狭い値域のサブ乱数発生機能102によって生成した乱数を、出力すべき乱数106として選択する訳である。   That is, the random number selection function 103 first generates a random number (a random number of interest) in step S2, and then repeats the processing from step S3 to step S5 described above. Thereby, the random number selection function 103 identifies the sub-random number generation function 102 in which the range of the generated random number sequence is narrower, and if it can be identified, newly pays attention to the random number generated by the identified sub-random number generation function 102 Repeat the process of selecting as a random number. When the random number selection function 103 determines that there is no narrower range sub-random number generation function 102 in the repetition process, the random number generated by the narrow range sub-random number generation function 102 is output. The random number 106 to be selected is selected.

ここで、上述した一連の処理を一般化して説明する。即ち、本実施形態において、当該複数のサブ乱数発生機能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 number selection function 103 determines whether or not the first random number generated by the first random number generation function is included in the value range of the second random number sequence generated by the second random number generation function. The first process to be determined can be executed. In addition, when it is determined that the random number selection function 103 is included in the first process, the second random number selection function 103 can execute a second process of selecting the second random number generated by the second random number generation function. . Then, each time the second random number is selected in the second process, the random number selection function 103 sets the second random number as a new first random number, the first process, the second process, Repeat. In the repetition process, the random number selection function 103 includes the first random number generated by the first random number generation function in the range of the second random number sequence generated by the second random number generation function. If it is determined that there is no random number 106, the first random number generated by the first random number generation function is selected as the random number 106 to be output.

上述した本実施形態に係る乱数発生装置100によれば、発生する乱数列の値域が変更されたとしても、その変更後の乱数列に含まれる乱数の値のうち、当該変更前に生成する乱数列の値域に含まれる乱数の値が、当該変更前に生成する乱数の順番を維持すると共に、当該変更前の乱数列に含まれる乱数の値を厳密且つ迅速に決定することができる。   According to the random number generation device 100 according to the present embodiment described above, even if the range of the generated random number sequence is changed, the random number generated before the change among the random number values included in the changed random number sequence The random number value included in the range of the column maintains the order of the random numbers generated before the change, and the random value included in the random number sequence before the change can be determined strictly and quickly.

尚、サブ乱数発生機能102が略一様な乱数の値を発生する場合、乱数発生装置100が発生する乱数の値は、略一様になる。ここで、乱数の値が略一様であるとは、係る乱数発生装置100が発生する乱数列の値域において、その乱数列をなす個々の乱数の値の分布状態が略均一な状態を表す(以下の説明においても同様である)。このことを換言すると、当該値域内に分布する個々の乱数の密度が略一様である、と捉えることもできる。   When the sub-random number generation function 102 generates a substantially uniform random number value, the random number value generated by the random number generation device 100 becomes substantially uniform. Here, the value of the random number being substantially uniform means that the distribution state of the individual random number values constituting the random number sequence is substantially uniform in the range of the random number sequence generated by the random number generation device 100 ( The same applies to the following description). In other words, it can be understood that the density of individual random numbers distributed in the value range is substantially uniform.

尚、上述した本実施形態では、サブ乱数発生機能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 number generation function 102 is a number (numerical string). However, the present invention is not limited to such a device configuration, and as described above, the present invention can employ, for example, various types of columns formed by characters, identifiers, bit strings, coordinates, and the like. The information generated by the random number generation device 100 is not limited to the number.

尚、サブ乱数発生装置102が発生する情報は単数ではなく複数の場合も考えられ、その場合、乱数発生装置100が発生する情報も複数である。   Note that the information generated by the sub-random number generator 102 may be a plurality of information instead of a single one. In this case, the information generated by the random number generator 100 is also a plurality.

[実施例]
次に、上述した乱数発生装置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 number generation devices 10 and 100 (FIGS. 1 and 2) described above are realized by an information processing device (computer). To explain.

図5は、本発明の各実施形態に係る乱数発生装置を実現可能な情報処理装置1000のハードウエア構成(ハードウェア資源)の一例を示す図である。   FIG. 5 is a diagram illustrating an example of a hardware configuration (hardware resource) of the information processing apparatus 1000 capable of realizing the random number generation device according to each embodiment of the present invention.

図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 storage device 404 is an example of a nonvolatile storage device.

上述したフローチャート(図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 CPU 401 after the information processing apparatus 1000 receives supply of a program capable of realizing such a function. To achieve. Further, the program supplied to the apparatus can be stored in a readable / writable RAM 403 or a hard disk (HDD) 404. Here, the RAM 403 is an example of a storage device that can be temporarily stored. The HDD 404 is an example of a nonvolatile storage device.

また、プログラムの供給方法は、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 object placement apparatuses 10 and 100 described above may be realized by dedicated hardware in which logic circuit devices and the like are appropriately combined. Alternatively, when the above-described object placement devices 10 and 100 are realized by an information processing device (computer), the information processing device performs a series of functions (processing) executed by the object placement devices 10 and 100 physically or virtually. Alternatively, it may be executed in a state distributed to a plurality of information processing apparatuses.

図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 object placement apparatus 500 in the example according to the first and second embodiments of the present invention. As illustrated in FIG. 6, the object placement apparatus 500 illustrated in FIG. 6 includes an object placement function 501 and, for example, the random number generation device 100 according to the second embodiment. As an example, five storage nodes (500a to 500e) are connected to the object placement apparatus 500. For example, it is assumed that the individual storage nodes (500a to 500e) are appropriately distributed on the communication network. In the following description, an example in which the object placement apparatus 500 is realized by the information processing apparatus 1000 will be described.

但し、ストレージノード(500a乃至500e)は、例えば、HDD404の内部に、仮想的に構成してもよい。   However, the storage nodes (500a to 500e) may be virtually configured in the HDD 404, for example.

係るオブジェクト配置装置500において、オブジェクト配置機能501は、オブジェクト(以下、「オブジェクトデータ」と称する場合がある)502の配置先を、そのオブジェクトに固有な情報を基に、上述した乱数発生装置100(10)によって生成される乱数を用いて、当該複数種類の乱数列の値域を表す空間の部分空間として少なくとも何れかの配置先が割り付けられている対応情報を参照することによって決定する。   In the object placement device 500, the object placement function 501 determines the placement destination of the object (hereinafter, also referred to as “object data”) 502 based on the information unique to the object. The random number generated by 10) is used by referring to correspondence information in which at least one placement destination is assigned as a partial space of the space representing the range of the plurality of types of random number sequences.

オブジェクト配置装置500は、ストレージノード500a乃至500eの中から、注目するオブジェクト(オブジェクトデータ)502を配置すべきストレージノードを、そのオブジェクト502が持つ識別子情報(ID)に基づいて選択する。係る選択に際して、オブジェクト配置装置500は、当該オブジェクトを、各ストレージノードが記憶可能な容量に略比例した確率で配置する。そして、オブジェクト配置装置500は、ストレージノードが追加もしくは削除された場合においても、最小限のデータ移動により、オブジェクトを、各ストレージノードが記憶可能な容量に略比例した確率で配置する、という性質を維持する。   The object placement apparatus 500 selects a storage node where the object of interest (object data) 502 should be placed from the storage nodes 500a to 500e based on the identifier information (ID) of the object 502. At the time of such selection, the object placement apparatus 500 places the object with a probability substantially proportional to the capacity that each storage node can store. The object placement device 500 has the property that even when a storage node is added or deleted, the object is placed with a probability that is approximately proportional to the capacity that each storage node can store, with minimal data movement. maintain.

本実施例では、係る性質を実現するために、オブジェクト配置装置500では1次元の連続した空間(即ち、数直線と捉えることもできる)を用意し、該空間上に各ストレージノードの容量に比例した部分空間を、互いに重複しないように各ストレージノードに割り当てる。   In this embodiment, in order to realize such a property, the object placement apparatus 500 prepares a one-dimensional continuous space (that is, it can also be regarded as a number line), and is proportional to the capacity of each storage node on the space. The allocated subspaces are allocated to the storage nodes so as not to overlap each other.

図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 storage nodes 500a to 500e represents the position in the one-dimensional space by one real number.

本実施例において、オブジェクト配置装置500は、上述した乱数発生装置100(10)を使用することによって乱数を発生する。オブジェクト配置装置500は、乱数発生装置100が発生する乱数の値の範囲を、乱数に対応する座標(即ち、本実施例では当該1次元空間:図7)が全てのストレージノードに割り当てられている部分空間を含むように設定する。乱数に対応する座標がストレージノードに割り当てられた部分空間を指し示している場合、オブジェクト配置装置500は、乱数に対応する座標が指し示している部分空間が割り当てられているストレージノードに対して、オブジェクトを配置する。   In the present embodiment, the object placement device 500 generates a random number by using the random number generation device 100 (10) described above. In the object placement device 500, the range of random values generated by the random number generation device 100 is assigned coordinates corresponding to the random numbers (that is, the one-dimensional space in this embodiment: FIG. 7) to all the storage nodes. Set to include subspace. When the coordinates corresponding to the random number indicate the partial space assigned to the storage node, the object placement apparatus 500 assigns the object to the storage node assigned the partial space indicated by the coordinate corresponding to the random number. Deploy.

一方、乱数に対応する座標がストレージノードに割り当てられた部分空間を指し示していない場合、オブジェクト配置装置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 object placement apparatus 500 will continue until the coordinates corresponding to the random number point to the partial space assigned to the storage node. And the determination of whether or not the coordinates corresponding to the random number point to the partial space assigned to the storage node is repeated.

本実施例において、ストレージノード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 storage nodes 500a to 500e have, for example, the storage capacity (maximum storage capacity) as shown in FIG. 6 and the following. That is,
Storage node 500a: 1.0 [TeraBytes],
Storage node 500b: 0.5 [TeraBytes],
Storage node 500c: 0.7 [TeraBytes],
Storage node 500d: 1.8 [TeraBytes],
Storage node 500e: 0.2 [TeraBytes].

図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 storage node 500a corresponds to a partial space from 0 to 1 (not including 1) in the one-dimensional space. The storage node 500b corresponds to a partial space of 1 to 1.5 (not including 1.5) on the one-dimensional space. The storage node 500c corresponds to a partial space from 2 to 2.7 (not including 2.7) in the one-dimensional space. The storage node 500d corresponds to subspaces 3 to 4 (not including 4) on the one-dimensional space and subspaces 5 to 5.8 (not including 5.8) on the same space. The storage node 500e corresponds to a subspace from 4 to 4.2 (excluding 4.2) on the one-dimensional space.

乱数発生装置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 object placement apparatus 500 will be described.

サブ乱数発生機能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 number generation device 100 uses only the sub-random number generation function 102A like the operation of the random number generation device 100 in the above-described embodiment.

この場合、サブ乱数発生機能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 number generation device 100 inside the object placement device 500, the sub-random number generation function 102A generates a random number.

まず、最も乱数列の値域が広いサブ乱数発生機能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 number generation function 102 whose range of the random number sequence is narrower than the sub-random number generation function 102A, the generated random number 1.7 is a random number that the random number generation device 100 should output. .

次に、オブジェクト配置装置500は、乱数が指し示す部分空間が存在するか否かを判定する。乱数は1.7であるため、図7及び図8に示した関係を考慮すると、この乱数が指し示す部分空間は存在しないことが判る。そのため、オブジェクト配置装置500内部の乱数発生装置100において、サブ乱数発生機能102Aは、新たな乱数を生成する。   Next, the object arrangement device 500 determines whether or not there is a partial space indicated by the random number. Since the random number is 1.7, it can be seen that there is no partial space pointed to by this random number in consideration of the relationship shown in FIGS. Therefore, in the random number generation device 100 inside the object placement device 500, the sub-random number generation function 102A generates a new random number.

即ち、サブ乱数発生機能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 number generation function 102 whose range of the random number sequence is narrower than the sub-random number generation function 102A, the random number 4.9 is a random number that the random number generation device 100 should output.

そして、サブ乱数発生機能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 number generation device 100.

そして、オブジェクト配置装置500は、係る乱数0.4が指し示す部分空間が存在するか否かを、図8(図7)を参照することによって判断する。するとこの場合、当該乱数0.4が指し示す部分空間(A)が存在し、該部分空間がストレージノード500aに対応することが判る。よって、この場合、オブジェクト配置装置500は、オブジェクトデータAを、ストレージノード500aに配置する。   Then, the object placement apparatus 500 determines whether or not there is a partial space indicated by the random number 0.4 by referring to FIG. 8 (FIG. 7). Then, in this case, it can be seen that there is a partial space (A) indicated by the random number 0.4, and the partial space corresponds to the storage node 500a. Therefore, in this case, the object placement apparatus 500 places the object data A on the storage node 500a.

ここで、サブ乱数発生機能(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 (storage nodes 500a to 500e in this embodiment) is selected as the placement destination of an object 502 is as follows: It is approximately proportional to the size (size) of the partial space corresponding to 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 object placement device 500, whereby the storage node 500f is changed from 6 to 6.3 in space (6.3 is included). Let us consider the case of mapping to a subspace of (No).

この場合、個々のオブジェクトデータを記憶するストレージノードが変更になる可能性があるため、オブジェクト配置装置500は、それらオブジェクトノードを記憶するストレージノードを再度計算する。ここでも、識別子情報“a”を持つオブジェクトデータAを配置すべきストレージノードを演算する場合を考える。   In this case, since there is a possibility that the storage nodes that store the individual object data are changed, the object placement apparatus 500 calculates the storage nodes that store the object nodes again. Here again, consider a case where a storage node in which object data A having identifier information “a” is to be placed is calculated.

この場合、ストレージノード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 number generation device 100 inside the object arrangement device 500 has a sub-random number space generation function 102B that can include not only the sub-random number generation function 102A but also the added partial space F. Decide to use.

まず、オブジェクト配置装置500は、識別子情報“a”に文章列“A”もしくは文章列“B”を追加し、追加後の文字列に関するハッシュを計算する。本実施例においては、文章列“A”に関して計算されたハッシュをハッシュAとし、文章列“B”に関して計算されたハッシュをハッシュBとする。   First, the object arrangement device 500 adds the sentence string “A” or the sentence string “B” to the identifier information “a”, and calculates a hash for the character string after the addition. In this embodiment, the hash calculated for the sentence string “A” is referred to as hash A, and the hash calculated for the sentence string “B” is referred to as hash B.

次に、オブジェクト配置装置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 number generation device 100 inside the object placement device 500 generates a random number using the hash B as a seed by the sub-random number generation function 102B having the widest range of the generated random number sequence. Here, it is assumed that the calculated random number is 3.0. In this case, the random number 3.0 is included in the range of the random number sequence of the sub-random number generation function 102A. Therefore, as described above with reference to FIG. 4, the random number generation device 100 does not adopt (output) the random number 3.0, but generates a sub-random number having a narrower range than the range related to the sub-random number generation function 102B. A new random number is generated by the function 102A. In this case, the sub-random number generation function 102A generates a random number using the hash A as a seed. Here, it is assumed that the calculated random number is 1.7. In this embodiment, there is no random number generation means having a narrower range of random number sequences than the sub-random number generation function 102A. Therefore, the random number 1.7 is a random number that the random number generation device 100 should output.

次に、オブジェクト配置装置500は、係る乱数1.7が指し示す部分空間が存在するか否かを判定するも、図8(図7)に示すように、この乱数に対応する部分空間は存在しない。そのため、乱数発生装置100は、乱数の発生を再度行う。   Next, the object placement apparatus 500 determines whether or not there is a partial space indicated by the random number 1.7. However, as shown in FIG. 8 (FIG. 7), there is no partial space corresponding to the random number. . Therefore, the random number generation device 100 performs random number generation again.

そこで、オブジェクト配置装置500内部の乱数発生装置100は、図4に示したフローチャートの手順に従って改めて乱数を生成する。即ち、乱数発生装置100は、発生する乱数列の値域が最も広いサブ乱数発生機能102Bにより、次の乱数を生成する。ここでは、算出された乱数が6.2であるとする。この場合、乱数6.2は、次に乱数列の値域が広いサブ乱数発生機能102Aの乱数列の値域に含まれない。このため、乱数6.2は、乱数発生装置100が出力すべき乱数である。   Therefore, the random number generation device 100 inside the object placement device 500 generates a random number again according to the procedure of the flowchart shown in FIG. That is, the random number generation device 100 generates the next random number by the sub-random number generation function 102B having the widest range of the generated random number sequence. Here, it is assumed that the calculated random number is 6.2. In this case, the random number 6.2 is not included in the range of the random number sequence of the sub-random number generation function 102A having the next wide range of the random number sequence. Therefore, the random number 6.2 is a random number that the random number generation device 100 should output.

そして、オブジェクト配置装置500は、係る乱数6.2が指し示す部分空間が存在するか否かを判定する。この場合、当該乱数6.2が指し示す部分空間Fが存在し、該部分空間Fには、ストレージノード500fが対応付する。そこで、オブジェクト配置装置500は、オブジェクトデータAを、ストレージノード500fに移動する。   Then, the object arrangement device 500 determines whether or not there is a partial space indicated by the random number 6.2. In this case, there is a partial space F indicated by the random number 6.2, and the storage node 500f is associated with the partial space F. Therefore, the object placement apparatus 500 moves the object data A to the storage node 500f.

本実施例に係るオブジェクト配置装置500では、配置先(ストレージノード)が追加された場合、追加した配置先にのみオブジェクトデータが移動する。係るオブジェクト配置装置500において、そのオブジェクト配置装置が備える乱数生成装置100が略一様に乱数を生成する。乱数発生装置100が発生する乱数列の値域が全ての部分空間を含むとき、追加した配置先を含め、個々の配置先に対応する乱数が選ばれる可能性は、各配置先に対応する部分空間の広さ(大きさ)に略比例するという性質がある。   In the object placement apparatus 500 according to the present embodiment, when the placement destination (storage node) is added, the object data moves only to the added placement destination. In the object placement device 500, the random number generation device 100 included in the object placement device generates random numbers substantially uniformly. When the range of the random number sequence generated by the random number generation device 100 includes all partial spaces, the possibility that random numbers corresponding to the individual arrangement destinations including the added arrangement destinations are selected is the partial space corresponding to each arrangement destination. There is a property that it is approximately proportional to the size (size) of.

このような性質を、乱数列の値域が変更された場合においても維持するためには、上述した第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 random number generators 10 and 100 described in the present example. Among the random number values included in the changed random number sequence, the random number values included in the range of the random number sequence generated before the change maintain the order of the random numbers generated before the change, and the change A random number generator capable of generating a random number value included in the previous random number sequence is required.

(ストレージノードの削除)
次に、オブジェクト配置装置500からストレージノード500fを削除する場合を考える。この場合、個々のオブジェクトデータを記憶するストレージノードが変更になる可能性があるため、オブジェクト配置装置500は、それらオブジェクトノードを記憶するストレージノードを再度計算する。ここでも、識別子情報“a”を持つオブジェクトデータAを配置するストレージノードを演算する場合を考える。
(Delete storage node)
Next, consider a case where the storage node 500f is deleted from the object placement apparatus 500. In this case, since there is a possibility that the storage nodes that store the individual object data are changed, the object placement apparatus 500 calculates the storage nodes that store the object nodes again. Here again, consider a case where a storage node in which object data A having identifier information “a” is arranged is calculated.

サブ乱数発生機能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 object arrangement device 500, the random number generation device 100 uses only the sub-random number generation function 102A.

まず、乱数発生装置100は、識別子情報“a”に文章列“A”を追加し、追加した文字列に関するハッシュを計算する。文章列“A”に関するハッシュをハッシュAとする。   First, the random number generation device 100 adds the sentence string “A” to the identifier information “a” and calculates a hash for the added character string. A hash related to the sentence string “A” is a hash A.

次に、オブジェクト配置装置500において、乱数発生装置100は、乱数を生成する。この場合も、乱数発生装置100は、乱数列の値域が最も広いサブ乱数発生機能102Aにより、ハッシュAをシードとして用いて乱数を発生する。ここでは、算出された乱数が1.7であるとする。そしてこの場合、乱数列の値域がサブ乱数発生機能102Aの次に広いサブ乱数発生機能102は存在しない。このため、乱数1.7は、乱数発生装置100が出力すべき乱数である。そして、係る乱数1.7が指し示す部分空間は存在しないので、乱数発生装置100は、乱数の生成を再度行う。   Next, in the object placement device 500, the random number generation device 100 generates a random number. Also in this case, the random number generation device 100 generates a random number 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 calculated random number is 1.7. In this case, there is no sub-random number generation function 102 whose range of the random number sequence is next to the sub-random number generation function 102A. Therefore, the random number 1.7 is a random number that the random number generation device 100 should output. Since there is no partial space indicated by the random number 1.7, the random number generation device 100 generates a random number again.

そして、乱数発生装置100において、サブ乱数発生機能102Aによって次に算出された乱数が4.9であるとする。この場合も、サブ乱数発生機能102Aによって生成された乱数4.9が採用されるべき乱数であるが、係る乱数4.9が指し示す部分空間はやはり存在しないので、乱数発生装置100は、乱数の生成を再度行う。   In the random number generation device 100, the next random number calculated by the sub-random number generation function 102A is 4.9. Also in this case, the random number 4.9 generated by the sub-random number generation function 102A is a random number to be adopted. However, since the partial space indicated by the random number 4.9 still does not exist, the random number generation device 100 performs the random number generation. Generate again.

この場合、乱数発生装置100は、サブ乱数発生機能102Aにより改めて乱数を生成する。そしてこの場合、算出された乱数が0.4であるとすると、この乱数に対応する部分空間Aが存在するので、オブジェクト配置装置500は、その部分空間Aに対応するストレージノード500aに、オブジェクトデータAを移動する。   In this case, the random number generation device 100 generates a random number again by the sub-random number generation function 102A. In this case, if the calculated random number is 0.4, there is a partial space A corresponding to this random number, so the object placement device 500 sends object data to the storage node 500a corresponding to the partial space A. Move A.

オブジェクト配置装置500では、配置先(ストレージノード)が削除された場合、削除した配置先に配置されていたオブジェクトデータのみが移動する。係るオブジェクト配置装置500において、そのオブジェクト配置装置が備える乱数生成装置100が略一様に乱数を生成する。乱数発生装置100の乱数列の値域が全ての部分空間を含む場合、残った配置先のうち、削除された特定の配置先に記憶されていたオブジェクトデータの新たな配置先として選ばれる可能性は、当該残った配置先それぞれに対応する部分空間の広さ(大きさ)に略比例するという性質がある。   In the object placement apparatus 500, when the placement destination (storage node) is deleted, only the object data placed at the deleted placement destination is moved. In the object placement device 500, the random number generation device 100 included in the object placement device generates random numbers substantially uniformly. When the range of the random number sequence of the random number generation device 100 includes all the partial spaces, the possibility of being selected as a new arrangement destination of the object data stored in the deleted specific arrangement destination among the remaining arrangement destinations. , There is a property of being approximately proportional to the width (size) of the partial space corresponding to each of the remaining placement destinations.

このような性質を乱数列の値域が変更された場合においても維持するためには、上述した第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 random number generators 10 and 100 described in the present example, Among the random number values included in the changed random number sequence, the random number values included in the range of the random number sequence generated before the change maintain the order of the random numbers generated before the change, and before the change A random number generator capable of generating a random number value included in the random number sequence is required.

以上説明したように、本実施例に係るオブジェクト配置装置500によれば、オブジェクトの配置先であるストレージノードを、そのストレージノードの記憶容量に合わせた長さの線分として1次元空間(数直線)に予め割り付け、乱数発生装置100は、注目する乱数の値が、当該割り付けられた線分の数値範囲に含まれるまで乱数の発生を繰り返す。そして、乱数発生装置100が生成したある乱数が何れかのストレージノードを割り付けた当該1次元空間上の数に一致したとき、その数に対応するストレージノードをオブジェクトの配置先であると決定する。   As described above, according to the object placement apparatus 500 according to the present embodiment, a storage node that is an object placement destination is represented as a one-dimensional space (several lines) as a line segment having a length matching the storage capacity of the storage node. The random number generation device 100 repeats generation of random numbers until the random number value of interest is included in the numerical range of the allocated line segment. When a certain random number generated by the random number generation device 100 matches the number in the one-dimensional space to which any storage node is assigned, the storage node corresponding to the number is determined as the object placement destination.

このような処理構成の本実施例によれば、上記の一連の処理を行う場合に、乱数列の値域を変更することが可能である。これにより、乱数列の値域が固定の場合に比べて次のような利点がある。   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 object placement device 500 changes the number of storage nodes (simply the number) in response to changing the range of the random number sequence by the random number range information 105 set from the outside. Even when the number increases compared to the quantity assumed in advance, the range of the random number sequence on the number line (one-dimensional space) can be expanded. In the object placement apparatus 500, the random number values included in the random number sequence after the range is newly expanded and also included in the range before the change are the order (occurrence order) in the random number sequence before and after the change. Can be maintained as it is. In other words, according to the object placement device 500, even when a situation in which the range of the random number sequence needs to be expanded occurs, it is possible to flexibly deal with and to change the storage node to be stored. The number of cases can be minimized.

また、乱数列の値域が固定された装置構成の場合、ストレージノードが部分空間として割り付けられている数直線上の領域が非常に狭い場合、乱数列の値域を変更することができない。この場合、乱数の発生を何度も繰り返す必要がある場合があり、このような場合には最終的に割り付け先が決定されるまでに時間を要するという問題がある。   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 object placement apparatus 500 according to the present embodiment, even if the area on the number line to which the storage node is allocated as a partial space is very narrow, the random number range information 105 can be used from the outside. In response to the instruction, the range of the random number sequence can be narrowed according to the narrow region. This means that the number of occurrences of random numbers can be reduced. Therefore, according to the object arrangement device 500, the processing speed can be increased.

このように、本実施例に係るオブジェクト配置装置500によれば、上記の如く採用すべき値域の大きさを柔軟に変更できる。このため、オブジェクト配置装置500を用いてオブジェクトをストレージノードに配置するシステムにおいては、運用開始に際して過大に大きな余裕を持った広い値域の乱数列を考慮しなくてもよい。即ち、係るシステムは、運用開始当初には必要最小限の値域を発生する乱数を用意し、その値域に最小限のストレージノードを部分空間として割り付ければよい。このことを換言すると、運用開始当初に少ない数量のストレージノードが必要なのにも関わらず、新たなストレージノードの将来の増設を考慮して広い値域の乱数列を採用して当該少ない数量のストレージノードを割り付けた場合は、配置先決定に要する時間の長期化が予想される。これに対して、係るオブジェクト配置装置500を用いたシステムによれば、上記の如く採用する乱数列の値域を柔軟に変更することができると共に、変更に伴い影響を受けるオブジェクトを極小化できる。このため、係るオブジェクト配置装置500を用いたシステムによれば、配置先決定までのレスポンスを担保すべく、運用開始当初のシステム規模に合わせた乱数列の値域を用いるスモールスタートを実現することが可能である。更に、係るシステムによれば、将来のシステム規模の拡大に際しても、そのシステム規模に応じた乱数列の値域を採用することができるので、配置先決定までのレスポンスに影響を与えることも防止することができる。   As described above, according to the object arrangement apparatus 500 according to the present embodiment, the size of the value range to be adopted can be flexibly changed as described above. For this reason, in a system in which an object is placed on a storage node using the object placement device 500, it is not necessary to consider a random number sequence having a wide range with an excessively large margin at the start of operation. That is, such a system may prepare a random number that generates a minimum required range at the beginning of operation, and allocate a minimum storage node to the range as a partial space. In other words, in spite of the need for a small number of storage nodes at the beginning of operation, considering the future expansion of new storage nodes, a random number sequence with a wide range is adopted to install the small number of storage nodes. If assigned, it is expected that the time required to determine the location will be prolonged. On the other hand, according to the system using the object placement device 500, the range of the random number sequence adopted as described above can be flexibly changed, and the object affected by the change can be minimized. For this reason, according to the system using the object placement apparatus 500, it is possible to realize a small start using a range of a random number sequence that matches the system scale at the start of operation in order to secure a response until the placement destination is determined. It is. Furthermore, according to such a system, even when the system scale is expanded in the future, the range of the random number sequence corresponding to the system scale can be adopted, so that it is possible to prevent the response until the placement destination is determined. Can do.

尚、本実施例では、説明の便宜上から、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 real numbers 0 to 5 which are random numbers A and in the range of real numbers 0 to 4 which are random numbers B. Yes.

このような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 object arrangement device 500 that employs the one-dimensional space, the individual object is assigned prior to the process of assigning the individual object to the partial space in the one-dimensional space. It is necessary to convert the two-dimensional information representing the object into one-dimensional information. Furthermore, depending on the implementation mode, it is necessary to convert the one-dimensional information representing the determination result of the placement destination into two-dimensional information. This means that extra time is required for a series of processing, and the processing load (processing cost) is large.

これに対して、当該個々のオブジェクトを表す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 Random number generator 12 Random number generation function 101 Seed providing function 102 Sub random number generation function 13, 103 Random number selection function 14, 104a, 104b Seed information 15, 105 Random range information 16, 106 Random number sequence 401 CPU
402 ROM
403 RAM
404 HDD
405 Bus (communication path)
500 Object placement device 500a to 500e Storage node 501 Object placement function 502 Object 600 Subspace-storage node correspondence table 1000 Information processing device (computer)

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及び第2の乱数発生手段は、生成する乱数列が採り得る値域が互いに異なると共に、該第1の乱数発生手段が生成する乱数列が採り得る値域が、該第2の乱数発生手段が生成する乱数列が採り得る値域を含む関係を有し、
前記乱数選択手段は、
前記第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.
前記複数種類の乱数列において、個々の乱数列には乱数が略一様に分布していることを特徴とする請求項2乃至請求項4の何れかに記載の乱数発生装置。   5. The random number generator according to claim 2, wherein in the plurality of types of random number sequences, random numbers are distributed substantially uniformly in each random number sequence. 前記乱数発生装置は、数値、文字、識別子、座標、及びビット列の少なくとも何れかを表す乱数列を生成する
ことを特徴とする請求項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.
前記請求項1乃至請求項6の何れかに記載の乱数発生装置と、
オブジェクトの配置先を、そのオブジェクトに固有な情報を基に前記乱数発生装置によって生成される乱数を用いて、前記複数種類の乱数列が採り得る値域を表す空間の部分空間として少なくとも何れかの配置先が割り付けられている対応情報を参照することによって決定する配置手段と、を備える
ことを特徴とするオブジェクト配置装置。
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及び第2の乱数発生手段を用いて、生成する乱数列が採り得る値域が互いに異なると共に、該第1の乱数発生手段が生成する乱数列が採り得る値域が、該第2の乱数発生手段が生成する乱数列が採り得る値域を含む関係の乱数を生成し、
前記特定の乱数を選択するに際して、
前記第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.
JP2014500087A 2012-02-15 2013-02-06 Random number generation device, random number generation method, object placement device, and computer program Active JP6044628B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (1)

* Cited by examiner, † Cited by third party
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