GeezerVisonThe World Wide Web, restored to 800 pixels of glory. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Home|About|Gaming cabinet|Archives|How it works|Starter sites | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GeezerVison is showing cpprefjp.github.io — random - cpprefjp C++日本語リファレンス
<random> random(C++11)
このヘッダでは、以下の標準ヘッダをインクルードする: フリースタンディングこのヘッダの一部の機能が、フリースタンディング処理系でも使用できる。どの機能が使用できるかは各機能のページを参照。 コンセプト
擬似乱数生成器擬似乱数生成器は、ソフトウェアで乱雑な値のシーケンスを生成するクラスである。 擬似乱数生成器は、環境によらず同じシードを与えれば同じ乱数列が生成される。 多くのユーザーにとっては、以下に挙げる生の乱数生成器テンプレートクラスそのものよりも、後述するパラメータ定義済みの乱数生成器の型を使用すれば十分である。
生成器アダプタ生成器アダプタは、他の乱数生成器の乱数列を調整するクラスである。 通常、ユーザーがこれらのクラスを直接使用することはない。新たな乱数アルゴリズムを作る上級者、および研究者向けの機能である。
パラメータ定義済み擬似乱数生成器先に挙げた擬似乱数生成器に対して一般的なパラメータを定義し、使いやすいように用意された擬似乱数生成器の型。 これらの型には、パフォーマンス、オブジェクトのサイズ、周期などのトレードオフがある。ユーザーの目的に合わせて擬似乱数生成器の型を選択してほしい。 オブジェクトのサイズをある程度無視・許容できる状況では、多くの分野と用途に、
非決定論的な乱数生成器擬似乱数には「予測できる」「再現性がある」という特徴がある。 暗号化、パスワードの生成、擬似乱数のシードを決定するといった、エンドユーザーに予測されたくない乱数列が必要な場合に、擬似乱数の代わりに、以下の非決定論的な乱数生成器を利用できる。
シード数列
分布生成器分布生成器は、乱数生成器によって生成される値の範囲や分布を調整するクラスである。 分布生成器は、環境によって異なるアルゴリズムで実装される可能性がある。擬似乱数生成器は環境によらず同じシードを与えれば同じ乱数列が生成されるが、分布生成器を介して乱数生成する場合、環境によって異なる乱数列が生成される場合がある。 一様分布
ベルヌーイ分布(Bernoulli Distribution)
ポワソン分布(Poisson Distribution)
正規分布(Normal Distribution)
標本分布(Sampling Distribution)
ユーティリティ
例以下に示す例では、標準の乱数ライブラリを用いてランダムデバイスでシードを生成してメルセンヌツイスタエンジンを初期化、単精度浮動小数点数型で区間[-1.0f, 1.0f)の一様分布、および この例である時得られた random.tsv (ファイルサイズが大きいので添付する上では random.tsv.xz に圧縮) を元に、得られたデータの密度を図示すると、以下のような図が得られた。
破線は dist1 (一様分布; min=-1.0f, max=1.0f) 、実線は dist2 (正規分布; mean=1.0f, stdev=0.5f) 、横軸は値、縦軸は密度(値の件数を区間ごとに数えたヒストグラムを全体に占める割合で表したもの)である。 標準乱数ライブラリの基本的な使い方「擬似」乱数生成器擬似乱数生成器は決定論的で、再現性を持つ。
擬似乱数生成器に同じシードを与えることで、同じ乱数列を再現させられる。この挙動は開発中のテストやデバッグなどで有用である。
実行ごとに異なる乱数列が必要な場合、 また、擬似乱数生成器は高速かつ高効率に動作するよう設計されている。 しかしながら、これらが生成する乱数列は真の乱数ではなく、周期を持つ。
一方 モンテカルロ法など多数の乱数が必要な場合は擬似乱数生成器の使用を推奨する。 推奨する擬似乱数エンジン基本的には32ビット版メルセンヌ・ツイスターの実装である 非専門用途のための
特定の範囲の整数や浮動小数点数が必要な場合
古典的な方法として、特定の範囲の整数を生成するために、剰余演算が使われていた。たとえば 専門特化した一様分布のクラスを使用することで、そのような偏りは起こらなくなる。 シード生成法リリース版においては、実行ごとに擬似乱数のシードが異なることが求められる。
古典的な方法として、シードには これを防ぐには、非決定論的な バージョン言語
参照分布アルゴリズム乱数ライブラリの使い方フリースタンディング対応
乱数ライブラリが導入された経緯
その他編集者向けの参照 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| You are visitor 01402520 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |