<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Электронный научно-практический журнал «Современные научные исследования и инновации» &#187; Box-Muller transform</title>
	<atom:link href="http://web.snauka.ru/issues/tag/box-muller-transform/feed" rel="self" type="application/rss+xml" />
	<link>https://web.snauka.ru</link>
	<description></description>
	<lastBuildDate>Sat, 18 Apr 2026 09:41:14 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Inverse Box-Muller Transform and Its Application</title>
		<link>https://web.snauka.ru/en/issues/2018/10/87617</link>
		<comments>https://web.snauka.ru/en/issues/2018/10/87617#comments</comments>
		<pubDate>Thu, 04 Oct 2018 16:54:17 +0000</pubDate>
		<dc:creator>Сучилин Владимир Александрович</dc:creator>
				<category><![CDATA[05.00.00 Technical sciences]]></category>
		<category><![CDATA[Box-Muller transform]]></category>
		<category><![CDATA[Monte Carlo methods]]></category>
		<category><![CDATA[random sequence]]></category>
		<category><![CDATA[test]]></category>
		<category><![CDATA[методы Монте-Карло]]></category>
		<category><![CDATA[преобразование Бокса-Мюллера]]></category>
		<category><![CDATA[случайная последовательность]]></category>

		<guid isPermaLink="false">https://web.snauka.ru/issues/2018/10/87617</guid>
		<description><![CDATA[Introduction To date, a pseudo-random number generator (PRNG) is considered indispensable for any modern software package [1]. However, the standard software functions in use generating pseudo-random numbers (PRN) differs among themselves in regard to the quality that may exercise unpredictable effects on the results of statistical calculations [2]. From this point of view, the quality [...]]]></description>
			<content:encoded><![CDATA[<p><strong><span>Introduction</span></strong></p>
<p><span>To date, a pseudo-random number generator (</span><em><span>PRNG</span></em><span>) is considered indispensable for any modern software package [1]. However, the standard software functions in use generating pseudo-random numbers (</span><em><span>PRN</span></em><span>) differs among themselves in regard to the quality that may exercise unpredictable effects on the results of statistical calculations [2]. From this point of view, the quality of a </span><em><span>PRNG</span></em><span> plays an important role [3]. In this article, for the purpose of evaluation of </span><em><span>PRNG</span></em><span> quality, a new two-stage </span><em><span>PRNG</span></em><span> test procedure is presented, the core of which is the </span><em><span>Inverse</span></em><span> </span><em><span>Box-Muller Transform</span></em><span> </span><em><span>(BMT</span></em><span>) [4]. Below the </span><em><span>Direct</span></em><span> </span><em><span>BMT </span></em><span>is</span><em><span> </span></em><span>described and on the basis of this description the </span><em><span>Inverse</span></em><span> </span><em><span>BMT</span></em><span> is formulated.</span></p>
<p><strong><span>Direct Box-Muller Transform</span></strong></p>
<p><span>For the transition from the </span><em><span>Gaussian type PRN</span></em><span> to the </span><em><span>PRN</span></em><span> with the uniform distribution mainly use the well-known </span><em><span>Direct</span></em><span> </span><em><span>BMT</span></em><span>, that can be presented as follows [4]:</span></p>
<p><span>u = </span><img src="http://content.snauka.ru/web/87617_files/0.gif" alt="" width="136" height="26" /><span> (1)</span><br />
<span>v = </span><img src="http://content.snauka.ru/web/87617_files/0(1).gif" alt="" width="134" height="26" /></p>
<p><span>where</span><br />
<span>x и y &#8211; two statistically independent random variable distributed uniformly on </span><br />
<span>interval (0,1)</span><br />
<span>u и v &#8211; two statistically independent random variable distributed normally with</span></p>
<p><span>average and variance equal to 0 and 1 accordingly</span><span>The standard use of the </span><em><span>Direct</span></em><span> </span><em><span>BMT</span></em><span> in the form (1) allows obtaining </span><em><span>PRNG</span></em><span> with a normal distribution on the basis of an eventually ideal </span><em><span>PRNG</span></em><span> with the uniform distribution.</span></p>
<p><span>As a matter of fact, the </span><em><span>PRNGs</span></em><span> used in software do not provide the perfect uniform distribution. That is due to the methods of </span><em><span>PRN</span></em><span> generating and limitations of the decimal places of the variable used by calculations in the course of statistical calculations.</span></p>
<p><strong><span>Inverse Box-Muller Transform</span></strong></p>
<p><span>Opposing to the formulation given above, an approach may be considered where conversion of the </span><em><span>PRN</span></em><span> with the normal distribution leads to the adequate </span><em><span>PRN</span></em><span> with the uniform distribution. As will be shown below, due to such inverse transform, a quality check of the </span><em><span>Gaussian type PRNG</span></em><span> can be reduced to the evaluation of the quality of the </span><em><span>PRNG</span></em><span> with the uniform distribution.</span></p>
<p><span>The </span><em><span>Inverse BMT</span></em><span> can be derived immediately from the expression (1). To do this, at first one should divide the second entity in (1) by the first one, as a result of which we obtain:</span></p>
<p><span>v/u = </span><img src="http://content.snauka.ru/web/87617_files/0(2).gif" alt="" width="66" height="22" /><span> (2)</span></p>
<p><span>On the other hand, after squaring and subsequent addition of the both entity in (1), follows:</span></p>
<p><span>u</span><sup><span>2</span></sup><span>+v</span><sup><span>2</span></sup><span> = - </span><span>2</span><span> </span><strong><span>ln</span></strong><span> y (3)</span></p>
<p><span>Finally, on the basis of equalities (2) and (3), the </span><em><span>Inverse BMT</span></em><span> can be formulated as follows:</span></p>
<p><span>x =</span><img src="http://content.snauka.ru/web/87617_files/0(3).gif" alt="" width="62" height="22" /><span> / 2</span><em><span>р</span></em><span> (4)</span><br />
<span>y = </span><strong><span>e</span></strong><strong><sup><span>-</span></sup></strong><sup><span>s</span></sup><br />
<span>where </span><br />
<span>p = v/u </span><br />
<span>s = (u</span><sup><span>2</span></sup><span>+v</span><sup><span>2</span></sup><span>)/2</span><br />
<span>u и v &#8211; two statistically independent random variable distributed normally with </span>average and variance equal to 0 and 1 accordinglyx и y &#8211; two statistically independent random variable distributed uniformly oninterval (0,1)<em>Inverse</em> <em>BMT</em> is unique, and its superposition with <em>Direct</em> <em>BMT</em> leads to an identity. The formal proving of this statement is beyond the scope of this article, but its validity was confirmed through computer simulation with the modules shown in the following tables. Below, there is also the original function <em>GetNormRandNumber</em> (not given here) that allows obtaining the <em>Gaussian</em> type <em>PRN</em>.</p>
<p style="text-align: justify;"><span style=" Arial;  medium;">Table 1. Program “Superposition of Direct &amp; Inverse BMT”</span></p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr valign="top">
<td width="484"><em><span style="color: #008000;  Consolas;">&#8216;Main programm</span></em><span style="color: #006062;  Consolas;">textwindow</span><span style="color: #800000;  Consolas;">.</span><span style="color: #a11f12;  Consolas;">Write</span><span style="color: #800000;  Consolas;">(</span><span style="color: #a16252;  Consolas;">&#8221; Box-Muller Transform Example &#8220;</span><span style="color: #800000;  Consolas;">)</span></p>
<p><span style="color: #006062;  Consolas;">textwindow</span><span style="color: #800000;  Consolas;">.</span><span style="color: #a11f12;  Consolas;">Read</span><span style="color: #800000;  Consolas;">()</span></p>
<p><span style="color: #006062;  Consolas;">textwindow</span><span style="color: #800000;  Consolas;">.</span><span style="color: #a11f12;  Consolas;">Write</span><span style="color: #800000;  Consolas;">(</span><span style="color: #a16252;  Consolas;">&#8220;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-&#8221;</span><span style="color: #800000;  Consolas;">)</span></p>
<p><span style="color: #006062;  Consolas;">textwindow</span><span style="color: #800000;  Consolas;">.</span><span style="color: #a11f12;  Consolas;">Read</span><span style="color: #800000;  Consolas;">()</span></p>
<p><span style="color: #006062;  Consolas;">textwindow</span><span style="color: #800000;  Consolas;">.</span><span style="color: #a11f12;  Consolas;">Write</span><span style="color: #800000;  Consolas;">(</span><span style="color: #a16252;  Consolas;">&#8221; Initial Random number &#8220;</span><span style="color: #800000;  Consolas;">)</span></p>
<p><span style="color: #006062;  Consolas;">textwindow</span><span style="color: #800000;  Consolas;">.</span><span style="color: #a11f12;  Consolas;">Write</span><span style="color: #800000;  Consolas;">(</span><span style="color: #a16252;  Consolas;">&#8220;Direct Transform &#8220;</span><span style="color: #800000;  Consolas;">)</span></p>
<p><span style="color: #006062;  Consolas;">textwindow</span><span style="color: #800000;  Consolas;">.</span><span style="color: #a11f12;  Consolas;">Write</span><span style="color: #800000;  Consolas;">(</span><span style="color: #a16252;  Consolas;">&#8220;Inverse Transform &#8220;</span><span style="color: #800000;  Consolas;">)</span></p>
<p><span style="color: #006062;  Consolas;">textwindow</span><span style="color: #800000;  Consolas;">.</span><span style="color: #a11f12;  Consolas;">Read</span><span style="color: #800000;  Consolas;">()</span></p>
<p><span style="color: #006062;  Consolas;">textwindow</span><span style="color: #800000;  Consolas;">.</span><span style="color: #a11f12;  Consolas;">Write</span><span style="color: #800000;  Consolas;">(</span><span style="color: #a16252;  Consolas;">&#8220;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-&#8221;</span><span style="color: #800000;  Consolas;">)</span></p>
<p><span style="color: #006062;  Consolas;">textwindow</span><span style="color: #800000;  Consolas;">.</span><span style="color: #a11f12;  Consolas;">Read</span><span style="color: #800000;  Consolas;">()</span></p>
<p><strong><span style="color: #8080ff;  Consolas;">For</span></strong><span style=" Consolas;"> i</span><span style="color: #800000;  Consolas;">=</span><span style="color: #ff8141;  Consolas;">1</span><strong><span style="color: #8080ff;  Consolas;">To</span></strong><span style=" Consolas;"> N_Sample</span></p>
<p><em><span style="color: #008000;  Consolas;"> &#8216;Direct Transform</span></em></p>
<p><span style=" Consolas;"> DirBoxMuller</span><span style="color: #800000;  Consolas;">()</span></p>
<p><em><span style="color: #008000;  Consolas;"> &#8216;Invers Transform</span></em></p>
<p><span style=" Consolas;"> InvBoxMuller</span><span style="color: #800000;  Consolas;">()</span></p>
<p><span style="color: #006062;  Consolas;"> textwindow</span><span style="color: #800000;  Consolas;">.</span><span style="color: #a11f12;  Consolas;">Write</span><span style="color: #800000;  Consolas;">(</span><span style="color: #a16252;  Consolas;">&#8220;&#8221;</span><span style="color: #800000;  Consolas;">+</span><span style=" Consolas;">x1</span><span style="color: #800000;  Consolas;">)</span></p>
<p><span style="color: #006062;  Consolas;">textwindow</span><span style="color: #800000;  Consolas;">.</span><span style="color: #a11f12;  Consolas;">Write</span><span style="color: #800000;  Consolas;">(</span><span style="color: #a16252;  Consolas;">&#8221; &#8220;</span><span style="color: #800000;  Consolas;">+</span><span style=" Consolas;">u</span><span style="color: #800000;  Consolas;">)</span></p>
<p><span style="color: #006062;  Consolas;">textwindow</span><span style="color: #800000;  Consolas;">.</span><span style="color: #a11f12;  Consolas;">Write</span><span style="color: #800000;  Consolas;">(</span><span style="color: #a16252;  Consolas;">&#8221; &#8220;</span><span style="color: #800000;  Consolas;">+</span><span style=" Consolas;">x2</span><span style="color: #800000;  Consolas;">)</span></p>
<p><span style="color: #006062;  Consolas;"> textwindow</span><span style="color: #800000;  Consolas;">.</span><span style="color: #a11f12;  Consolas;">Read</span><span style="color: #800000;  Consolas;">()</span></p>
<p><span style="color: #006062;  Consolas;"> textwindow</span><span style="color: #800000;  Consolas;">.</span><span style="color: #a11f12;  Consolas;">Write</span><span style="color: #800000;  Consolas;">(</span><span style="color: #a16252;  Consolas;">&#8220;&#8221;</span><span style="color: #800000;  Consolas;">+</span><span style=" Consolas;">y1</span><span style="color: #800000;  Consolas;">)</span></p>
<p><span style="color: #006062;  Consolas;">textwindow</span><span style="color: #800000;  Consolas;">.</span><span style="color: #a11f12;  Consolas;">Write</span><span style="color: #800000;  Consolas;">(</span><span style="color: #a16252;  Consolas;">&#8221; &#8220;</span><span style="color: #800000;  Consolas;">+</span><span style=" Consolas;">v</span><span style="color: #800000;  Consolas;">)</span></p>
<p><span style="color: #006062;  Consolas;">textwindow</span><span style="color: #800000;  Consolas;">.</span><span style="color: #a11f12;  Consolas;">Write</span><span style="color: #800000;  Consolas;">(</span><span style="color: #a16252;  Consolas;">&#8221; &#8220;</span><span style="color: #800000;  Consolas;">+</span><span style=" Consolas;">y2</span><span style="color: #800000;  Consolas;">)</span></p>
<p><span style="color: #006062;  Consolas;"> textwindow</span><span style="color: #800000;  Consolas;">.</span><span style="color: #a11f12;  Consolas;">Read</span><span style="color: #800000;  Consolas;">()</span></p>
<p><strong><span style="color: #8080ff;  Consolas;">EndFor</span></strong></p>
<p><em><span style="color: #008000;  Consolas;">&#8216;End of programm</span></em></td>
</tr>
</tbody>
</table>
<p><span style=" Arial;  medium;">Table 2. Module “Direct BMT” </span></p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr valign="top">
<td width="484"><strong><span style="color: #8080ff;  Consolas;">Sub</span></strong><span style=" Consolas;"> DirBoxMuller</span><span style=" Consolas;"> x1</span><span style="color: #800000;  Consolas;">=</span><span style="color: #006062;  Consolas;">Math</span><span style="color: #800000;  Consolas;">.</span><span style="color: #a11f12;  Consolas;">GetRandomNumber</span><span style="color: #800000;  Consolas;">(</span><span style=" Consolas;">z</span><span style="color: #800000;  Consolas;">)/</span><span style=" Consolas;">z</span></p>
<p><span style=" Consolas;"> y1</span><span style="color: #800000;  Consolas;">=</span><span style="color: #006062;  Consolas;">Math</span><span style="color: #800000;  Consolas;">.</span><span style="color: #a11f12;  Consolas;">GetRandomNumber</span><span style="color: #800000;  Consolas;">(</span><span style=" Consolas;">z</span><span style="color: #800000;  Consolas;">)/</span><span style=" Consolas;">z</span></p>
<p><span style=" Consolas;"> u</span><span style="color: #800000;  Consolas;">=</span><span style="color: #006062;  Consolas;">Math</span><span style="color: #800000;  Consolas;">.</span><span style="color: #a11f12;  Consolas;">Cos</span><span style="color: #800000;  Consolas;">(</span><span style="color: #ff8141;  Consolas;">2</span><span style="color: #800000;  Consolas;">*</span><span style="color: #006062;  Consolas;">Math</span><span style="color: #800000;  Consolas;">.</span><span style="color: #a11f12;  Consolas;">pi</span><span style="color: #800000;  Consolas;">*</span><span style=" Consolas;">x</span><span style="color: #800000;  Consolas;">)*</span><span style="color: #006062;  Consolas;">Math</span><span style="color: #800000;  Consolas;">.</span><span style="color: #a11f12;  Consolas;">SquareRoot</span><span style="color: #800000;  Consolas;">(-</span><span style="color: #ff8141;  Consolas;">2</span><span style="color: #800000;  Consolas;">*</span><span style="color: #006062;  Consolas;">Math</span><span style="color: #800000;  Consolas;">.</span><span style="color: #a11f12;  Consolas;">NaturalLog</span><span style="color: #800000;  Consolas;">(</span><span style=" Consolas;">y</span><span style="color: #800000;  Consolas;">))</span></p>
<p><span style=" Consolas;"> v</span><span style="color: #800000;  Consolas;">=</span><span style="color: #006062;  Consolas;">Math</span><span style="color: #800000;  Consolas;">.</span><span style="color: #a11f12;  Consolas;">Sin</span><span style="color: #800000;  Consolas;">(</span><span style="color: #ff8141;  Consolas;">2</span><span style="color: #800000;  Consolas;">*</span><span style="color: #006062;  Consolas;">Math</span><span style="color: #800000;  Consolas;">.</span><span style="color: #a11f12;  Consolas;">pi</span><span style="color: #800000;  Consolas;">*</span><span style=" Consolas;">x</span><span style="color: #800000;  Consolas;">)*</span><span style="color: #006062;  Consolas;">Math</span><span style="color: #800000;  Consolas;">.</span><span style="color: #a11f12;  Consolas;">SquareRoot</span><span style="color: #800000;  Consolas;">(-</span><span style="color: #ff8141;  Consolas;">2</span><span style="color: #800000;  Consolas;">*</span><span style="color: #006062;  Consolas;">Math</span><span style="color: #800000;  Consolas;">.</span><span style="color: #a11f12;  Consolas;">NaturalLog</span><span style="color: #800000;  Consolas;">(</span><span style=" Consolas;">y</span><span style="color: #800000;  Consolas;">))</span></p>
<p><strong><span style="color: #8080ff;  Consolas;">EndSub</span></strong></td>
</tr>
</tbody>
</table>
<p><span style=" Arial;  medium;">Table 3. Module “Inverse BMT”</span></p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr valign="top">
<td width="276"><strong><span style="color: #8080ff;  Consolas;">Sub</span></strong><span style=" Consolas;"> InvBoxMuller</span><span style=" Consolas;"> GetNormRandNumber</span><span style="color: #800000;  Consolas;">()</span></p>
<p><span style=" Consolas;"> u</span><span style="color: #800000;  Consolas;">=</span><span style=" Consolas;">NormValue</span></p>
<p><span style=" Consolas;"> GetNormRandNumber</span><span style="color: #800000;  Consolas;">()</span></p>
<p><span style=" Consolas;"> v</span><span style="color: #800000;  Consolas;">=</span><span style=" Consolas;">NormValue</span></p>
<p><span style=" Consolas;"> x2</span><span style="color: #800000;  Consolas;">=</span><span style="color: #006062;  Consolas;">Math</span><span style="color: #800000;  Consolas;">.</span><span style="color: #a11f12;  Consolas;">ArcTan</span><span style="color: #800000;  Consolas;">(</span><span style=" Consolas;">v</span><span style="color: #800000;  Consolas;">/</span><span style=" Consolas;">u</span><span style="color: #800000;  Consolas;">)/(</span><span style="color: #ff8141;  Consolas;">2</span><span style="color: #800000;  Consolas;">*</span><span style="color: #006062;  Consolas;">Math</span><span style="color: #800000;  Consolas;">.</span><span style="color: #a11f12;  Consolas;">pi</span><span style="color: #800000;  Consolas;">)</span></p>
<p><em></em><span style=" Consolas;"> y2</span><span style="color: #800000;  Consolas;">=</span><span style="color: #006062;  Consolas;">Math</span><span style="color: #800000;  Consolas;">.</span><span style="color: #a11f12;  Consolas;">Power</span><span style="color: #800000;  Consolas;">(</span><span style=" Consolas;">exp</span><span style="color: #800000;  Consolas;">,-(</span><span style=" Consolas;">u</span><span style="color: #800000;  Consolas;">*</span><span style=" Consolas;">u </span><span style="color: #800000;  Consolas;">+</span><span style=" Consolas;">v</span><span style="color: #800000;  Consolas;">*</span><span style=" Consolas;">v</span><span style="color: #800000;  Consolas;">/</span><span style="color: #ff8141;  Consolas;">2</span><span style="color: #800000;  Consolas;">)</span></p>
<p><strong><span style="color: #8080ff;  Consolas;">EndSub</span></strong></td>
</tr>
</tbody>
</table>
<p><span style=" Arial;  medium;">Table 4. The screenshot “Superposition of Direct &amp; Inverse Box-Muller”.</span></p>
<p style="text-align: left;"><img src="https://web.snauka.ru/wp-content/uploads/2018/10/100418_1649_11.png" alt="" /></p>
<p style="text-align: justify;"><span>In the screenshot above, it is easy to see that the consistent use of the <em>Direct</em> and <em>Inverse BMTs</em> leads to the initial <em>PRN</em>. Thus, it shows that the superposition of the both transforms is unique and leads to identity.<br />
</span></p>
<p style="text-align: justify;"><span><strong>Application of the Inverse Box-Muller Transform<br />
</strong></span></p>
<p style="text-align: justify;"><span>In regard to the representation above, the procedure for the quality evaluation of <em>PRNG</em> can be implemented in the form of a two-stage procedure in which the <em>PRN</em> with the uniform distribution will be formed by means of <em>Inverse BMT</em>, and then the <em><strong>π</strong>-Test</em> is applied [5].<br />
</span></p>
<p style="text-align: justify;"><span>Generally, to check the effectiveness of the described approach the <em>Central Limit Theorem Probability</em> can be used [6]. According to this theorem, a <em>PRN</em> which elements defined as the average of the original set of statistically independent random variable has the <em>Gaussian</em> distribution. The program generating the <em>Gaussian type PRN</em> on the basis of the N-set mentioned above is presented below.<br />
</span></p>
<p style="text-align: justify;"><span style=" Arial;  medium;">Table 5. Module “Gaussian type PRNG”</span></p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr valign="top">
<td width="276"><strong><span style="color: #8080ff;  Consolas;">Sub</span></strong><span style=" Consolas;"> GetNormRandNumber</span><span style=" Consolas;"> Smp</span><span style="color: #800000;  Consolas;">=</span><span style="color: #ff8141;  Consolas;">0</span></p>
<p><strong><span style="color: #8080ff;  Consolas;">For</span></strong><span style=" Consolas;"> si</span><span style="color: #800000;  Consolas;">=</span><span style="color: #ff8141;  Consolas;">1</span><strong><span style="color: #8080ff;  Consolas;">To</span></strong><span style=" Consolas;"> N</span></p>
<p><strong><span style="color: #00bfff;  Consolas;">RndLCM()</span></strong></p>
<p><span style=" Consolas;"> Smp</span><span style="color: #800000;  Consolas;">=</span><span style=" Consolas;">Smp</span><span style="color: #800000;  Consolas;">+RandValue</span></p>
<p><strong><span style="color: #8080ff;  Consolas;">EndFor</span></strong></p>
<p><span style=" Consolas;"> NormValue</span><span style="color: #800000;  Consolas;">=</span><span style=" Consolas;">Smp</span><span style="color: #800000;  Consolas;">/</span><span style=" Consolas;">N</span></p>
<p><strong><span style="color: #8080ff;  Consolas;"> EndSub</span></strong></td>
</tr>
</tbody>
</table>
<p><span>Note, a special function <em>RndLCM</em> is applied above, namely one on the basis of <em>Linear Congruential Method (LCM)</em>, which provides a smart <em>PRN</em> with statistically independent variable [5]. The distribution density curves calculated in such way for some values N are represented below.<br />
</span></p>
<p style="text-align: center;"><img src="https://web.snauka.ru/wp-content/uploads/2018/10/100418_1649_12.png" alt="" /><span><br />
</span></p>
<p style="text-align: center;"><span>Fig. 1 Distribution density diagrams for sampled values N on the basis of the <em>Central Limit Theorem Probability</em>.<br />
</span></p>
<p style="text-align: justify;"><span>The diagram below shows results of computer simulation of the proposed two-stage test procedure to the quality evaluation of the <em>Gaussian type PRNG</em> by N = 6 vs. results for two other (reference) <em>PRNGs</em> with uniform distribution.<br />
</span></p>
<p style="text-align: center;"><img src="https://web.snauka.ru/wp-content/uploads/2018/10/100418_1649_13.png" alt="" /><span><br />
</span></p>
<p style="text-align: center;"><span>Fig. 2 <em>PRNGs</em> quality diagram.<br />
</span></p>
<p style="text-align: justify;"><span>The curves in the Fig. 2 represent the dynamics of the 23 sequential test sessions.<br />
</span></p>
<p style="text-align: justify;"><span>The legend of the Fig. 2 is as follows:<br />
</span></p>
<p style="text-align: justify;"><span>GRN &#8211; immediate <em>π-Test</em> of the <em>PRNG</em> with the use of function <em>GetRandomNumber</em><br />
</span></p>
<p style="text-align: justify;"><span>TRF &#8211;      two-stage procedure with the use of <em>Central Limit Theorem Probability </em>on the<br />
</span></p>
<p style="text-align: justify;"><span>first step and<em> Inverse BMT </em>on the second<em><br />
</em></span></p>
<p style="text-align: justify;"><span>LCM &#8211; immediate <em>π-Test</em> of the <em>PRNG</em> based on the <em>Linear Congruential Method<br />
</em></span></p>
<p style="text-align: justify;"><span>PI &#8211;     the value of <em>π </em>( 3.14159…)<br />
</span></p>
<p style="text-align: justify;"><span><strong>Discussion<br />
</strong></span></p>
<p style="text-align: justify;"><span>The <em>blue</em> curve<em><br />
</em>in the Fig. 2 corresponds to the <em><strong>π</strong>-Test</em> by the standard function <em>GetRandomNumber</em> with uniform distribution [7], while the second diagram (<em>red </em>curve) was calculated by means of the two-stage procedure described above. It should be emphasized that hereby a comparatively &#8220;simple&#8221; generator on the basis of the <em>Central Limit Theorem Probability</em> was applied. At the same time, it is easy to see that the use of <em>GetRandomNumber</em> leads to the worst indices.<em><br />
</em>It is all the more remarkable that in this case the two-stage testing procedure using <em>Inverse BMT</em> has a fairly smart match with the &#8220;LCM&#8221;<em><br />
</em>curve that is meanwhile the best of all and practically provide the approximation of the number <strong><em>π</em></strong> with the same accuracy. However, this of course does not preclude the use of the standard statistical testing methods for quality check of <em>PRNGs</em> and can be a good complement to them.<br />
</span></p>
<p style="text-align: justify;"><span><strong>Conclusion<br />
</strong></span></p>
<p style="text-align: justify;"><span>The <em>Inverse Box-Muller transform</em> was considered, which allows the transition from <em>Gaussian type PRN</em> to the adequate <em>PRN</em> with uniform distribution. A procedure for testing a <em>Gaussian type PRNG</em> is proposed by which after applying of the described <em>Inverse BMT</em> the quality of the <em>PRNG</em> with the uniform distribution (by means of <em><strong>π</strong>-Test</em>) can be evaluated. The results of computer simulations confirm the effectiveness of the proposed approach. In addition, the described testing procedure is suitable for the testing of <em>PRNGs</em> of any type, since it uses just a random sequence with statistically independent variable. But the latter can belong to any <em>PRNG</em> and thus can be reduced to the <em>Gaussian type</em> sequence on the basis of the <em>Central Limit Theorem Probability</em>.</span></p>
]]></content:encoded>
			<wfw:commentRss>https://web.snauka.ru/en/issues/2018/10/87617/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
