<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>The Mersenne Twister Output Stream Postprocessing</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Yurii Shcherbyna</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Nadiia Kazakova</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Oleksii Fraze-Frazenko</string-name>
          <email>frazenko@gmail.com</email>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>National University "Odesa Law Academy"</institution>
          ,
          <addr-line>Rishelievska st., 28, Odesa, 65011</addr-line>
          ,
          <country country="UA">Ukraine</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Today, pseudo-random number sequence generators are actively used to solve a large number of applied problems of statistical and simulation modeling in such areas as telecommunications networks, automated control systems for production processes and infrastructure, security systems and others. Such generators have serious requirements for the sequence of numbers that they generate at their outputs. These are, first of all, the requirements for their randomness. The original sequences should be almost indistinguishable from the truly random ones. And, most importantly, they must also ensure a high uniformity of probability distribution of the original numbers. It is shown that the non-uniformity of numbers at the output of the primary generator significantly affects the quality of modeling of stochastic processes that take place in systems for which computer models are built. Tests on a linear congruent generator and a Mersenne twister (MT) generator have shown that the flow of decimal real numbers at their outputs does not fully meet the needs of modern computer modeling. The vast majority of tests of such flows using the Pearson chi-square test gives an unsatisfactory result. Based on the analysis of post-processing methods of numerical sequences, it is proposed to perform preliminary thinning of the input in relation to the model of the numerical flow by removing elements that do not fit into the uniform distribution. The expected sum of random real numbers to be included in each of the segments of the random number distribution histogram is chosen as the thinning criterion. It is shown that the use of this method of post-processing of the primary generator does not require extra computing resources of the system.</p>
      </abstract>
      <kwd-group>
        <kwd>1 Simulation</kwd>
        <kwd>linear congruent generator</kwd>
        <kwd>Mersenne twister generator</kwd>
        <kwd>inverse function method</kwd>
        <kwd>Pearson chi-square test</kwd>
        <kwd>post-processing of numerical flow</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>If in the second half of the last century
modeling was considered a secondary stage in the
design of complex systems, today the modern
development of computer technology
significantly increases its importance in the study
of stochastic processes that occur in modern
production, infrastructure management and
economic activity.</p>
      <p>
        Usually the modeling of random processes
takes place in two stages: first a sequence of
random variables evenly distributed on the
interval [
        <xref ref-type="bibr" rid="ref1">0, 1</xref>
        ] is created, and only then a sequence
of numbers is formed from them, which
corresponds to the given probability distribution
law. Because computing devices are deterministic
automata, they can only output pseudo-random
numbers (PRN) with a limited repetition period of
T. For efficient modeling, PRN generation
algorithms must provide high speed, long
repetition periods, and good statistics. [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ].
      </p>
      <p>
        Libraries of modern programming languages
already contain PRN generators with a uniform
distribution law, which return the number   from
the finite set {0, 1, … ,  − 1}. It is also possible to
connect external libraries offered by different
developers. Most traditional PRN generators are
well described by Donald Knuth in [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], where he
concludes that they are of insufficient quality and
unsuitable for research needs.
      </p>
      <p>
        The vast majority of PRN cryptographic
generators developed in recent decades have been
described in detail by Bruce Schneier in [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], but
they are hardly suitable for computer simulation.
First, their use requires significant computing
resources, which significantly reduces their
efficiency, and secondly, they ensure uniform
distribution at the binary level. As shown in [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ],
the transformation of a binary sequence into a
decimal format and its subsequent scaling leads to
a significant loss of uniformity.
      </p>
      <p>
        Recently, an algorithm known as the Mersenne
Twister (MT) has been proposed for modeling
purposes, which provides an extremely long
repetition period 219937 − 1 [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. It, together with
the linear congruent generator (LCG) [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], is part
of the libraries of almost all known specialized
software environments designed to solve research
and engineering problems.
      </p>
      <p>The two-stage modeling scheme is very
sensitive to the uniform distribution of numbers at
the output of the selected generator. As shown by
checking the flow of real numbers generated by
LCG and MT using Pearson's  2-test, up to half of
the samples, regardless of their size, are not tested
for uniformity.</p>
      <p>Since the choice of PRN generator is
extremely limited for researchers, this problem
should be solved by upgrading the numerical flow
at the output of the PRN generator.</p>
    </sec>
    <sec id="sec-2">
      <title>2. The aim of the study</title>
      <p>
        To check the quality of pseudo-random
number generators, a large number of test packets
were created [
        <xref ref-type="bibr" rid="ref7 ref8">7,8</xref>
        ] and all of them perform the
analysis of the output stream at the binary level.
This is due to the fact that they are mainly
intended for testing cryptographic generators
focused on the performance of quenching
operations, which are performed bit by bit.
Divided into bytes and converted to a decimal
sequence of real numbers, a binary sequence does
not necessarily remain evenly distributed. In most
cases, it is necessary to perform its post
processing [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], choosing a method that would give
a satisfactory simulation result and, at the same
time, was effective in terms of the use of
computing resources. In view of this, the aim of
the study is to select and justify an additional
method of converting a sequence of
pseudorandom numbers at the output of the MT generator
to ensure a given level of uniformity of their
distribution.
      </p>
    </sec>
    <sec id="sec-3">
      <title>3. Methods of post-processing</title>
      <p>
        The general idea of additional processing of
numbers at the output of the generator was
formulated long ago, when the main source of
random numbers were physical noise occurring in
electronic devices, such as electronic lamps,
quantum generators and the like. Its essence is to
sacrifice a certain number of numbers at the
output of the generator for the sake of obtaining
an output stream that would satisfy the conditions.
Later, von Neumann remarked on the
inadmissibility of using physical generators in
computer technology, because due to technical
difficulties the possibility of re-implementing the
obtained sample of random numbers at that time
was absent and, therefore, proposed algorithms
for generating pseudo-random numbers as the
method of mean squares [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] and the linear
congruent method. But, as shown by D. Knuth [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ],
they also did not provide the necessary uniformity
of the formed numerical flow. Since it is almost
impossible to make an ideal generator, the idea of
post-processing for both real random number
generators and PRN generators remains relevant.
      </p>
      <p>
        At the moment, we can identify the following
four methods of post-processing: [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ].
      </p>
      <p>1. Ad hoc simple correctors.
2. Whitening with hash functions.
3. Extractor algorithms.
4. Resilient functions.</p>
      <p>The general requirement for all methods of
post-processing is the minimization of resources
for their implementation.</p>
      <p>
        An example of a simple corrector is the
corrector described by von Neumann in [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]
where he proposes to combine a pair of bits
obtained from independent sources on the
principle: if the bits match (00 or 11), the bits are
canceled, the combination of bits 01 corresponds
to 0-th the output bit, and the combination 10
corresponds to the 1st output bit. The maximum
efficiency of such an algorithm is on average 4
input bits per 1 output bit. It was in this work that
von Neumann emphasized the difficulty of
generating random decimal numbers.
      </p>
      <p>Later, other, more advanced versions of
similar correctors were proposed, but they also
work at the bit level.</p>
      <p>Whitening is a</p>
      <p>method that reduces the
correlation of symbols at the output of the entropy
source
and increases
the
homogeneity
and
uniformity of the distribution of symbols in the
output stream. It is usually performed using hash
algorithms, such as MD5, SHA-1, SHA-2,
SHA256
or</p>
      <p>SHA-512.</p>
      <p>
        This
processing
is
a
deterministic algorithm that converts input blocks
of characters of arbitrary length into a fixed size
string. In [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] it was shown that bleaching does
not increase entropy and therefore the main task
of ensuring randomness should be solved by the
PRN generator, and not by the post-processing
algorithm. It should be noted that the term
randomness means the absence of a noticeable
analytical relationship between the symbols at the
output of the PRN generator. But, in contrast to
cryptographic
important to
problems, in
modeling
it is
ensure the
uniformity of the
distribution of the original numerical flow.
      </p>
      <sec id="sec-3-1">
        <title>Randomity</title>
        <p>
          extractors are
algorithms that
convert a low-quality stream of input values into
an almost uniform stream of numeric characters
with a small number of guaranteed random bits.
Formally, the method of such a transformation is
described in the work of Luke Trevisan [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ]. To
characterize weak sources of chance, the author
introduces the concept of minimum
entropy,
which characterizes the non-uniform distribution
of the quantity  in the range {0,1} , where n is a
binary combination at the source output. In the
case of a perfectly
uniform
distribution, all
combinations will be equally probable and the
entropy will be maximum, otherwise it will be
smaller. If the minimum entropy of such a source
has a value of at least k, then for each  ∈ {0,1}
the condition Pr[ =  ] ≤ 2− is fulfilled. The task
of the extractor is to convert the flow X into almost
uniform. To quantify the output flow, the concept
of statistical difference  between two random
variables X and X in the range {0,1} is used,
which is defined as:
        </p>
        <p>| [ ( ) = 1]| − | [ ( ) = 1]| ≤</p>
        <p>In the general case, the ( ,  ) -extractor
converts the flow of random variables X into an
almost uniform flow by the rule:

∶ {0,1} × {0,1} → {0,1} ,
(1)
(2)
where the random variable X has a minimum
entropy  , and   is a uniformly distributed
quantity on {0,1} . The mechanism of operation of
the randomness extractor is shown in Figure 1.</p>
        <p>
          In [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ], another method of amplifying the
randomness of the output flux of the PRN
generator, which is based on its postfiltration
through
some
deterministic
process,
is
considered. His idea is to use the use of elastic
functions to divide the original characters into
random and "not random enough". In [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ], the
elastic function F is defined as the ( ,  ,  )
function  ∶   →   , which forms each output
kbit combination of fixed input bits directly, and
the others  −  bits are selected randomly. Such
functions were created exclusively for the needs
of cryptographic transformations.
        </p>
        <p>From the above we can conclude that the work
on creating generators of random and
pseudorandom
numbers
is
mainly
focused
on
cryptographic
needs. At the
heart of such
generators is a complex computational process,
the implementation of which requires significant
computing resources. For modeling purposes,
either LCG or MT generators are typically used,
which
have unsatisfactory
uniformity in the
distribution of the source symbols, but can be
subject to post-processing
methods such
as
combining streams from
multiple sources and
thinning them by removing symbols that look like
“ not random enough ”.</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>4. Post-processing of a numerical stream from the MT generator</title>
      <p>
        Computer simulation of random processes
such as request flows in telecommunication
systems [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], flows of attacks on information
system resources [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ], or failures of technical
equipment in computer systems, involves the use
of procedures containing elements of randomness
implemented using built based on number theory
and numerical analysis of optimally selected
deterministic
systems.
      </p>
      <p>Such
systems
are
understood as arithmetic generators of
pseudorandom numbers, which are based on recurrent
relations. This</p>
      <p>
        means that each subsequent
number at the output of the generator is
determined by one or more pre-formed numbers
and the flow of such numbers will be repeated
regularly with period  . Despite this dependence,
the numbers generated by the generator should
look independent throughout the period. only in
the case of their absolutely uniform distribution.
Such numbers, evenly distributed on the interval
[
        <xref ref-type="bibr" rid="ref1">0, 1</xref>
        ], are most often used for modeling purposes.
They must meet the following requirements:
1. the sequence must have the properties of
uniform distribution of random numbers in
the interval [
        <xref ref-type="bibr" rid="ref1">0, 1</xref>
        ] throughout the repetition
period  ;
distribution.
2. each fragment of the sequence within the
period  , from the output of the generator
must
      </p>
      <p>have the properties of uniform</p>
      <p>The first condition is not met by the definition
of PRN, but this shortcoming developers are
trying to compensate by creating algorithms for
generating numbers with too long a repetition
period. Both LCG and MT generators have fairly
long periods. The problem for them is the need to
initialize them with a real random number, but it
is quite simply solved by forming such a number
from the current time.</p>
      <p>The
second
condition can
be formally
described as follows. The general sequence
 1,  2, … can be considered completely uniformly
distribute (CUD), if for any  ≥ 1 part of this
sequence (  ,   +1, … ,   + +1)  = 1, 2, …
will
also be evenly distributed.</p>
      <p>
        In [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] it was shown that the LCG developers
tried
to
provide
satisfactory
generator
characteristics
      </p>
      <p>with the optimal ratio of the
coefficients  ,  ,  of the recurrent ratio
  +1 = (   +  ) 
 .</p>
      <p>(3)</p>
      <p>As practice shows, the function rand() is built
into most modern programming environments and
uses as a module</p>
      <p>32-bit machine bit word,
which provides a period of repetition of numbers
T at the output of the generator, which does not
exceed the value of</p>
      <p>= 232. As for the uniformity
of the distribution of the output stream, it remains
extremely low.
the distribution of numbers at the output of the
LCG, obtained using the function rand(), which is
part of the library C ++. The value of the sample
N is 1024 numbers, and the number of intervals of
the histogram is 16.
the  2 −test showed that more than two-thirds of
the samples do not meet the requirements of
uniformity. Figure 3 shows the distribution of the
number of hits in each of the 16 intervals of the
histogram, Figure 2. Here are the limits of the
intervals of the histogram (Xmin, Xmax), the
probability of hitting the number in the interval
(Pi), the number of hits in the interval (Ni) and
components indicator  2 −-test (Hi), for each
specific interval of the histogram.
distribution of sample numbers between them</p>
      <p>The total quality index according to Pearson's
 2 −-test is calculated by the formula
 2 = ∑

 =1
(  −   ∗)2
  ∗
where  – this is the number of segments of the
histogram,   and   ∗ – the number of random
numbers of the output stream that actually fell in
the i-th interval and their expected number,
respectively. The expected number with uniform
(4)
example is 64.
distribution   ∗ is defined as  / and for the given</p>
      <p>
        Similar tests were performed for the MT
generator. Unlike the LCG generator, it has a
much longer repetition period, which is equal to
 = 219937 − 1 bits, and the algorithm embedded
in it provides very little correlation between two
samples from the original sequence of numbers.
The developers of the generator claim that it
passes the tests of the DIEHARD package [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ].
However, all the declared positive qualities of
such a generator are valid for a binary sequence.
Tests of real numbers distributed in the interval
[
        <xref ref-type="bibr" rid="ref1">0, 1</xref>
        ] using the  2 −test showed that only 10  15
percent of samples from the output stream from
the MT generator give a positive test result.
the distribution of numbers at the output of MT,
obtained
using
the
function
uniform_real_distribution&lt;&gt; mersenne(0, 1) from the
library C ++ &lt;cmath.h&gt;
having a probability distribution function  ( ),
determines a continuous uniformly distributed on
the interval [
        <xref ref-type="bibr" rid="ref1">0, 1</xref>
        ], the random
variable  =
 −1( ) [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]. This method works well when the
process can be described analytically and the
inverse function  −1( ) exists for it.
      </p>
      <p>To
evaluate
the
numbers
distribution
uniformity</p>
      <p>influence at the output of the MT
generator on the
quality
of the simulation,
consider the example of creating a numerical
flow, which is described by the Weibull function
with two parameters. It looks like this:
(5)
(6)
(7)
(8)
 ( ,  ,  ) = 1 −  −( / ) .
where</p>
      <p>– is a scale parameter,  – form
parameter, а  – variable.  і  – are fixed values
for which the conditions  &gt; 0,  &gt; 0 must be
met. In case if  = 1,</p>
      <sec id="sec-4-1">
        <title>Weibull's distribution coincides with the exponential distribution. The inverse function looks like:</title>
        <p>= 1 + ⌊
2 ⌋
where  number of histogram segments, and  –
the number of characters in the random number
sample. This formula is derived from the binomial
distribution and implicitly assumes work with the
normal distribution.</p>
        <p>
          There are other formulas that also allow you to
determine the approximate number of segments.
A good option is the formula proposed in 1981 by
Freedman and Diaconis [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ], which gives the
length of the segment h, expressed in terms of
 −1( ) =  [−ln (1 −  )]1/ .
        </p>
        <p>We assume that at the output of the MT
generator there is a flow of numbers  1,  2, …
which express the probability of events of the
random Weibull process. Then, using relation (6),
we can obtain a stream of numbers  1,  2, …,
which in accordance</p>
        <p>with this principle, is
determined by relation (5) and expresses the
argument of the distribution function.</p>
        <p>Next, we construct a histogram, on the basis of
which we calculate the quality index by the 
2test. The choice of this criterion is determined by
the fact that, firstly, its use is not limited to the
type of distribution and, secondly, if this criterion
is not met, then all other criteria, too, are unlikely
to be met.</p>
        <p>A separate issue in the special literature is the
choice</p>
        <p>number of segments of the
histogram. They should be sufficient so that the
shape of the histogram in its form as close as
possible to the form of the Weibull distribution
density function described by the expression:

 
 ( ) =</p>
        <p>−1 −( / ) .</p>
        <p>
          On the other hand, the number of segments should
not be too large so as not to lose the filtering
capabilities of the histogram, as is the case with
signal quantization. Today there are several
different ways to determine their number and the
most popular is the formula proposed in 1926 by
Sturges [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ]
interquartile range (the distance between the end
of the first and the beginning of the last quartile of
the IQ sample)
where the number of segments can be defined as
ℎ = 2 ∙ ( ) ∙  −1/3,
 = 

− 
ℎ
.
        </p>
        <p>(9)
(10)
(Pi), the number of hits in the interval (ni), the
expected number of hits in the interval (Ni) and
the component indicator  2-test (Hi).
where 
and  
are, respectively, the
maximum and minimum values of the members
of the sample variation series.</p>
        <p>All the proposed methods for calculating the
number of segments of the histogram
were
determined based on the problem of finding the
type of distribution based on the accumulated
statistical material and, each time, the researchers
proceeded from the features of the process to be
evaluated. That is why there are so many ways to
determine the value of k. As for the simulation, the
inverse problem is solved here, when the method
of distribution of random variables is known and,
therefore, the value of the number of segments is
not so critical and can be determined arbitrarily.</p>
      </sec>
      <sec id="sec-4-2">
        <title>If the inverse function</title>
        <p>method converts a
sequence of random
numbers from the</p>
        <p>
          MT
generator into a random Weibull process with the
parameters  = 1.3,  = 0.1, it will look like
(4), very few random numbers   fall into the last
segments of the “tails” of the distribution and,
therefore, these components of the indicator 
2test contributes the lion's share to the error, which
brings its value closer to the critical value  к2р. In
[
          <xref ref-type="bibr" rid="ref2">2</xref>
          ] D. Knuth points out that the sample size N
must ensure that each interval of the histogram
hits at least 5 random numbers. To avoid this
problem, and since the histogram segments do not
have to be the same size, we will combine the last
intervals
        </p>
        <p>with less than 6 numbers into one
common interval. For the example shown in
and therefore they are combined into one interval,
for which   = 9, and  ∗ = 8. At the level of five
percent error (λ = 0.05) for the given example, its
value is  2 = 17.723577, which is more than the
critical value  к2р = 7.290644, and this means
dissatisfaction with the simulation result. This
result is confirmed in the vast
majority
of
subsequent tests and, thus, it can be concluded that
it is necessary to correct the numerical flux at the
output of the MT generator by post-processing.</p>
        <p>As can be seen from the above analysis of
postprocessing methods, the vast majority of them
were developed for cryptography and, therefore,
are
unacceptable
for the
correction
numerical flow at the output of the MT generator
due to their excessive complexity. The solution to
the problem should not burden the computer
system with significant additional resources.</p>
        <p>Given the admissibility of such operations as
combining numerical streams, their "bleaching"
or "sieving", as well as the use of Pearson's  2-test
to assess the uniformity of number distribution,
we will try to "align" it by removing from its
composition "extra" elements .
obtained at the output of the MT generator after
post-processing</p>
        <p>It is expected that in the case of uniform
distribution in each segment of the histogram
should fall the same number of random numbers
equal to   ∗ =  / . The mathematical expectation
of a quantity to be included in a segment bounded
by the conditions  
  = ( 
+  
)/2.</p>
        <p>≤   &lt;  
Then</p>
        <p>is defined as
the
number
of
numbers that fall into the i-th segment   , will be
approximately equal to the value of   ∗ =   ∗
  . Of
course, each time this sum will be either less than
 ∗, or more than   ∗, but there will be no significant

difference. This makes it possible to formulate
such an algorithm. If the sum of the numbers  
that fall into the i-th segment of the histogram
exceeds the value of   ∗, then all other numbers
that fall into it are skipped. Of course, the number
of numbers in the segments will remain different,
but the unevenness of the sample will be smaller.
their filling with numbers from the output of the
MT generator after post-processing
λ = 0.05  2 = 0.3438, which is less than critical
value  к2р = 7.2609..
shown in Figure 9 and the components of the 
2distribution of numbers between them for
Weibull distribution after post-processing
For the given example for λ = 0.05 ,  2 =
4.10807, which is less than the critical value  к2р =
7.260944.</p>
        <p>Subsequent tests showed that the use of the
proposed method of "thinning" the input stream
from the MT generator, gives significantly better
simulation results in terms of their reliability.</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>5. Conclusions</title>
      <p>The experience of modern computer modeling
shows that the use of specialized software
packages such as Boost, Glib, C ++, Python,
Ruby, R, PHP, MATLAB and Autoit requires
significant computing resources and therefore the
simulation of stochastic processes is better
performed using common tools programming in
languages that allow you to create economical
program code. Modern C ++ programming
environments, such as Visual Studio and QT5, are
a good option. They include a large number of
additional libraries containing various PRN
generators.</p>
      <p>Such generators are built on the basis of
recurrent algorithms and do not provide a given
level of uniformity of distribution of real numbers
in the output stream and, therefore, their use for
modeling significantly affects its quality.</p>
      <p>The problem of improving the quality of
modeling can be solved by supplementing the
algorithm for calculating operations that provide
pre-randomization of the input stream. As such
operations, you can use the removal of the original
numbers, the presence of which violates the
uniformity of the distribution of the primary
generator. One way to implement such an
algorithm is to limit the number of characters in
each segment of the histogram by the value of the
expected sum of random numbers, which is
determined by the mathematical expectation of
the number in the segment and the expected
number of numbers in the segment. Tests show
that the unevenness of the primary generator with
this method of post-processing has almost no
effect on the quality of modeling.</p>
    </sec>
    <sec id="sec-6">
      <title>6. References</title>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <surname>Averill</surname>
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Law</surname>
          </string-name>
          .
          <article-title>Simulation modeling and analysis</article-title>
          , 5th. ed.,
          <string-name>
            <surname>McGraw-Hill Education</surname>
          </string-name>
          , 2 Penn Plaza, New York,
          <year>2015</year>
          . URL: https://industri.fatek.unpatti.ac.id/wpcontent/uploads/2019/03/108-
          <string-name>
            <surname>SimulationModeling-</surname>
          </string-name>
          and
          <article-title>-</article-title>
          <string-name>
            <surname>Analysis-Averill-M.-LawEdisi-</surname>
          </string-name>
          5
          <article-title>-2014</article-title>
          .pdf
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>D. E.</given-names>
            <surname>Knuth</surname>
          </string-name>
          ,
          <source>The Art of Computer Programming</source>
          , Volume
          <volume>2</volume>
          :
          <string-name>
            <given-names>Seminumerical</given-names>
            <surname>Algorithms</surname>
          </string-name>
          , 3rd. ed., Boston, Mass, USA :
          <string-name>
            <surname>Addison-Wesley</surname>
          </string-name>
          , Longman Publishing, Addison-Wesley, Reading, Mass,
          <year>1998</year>
          . URL: https://doc.lagout.org/science/0_Computer% 20Science/2_Algorithms/The%20Art%
          <fpage>20of</fpage>
          %
          <fpage>20Computer</fpage>
          %
          <fpage>20Programming</fpage>
          %
          <fpage>20</fpage>
          %28vo l.%
          <volume>202</volume>
          _%20Seminumerical%
          <fpage>20Algorithms</fpage>
          %
          <fpage>29</fpage>
          %
          <fpage>20</fpage>
          %283rd%
          <fpage>20ed</fpage>
          .%
          <volume>29</volume>
          %
          <fpage>20</fpage>
          %5BKnut h%
          <fpage>201997</fpage>
          -
          <lpage>11</lpage>
          -14%5D.pdf
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>Bruce</given-names>
            <surname>Schneier</surname>
          </string-name>
          , Applied Cryptography, Second Edition: Protocols, Algorthms, and Source Code in
          <string-name>
            <given-names>C</given-names>
            , 20. ed., Boston, Mass, USA :
            <surname>Addison-Wesley</surname>
          </string-name>
          , Longman Publishing, Addison-Wesley, Reading, Mass,
          <year>1998</year>
          . doi:
          <volume>10</volume>
          .1002/9781119183471 URL: https://lostcontact.mit.edu/afs/adrake.org/usr/rkh/Book s/books/Schneier%
          <fpage>20</fpage>
          -
          <lpage>%</lpage>
          20Applied%
          <fpage>20Cryptography</fpage>
          %
          <fpage>202ed</fpage>
          %
          <fpage>20</fpage>
          -
          <lpage>%</lpage>
          20Wiley.pdf.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>J. H.</given-names>
            <surname>Ahrens</surname>
          </string-name>
          ,
          <string-name>
            <given-names>U.</given-names>
            <surname>Dieter</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Grube</surname>
          </string-name>
          ,
          <source>Pseudorandom numbers. Computing</source>
          <volume>6</volume>
          (
          <year>1970</year>
          )
          <fpage>121</fpage>
          -
          <lpage>138</lpage>
          ). URL: https://doi.org/10.1007/BF02241740.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <surname>Saito</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <article-title>An Application of Finite Field: Design and Implementation of 128-bit Instruction-Based Fast Pseudorandom Number Generator</article-title>
          . Dept. of Math. Graduate School of Science,
          <year>February 9th</year>
          ,
          <year>2007</year>
          . URL: http://www.math.sci.hiroshima-u.ac.jp/~mmat/MT/SFMT/M062821.pdf.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <surname>Niederreiter</surname>
            <given-names>H.</given-names>
          </string-name>
          <article-title>Quasi-Monte Carlo methods and pseudo-random number</article-title>
          . doi: https://doi.org/10.1090/S0002-9904-1978- 14532
          <article-title>-7</article-title>
          . URL: https://www.ams.org/journals/bull/1978-84- 06/
          <fpage>S0002</fpage>
          -9904-1978-14532-7/
          <fpage>S0002</fpage>
          -9904- 1978-14532-7.pdf.
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>A</given-names>
            <surname>Statistical Test</surname>
          </string-name>
          <article-title>Suite for Random and Pseudorandom Number Generators for Cryptographic Applications</article-title>
          .
          <source>SP 800-22 Rev. 1a</source>
          ,
          <year>April 2010</year>
          . URL: https://nvlpubs.nist.gov/nistpubs/Legacy/SP/ nistspecialpublication800-
          <fpage>22r1a</fpage>
          .pdf.
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          <source>[8] The Marsaglia Random Number CDROM including the Diehard Battery of Tests of Randomness</source>
          ,
          <year>1995</year>
          . URL: http://ftpmirror.your.org/pub/misc/diehard/.
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>Mario</given-names>
            <surname>Stipčević</surname>
          </string-name>
          , True Random Number Generators. Open Problems in Mathematics and Computational Science,
          <source>Open Problems in Mathematics and Computational Science</source>
          <volume>275</volume>
          -315) doi:10.1007/978-3-
          <fpage>319</fpage>
          -10683-0_12 URL: https://www.researchgate.net/publication/29 9824248_True_Random_Number_
          <article-title>Generato rs</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>J. von</given-names>
            <surname>Neumann</surname>
          </string-name>
          .
          <article-title>Various techniques for use in connection with random digits</article-title>
          . Applied Math Series, Notes by G. E. Forsythe, in
          <source>National Bureau of Standards</source>
          , Vol.
          <volume>12</volume>
          ,
          <fpage>36</fpage>
          -
          <lpage>38</lpage>
          ,
          <year>1951</year>
          . URL: https://mcnp.lanl.gov/pdf_files/nbs_vonneu mann.
          <source>pdf.</source>
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <surname>Sunar</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          <string-name>
            <surname>Martin</surname>
            ,
            <given-names>W. J.</given-names>
          </string-name>
          <string-name>
            <surname>Stinson</surname>
            ,
            <given-names>D. R. A Provably</given-names>
          </string-name>
          <string-name>
            <surname>Secure True Random Number</surname>
          </string-name>
          <article-title>Generator with Built-in Tolerance to Active Attacks doi</article-title>
          :
          <volume>10</volume>
          .1109/TC.
          <year>2007</year>
          .250627 URL: https://cs.uwaterloo.ca/~dstinson/papers/rng -IEEE.pdf.
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <surname>Trevisan</surname>
            <given-names>L.</given-names>
          </string-name>
          <string-name>
            <surname>Extractors</surname>
          </string-name>
          and
          <article-title>Pseudorandom Generators 1999</article-title>
          .
          <article-title>Journal of the ACM URL: http://theory</article-title>
          .stanford.edu/~trevisan/pubs/ext ractor-full.pdf
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <surname>Reshef</surname>
          </string-name>
          , Yakir.
          <source>On Resilient and ExposureResilient Functions</source>
          .
          <year>2009</year>
          . URL: https://www.math.harvard.edu/media/reshef. pdf.
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <surname>Shcherbyna</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          <article-title>Analysis of attacks in modern cyberphysical systems</article-title>
          , Kazakova,
          <string-name>
            <given-names>N.</given-names>
            ,
            <surname>Fraze-Frazenko</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            ,
            <surname>Parchuts</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            ,
            <surname>Schneider</surname>
          </string-name>
          ,
          <string-name>
            <surname>S.</surname>
          </string-name>
          <source>CEUR Workshop Proceedings</source>
          ,
          <year>2019</year>
          ,
          <volume>2683</volume>
          , pp.
          <fpage>12</fpage>
          -
          <lpage>14</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <surname>Ross</surname>
            <given-names>S.</given-names>
          </string-name>
          <article-title>A First Course in Probability</article-title>
          .
          <source>8th Edition</source>
          .
          <year>2010</year>
          . ISBN-
          <volume>13</volume>
          :
          <fpage>978</fpage>
          -
          <lpage>0136033134</lpage>
          URL: http://julio.staff.ipb.ac.id/files/2015/02/Ross _8th_ed_English.pdf
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <surname>Sturges</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          (
          <year>1926</year>
          )
          <article-title>The choice of a classinterval</article-title>
          .
          <source>J. Amer. Statist</source>
          . Assoc., 21, P.
          <fpage>65</fpage>
          -
          <lpage>66</lpage>
          . URL: https://www.tandfonline.com/doi/abs/10.10 80/
          <fpage>0162</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <surname>Freedman</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Diaconis</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          (
          <year>1981</year>
          )
          <article-title>On this histogram as a density estimator: L2 theory</article-title>
          . Zeit. Wahr. ver. Geb.,
          <volume>57</volume>
          ,
          <fpage>453</fpage>
          -
          <lpage>476</lpage>
          . URL: https://bayes.wustl.edu/Manual/FreedmanDi aconis1_
          <year>1981</year>
          .pdf
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>