Skip to content

Commit 0119f69

Browse files
author
cpprefjp-autoupdate
committed
update automatically
1 parent 06f62d9 commit 0119f69

19 files changed

+6727
-167
lines changed

lang/cpp26.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -176,8 +176,8 @@
176176

177177
<p class="text-right"><small>
178178
最終更新日時(UTC):
179-
<span itemprop="datePublished" content="2024-12-19T04:49:01">
180-
2024年12月19日 04時49分01秒
179+
<span itemprop="datePublished" content="2024-12-19T12:50:11">
180+
2024年12月19日 12時50分11秒
181181
</span>
182182
<br/>
183183
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
@@ -692,7 +692,7 @@ <h3>数値</h3>
692692
<li><code><a href="../reference/complex/complex.html">std::complex</a></code>を構造化束縛や、将来のパターンマッチで使用できるようタプルインタフェースの特殊化を追加</li>
693693
<li><code><a href="../reference/random.html">&lt;random&gt;</a></code>の範囲<code>[0, 1)</code>の乱数を生成する<code><a href="../reference/random/generate_canonical.html">std::generate_canonical()</a></code>を、望ましい統計的性質を保証するようアルゴリズムと制約を変更</li>
694694
<li><code><a href="../reference/random.html">&lt;random&gt;</a></code>に、乱数列を生成する<code><a href="../reference/random/generate_random.html">std::ranges::generate_random()</a></code>関数を追加</li>
695-
<li><code><a href="../reference/random.html">&lt;random&gt;</a></code>に、乱数生成器は並列シミュレーションに効果的なカウンターベースのPhilox乱数生成器として、<code><span href="https://cpprefjp.github.io/reference/random/philox_engine.md.nolink">std::philox_engine</span></code>クラス、およびその別名である<code><span href="https://cpprefjp.github.io/reference/random/philox4x32.md.nolink">std::philox4x32</span></code><code><span href="https://cpprefjp.github.io/reference/random/philox4x64.md.nolink">std::philox4x64</span></code>を追加</li>
695+
<li><code><a href="../reference/random.html">&lt;random&gt;</a></code>に、乱数生成器は並列シミュレーションに効果的なカウンターベースのPhilox乱数生成器として、<code><a href="../reference/random/philox_engine.html">std::philox_engine</a></code>クラス、およびその別名である<code><a href="../reference/random/philox4x32.html">std::philox4x32</a></code><code><a href="../reference/random/philox4x64.html">std::philox4x64</a></code>を追加</li>
696696
</ul>
697697
<h3>ユーティリティ</h3>
698698
<ul>

reference/random.html

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -176,8 +176,8 @@
176176

177177
<p class="text-right"><small>
178178
最終更新日時(UTC):
179-
<span itemprop="datePublished" content="2024-08-09T05:27:18">
180-
2024年08月09日 05時27分18秒
179+
<span itemprop="datePublished" content="2024-12-19T12:50:11">
180+
2024年12月19日 12時50分11秒
181181
</span>
182182
<br/>
183183
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
@@ -251,6 +251,11 @@ <h2>擬似乱数生成器</h2>
251251
<td>キャリー付き減算法(class template)</td>
252252
<td>C++11</td>
253253
</tr>
254+
<tr>
255+
<td><code><a href="random/philox_engine.html">philox_engine</a></code></td>
256+
<td>カウンタベース乱数生成器のPhilox法(class template)</td>
257+
<td>C++26</td>
258+
</tr>
254259
</tbody>
255260
</table>
256261
<h2>生成器アダプタ</h2>
@@ -341,6 +346,16 @@ <h2>パラメータ定義済み擬似乱数生成器</h2>
341346
<td>C++11</td>
342347
</tr>
343348
<tr>
349+
<td><code><a href="random/philox4x32.html">philox4x32</a></code></td>
350+
<td>Philoxの32ビット版(type-alias)</td>
351+
<td>C++26</td>
352+
</tr>
353+
<tr>
354+
<td><code><a href="random/philox4x64.html">philox4x64</a></code></td>
355+
<td>Philoxの64ビット版(type-alias)</td>
356+
<td>C++26</td>
357+
</tr>
358+
<tr>
344359
<td><code><a href="random/default_random_engine.html">default_random_engine</a></code></td>
345360
<td>非専門用途でデフォルト使用する擬似乱数生成器(type-alias)</td>
346361
<td>C++11</td>

reference/random/philox4x32.html

Lines changed: 303 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,303 @@
1+
<!doctype html>
2+
<html class="cpprefjp" lang="ja" itemscope="" itemtype="http://schema.org/WebPage">
3+
<head>
4+
5+
6+
<!-- Google tag (gtag.js) -->
7+
<script async src="https://www.googletagmanager.com/gtag/js?id=G-NXNBNVBTJS"></script>
8+
<script>
9+
window.dataLayer = window.dataLayer || [];
10+
function gtag(){dataLayer.push(arguments);}
11+
gtag('js', new Date());
12+
13+
gtag('config', 'G-NXNBNVBTJS');
14+
</script>
15+
16+
17+
<meta charset="UTF-8">
18+
19+
<title>philox4x32 - cpprefjp C++日本語リファレンス</title>
20+
21+
<meta name="viewport" content="width=device-width,initial-scale=1">
22+
<meta name="keywords" content="
23+
C++,標準ライブラリ,リファレンス,ドキュメント,STL,std,random,std,type-alias,cpp26
24+
">
25+
<meta name="title" content="philox4x32 - cpprefjp C++日本語リファレンス" />
26+
<meta itemprop="name" content="philox4x32 - cpprefjp C++日本語リファレンス" />
27+
<meta property="og:title" content="philox4x32 - cpprefjp C++日本語リファレンス" />
28+
<meta property="og:url" content="https://cpprefjp.github.io/reference/random/philox4x32.html" />
29+
<meta property="og:site_name" content="cpprefjp - C++日本語リファレンス" />
30+
<meta property="og:type" content="article" />
31+
<meta property="og:description" content="パラメータ設定済みの[`philox_engine`](philox_engine.md)。 " />
32+
<meta name="twitter:card" content="summary" />
33+
<meta name="twitter:title" content="philox4x32 - cpprefjp C++日本語リファレンス" />
34+
<meta name="twitter:url" content="https://cpprefjp.github.io/reference/random/philox4x32.html" />
35+
<meta name="twitter:description" content="パラメータ設定済みの[`philox_engine`](philox_engine.md)。 " />
36+
37+
38+
<link rel="alternate" type="application/atom+xml" title="Atom" href="https://cpprefjp.github.io/rss.xml" />
39+
40+
41+
<link rel="apple-touch-icon" sizes="180x180" href="../../static/favicons/apple-touch-icon.png?cachebust=248ec228047e1a42e1ea837fc52a20ca001164c0">
42+
<link rel="icon" type="image/png" sizes="32x32" href="../../static/favicons/favicon-32x32.png?cachebust=248ec228047e1a42e1ea837fc52a20ca001164c0">
43+
<link rel="icon" type="image/png" sizes="16x16" href="../../static/favicons/favicon-16x16.png?cachebust=248ec228047e1a42e1ea837fc52a20ca001164c0">
44+
<link rel="manifest" href="../../manifest.json?cachebust=248ec228047e1a42e1ea837fc52a20ca001164c0">
45+
<meta name="theme-color" content="#f5f8fc">
46+
47+
<link rel="stylesheet" href="../../static/pygments/default.css?cachebust=248ec228047e1a42e1ea837fc52a20ca001164c0">
48+
<!-- <link rel="stylesheet" href="../../static/css/root.css"> -->
49+
50+
51+
52+
53+
54+
<link href="../../static/kunai/css/kunai-stage-0.css?cachebust=248ec228047e1a42e1ea837fc52a20ca001164c0" rel="stylesheet">
55+
<link href="../../static/kunai/css/kunai-stage-1.css?cachebust=248ec228047e1a42e1ea837fc52a20ca001164c0" rel="stylesheet">
56+
<link href="../../static/kunai/css/kunai-stage-2.css?cachebust=248ec228047e1a42e1ea837fc52a20ca001164c0" rel="stylesheet">
57+
<link href="../../static/kunai/css/kunai-stage-3.css?cachebust=248ec228047e1a42e1ea837fc52a20ca001164c0" rel="stylesheet">
58+
59+
<script type="text/javascript" src="../../static/kunai/js/kunai-vendor.js?cachebust=248ec228047e1a42e1ea837fc52a20ca001164c0"></script>
60+
<script type="text/javascript" src="../../static/kunai/js/kunai.js?cachebust=248ec228047e1a42e1ea837fc52a20ca001164c0"></script>
61+
62+
<script type="text/javascript">
63+
document.addEventListener('DOMContentLoaded', function() {
64+
var kn = new Kunai;
65+
kn.cpprefjp();
66+
});
67+
</script>
68+
69+
</head>
70+
<body>
71+
<header data-kunai-mdinfo="{&#34;meta&#34;: {&#34;header&#34;: [&#34;random&#34;], &#34;namespace&#34;: [&#34;std&#34;], &#34;id-type&#34;: [&#34;type-alias&#34;], &#34;cpp&#34;: [&#34;cpp26&#34;]}, &#34;sources&#34;: [{&#34;id&#34;: &#34;fba3b4b6cb500a560843a33728e13f23c6889d4e&#34;, &#34;source&#34;: &#34;#include &lt;iostream&gt;\n#include &lt;random&gt;\n\nint main()\n{\n std::random_device seed_gen;\n std::philox4x32 engine{seed_gen()};\n\n for (int i = 0; i &lt; 10; ++i) {\n std::uint32_t result = engine();\n std::cout &lt;&lt; result &lt;&lt; std::endl;\n }\n}\n&#34;}], &#34;page_id&#34;: [&#34;reference&#34;, &#34;random&#34;, &#34;philox4x32&#34;]}">
72+
<nav class="navbar navbar-default" role="navigation">
73+
<div class="container-fluid">
74+
<div class="navbar-header">
75+
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar-collapse">
76+
<span class="sr-only">Toggle navigation</span>
77+
<span class="icon-bar"></span>
78+
<span class="icon-bar"></span>
79+
<span class="icon-bar"></span>
80+
</button>
81+
<a class="navbar-brand" href="../../index.html">
82+
<div class="title-wrapper clearfix">
83+
<div class="title">cpprefjp - C++日本語リファレンス</div>
84+
</div>
85+
</a>
86+
</div>
87+
88+
<div class="collapse navbar-collapse" id="navbar-collapse">
89+
<ul class="nav navbar-nav navbar-right">
90+
<li>
91+
<div class="google-search">
92+
93+
94+
<script>
95+
(function() {
96+
var cx = '013316413321391058734:ji_u66hl7hq';
97+
var gcse = document.createElement('script');
98+
gcse.type = 'text/javascript';
99+
gcse.async = true;
100+
gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') +
101+
'//www.google.com/cse/cse.js?cx=' + cx;
102+
var s = document.getElementsByTagName('script')[0];
103+
s.parentNode.insertBefore(gcse, s);
104+
})();
105+
</script>
106+
<div class="gcse-search"></div>
107+
108+
109+
</div>
110+
</li>
111+
<li>
112+
<a href="https://github.com/cpprefjp/site">GitHub Project</a>
113+
</li>
114+
</ul>
115+
</div>
116+
</div>
117+
</nav>
118+
</header>
119+
120+
<main id="main" role="main">
121+
<div class="container-fluid">
122+
<div class="row">
123+
<div class="col-sm-9 col-sm-push-3" itemscope itemtype="http://schema.org/Article">
124+
<div class="row">
125+
<div class="col-sm-12 google-search-result">
126+
<gcse:searchresults></gcse:searchresults>
127+
</div>
128+
</div>
129+
<div class="row">
130+
<div class="col-sm-12 content-header">
131+
132+
<ol class="breadcrumb">
133+
134+
<li itemscope itemtype="http://www.schema.org/SiteNavigationElement">
135+
<span>
136+
137+
<a href="../../index.html" itemprop="url">
138+
139+
<i class="fa fa-fw fa-home"></i>
140+
141+
</a>
142+
143+
</span>
144+
</li>
145+
146+
<li itemscope itemtype="http://www.schema.org/SiteNavigationElement">
147+
<span>
148+
149+
<a href="../../reference.html" itemprop="url">
150+
151+
<span itemprop="name">リファレンス</span>
152+
153+
</a>
154+
155+
</span>
156+
</li>
157+
158+
<li itemscope itemtype="http://www.schema.org/SiteNavigationElement">
159+
<span>
160+
161+
<a href="../../reference/random.html" itemprop="url">
162+
163+
<span itemprop="name">random</span>
164+
165+
</a>
166+
167+
</span>
168+
</li>
169+
170+
<li class="active" itemscope itemtype="http://www.schema.org/SiteNavigationElement">
171+
<span>
172+
173+
174+
<span itemprop="name">philox4x32</span>
175+
176+
177+
</span>
178+
</li>
179+
180+
</ol>
181+
<div class="crsearch"></div>
182+
183+
</div>
184+
</div>
185+
<div class="row">
186+
<div class="col-sm-12 edit-button">
187+
188+
189+
<p class="text-right"><small>
190+
最終更新日時(UTC):
191+
<span itemprop="datePublished" content="2024-12-19T12:50:11">
192+
2024年12月19日 12時50分11秒
193+
</span>
194+
<br/>
195+
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
196+
<span itemprop="name">Akira Takahashi</span>
197+
</span>
198+
が更新
199+
</small></p>
200+
201+
202+
<p class="text-right">
203+
<a class="history" target="_blank" href="https://github.com/cpprefjp/site/commits/master/reference/random/philox4x32.md">
204+
<span class="fa fa-fw fa-clock-o fa-flip-horizontal"></span>履歴
205+
</a>
206+
<a class="edit" target="_blank" href="https://github.com/cpprefjp/site/edit/master/reference/random/philox4x32.md">
207+
<span class="fa fa-fw fa-pencil"></span>編集
208+
</a>
209+
</p>
210+
</div>
211+
</div>
212+
<div class="row">
213+
<div class="col-sm-12 content-body">
214+
215+
<div class="identifier-type">type-alias</div><div class="header">&lt;random&gt;</div><h1 itemprop="name"><span class="namespace" title="namespace std">std::</span><span class="token">philox4x32</span><span class="cpp cpp26" title="C++26で追加">(C++26)</span></h1>
216+
<div itemprop="articleBody"><p><div class="codehilite"><pre><span></span><code><span class="k">namespace</span> <span class="n">std</span> <span class="p">{</span>
217+
<span class="k">using</span> <span class="n">philox4x32</span> <span class="o">=</span> <span class="n"><a href="philox_engine.html">philox_engine</a></span><span class="o">&lt;</span><span class="n"><a href="../cstdint/uint_fast32_t.html">uint_fast32_t</a></span><span class="p">,</span> <span class="mi">32</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">10</span><span class="p">,</span> <span class="mh">0xD2511F53</span><span class="p">,</span> <span class="mh">0x9E3779B9</span><span class="p">,</span> <span class="mh">0xCD9E8D57</span><span class="p">,</span> <span class="mh">0xBB67AE85</span><span class="o">&gt;</span><span class="p">;</span>
218+
<span class="p">}</span>
219+
</code></pre></div>
220+
</p>
221+
<h2>概要</h2>
222+
<p>パラメータ設定済みの<code><a href="philox_engine.html">philox_engine</a></code><br />
223+
32ビット版のPhilox。64ビット版は<code><a href="philox4x64.html">philox4x64</a></code></p>
224+
<h2>要件</h2>
225+
<p><code>philox4x32</code>型オブジェクトを<a class="cpprefjp-defined-word" data-desc="デフォルト初期化。`T x;`構文での初期化。トリビアルにデフォルト構築可能な型の場合は初期化されず(オブジェクトのlifetimeは開始される)、そうではないクラス型はデフォルトコンストラクタで初期化する。配列型の場合は各要素が再帰的にデフォルト初期化される">デフォルト構築</a>した場合、10000番目に生成される擬似乱数の値は<code>1955073260</code>であること。</p>
226+
<h2>乱数列の周期</h2>
227+
<p>4 * 2<sup>4 * 32</sup> = 2<sup>130</sup></p>
228+
<h2>サイズ</h2>
229+
<p>32ビット * 10個</p>
230+
<h2>シード、および生成される値の型</h2>
231+
<p><code><a href="../cstdint/uint_fast32_t.html">uint_fast32_t</a></code></p>
232+
<h2>備考</h2>
233+
<ul>
234+
<li>ここではラウンド数として<code>r = 10</code>を設定している。この値を大きくすれば乱数の品質は向上し、統計的により良い分布になっていく。<code>10</code>という値は既知の統計検定の合格する最小値よりやや大きめであり、広く使用されている値である。言い換えれば、適度な性能コストで統計的な安全マージンを提供している<ul>
235+
<li><code>r = 7</code>でも統計的な欠陥は見つかっていないが、実際には<code>r = 10</code>だけが広く使われている</li>
236+
</ul>
237+
</li>
238+
</ul>
239+
<h2></h2>
240+
<p><div class="yata" id="fba3b4b6cb500a560843a33728e13f23c6889d4e"><div class="codehilite"><pre><span></span><code><span class="cp">#include</span> <span class="cpf"><a href="../iostream.html">&lt;iostream&gt;</a></span><span class="cp"></span>
241+
<span class="cp">#include</span> <span class="cpf"><a href="../random.html">&lt;random&gt;</a></span><span class="cp"></span>
242+
243+
<span class="kt">int</span> <span class="nf">main</span><span class="p">()</span>
244+
<span class="p">{</span>
245+
<span class="n"><a href="random_device.html">std::random_device</a></span> <span class="n">seed_gen</span><span class="p">;</span>
246+
<span class="n"><span style="color:#ff0000">std::philox4x32</span></span> <span class="n">engine</span><span class="p">{</span><span class="n"><a href="random_device/op_call.html">seed_gen()</a></span><span class="p">};</span>
247+
248+
<span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="mi">10</span><span class="p">;</span> <span class="o">++</span><span class="n">i</span><span class="p">)</span> <span class="p">{</span>
249+
<span class="n">std</span><span class="o">::</span><span class="kt">uint32_t</span> <span class="n">result</span> <span class="o">=</span> <span class="n"><a href="philox_engine/op_call.html">engine()</a></span><span class="p">;</span>
250+
<span class="n"><a href="../iostream/cout.html">std::cout</a></span> <span class="o">&lt;&lt;</span> <span class="n">result</span> <span class="o">&lt;&lt;</span> <span class="n"><a href="../ostream/endl.html">std::endl</a></span><span class="p">;</span>
251+
<span class="p">}</span>
252+
<span class="p">}</span>
253+
</code></pre></div>
254+
</div></p>
255+
<h3>出力例</h3>
256+
<p><pre><code>717409690
257+
3816001420
258+
2063273750
259+
279442752
260+
2836561695
261+
431684143
262+
3973522490
263+
2090827657
264+
748889484
265+
859307553
266+
</code></pre></p>
267+
<h2>バージョン</h2>
268+
<h3>言語</h3>
269+
<ul>
270+
<li>
271+
<p>C++26</p>
272+
</li>
273+
<li>
274+
<p><a href="../../implementation.html#clang">Clang</a>: 19 <span aria-label="未実装" role="img" title="未実装"></span></p>
275+
</li>
276+
<li><a href="../../implementation.html#gcc">GCC</a>: 14 <span aria-label="未実装" role="img" title="未実装"></span></li>
277+
<li><a href="../../implementation.html#icc">ICC</a>: ??</li>
278+
<li><a href="../../implementation.html#visual_cpp">Visual C++</a>: ??</li>
279+
</ul></div>
280+
281+
</div>
282+
</div>
283+
</div>
284+
285+
286+
<div id="sidebar" class="col-sm-3 col-sm-pull-9">
287+
</div>
288+
289+
290+
</div>
291+
</div>
292+
</main>
293+
<footer class="footer navbar navbar-default">
294+
<div class="container-fluid">
295+
<p><small>
296+
本サイトの情報は、
297+
<a href="https://creativecommons.org/licenses/by/3.0/deed.ja" rel="nofollow">クリエイティブ・コモンズ 表示 3.0 非移植 ライセンス(CC BY)</a>
298+
の下に提供されています。
299+
</small></p>
300+
</div>
301+
</footer>
302+
</body>
303+
</html>

0 commit comments

Comments
 (0)