[解決済み] ブースト乱数発生器
2022-03-04 16:04:32
質問
どなたかお気に入りのブースト乱数生成器をお持ちの方、またそれをコードに実装する方法について少し教えてください。私はmersenne twisterを動作させようとしているのですが、誰か他のものを好んで使っている人がいるのではないかと思っていました。
どのように解決するのですか?
このコードは、以下のブーストマニュアルから引用しています。 http://www.boost.org/doc/libs/1_42_0/libs/random/index.html :
#include <iostream>
#include "boost/random.hpp"
#include "boost/generator_iterator.hpp"
using namespace std;
int main() {
typedef boost::mt19937 RNGType;
RNGType rng;
boost::uniform_int<> one_to_six( 1, 6 );
boost::variate_generator< RNGType, boost::uniform_int<> >
dice(rng, one_to_six);
for ( int i = 0; i < 6; i++ ) {
int n = dice();
cout << n << endl;
}
}
ビットの説明のため。
-
mt19937
はメルセンヌ・ツイスター・ジェネレータで、生の乱数を生成します。ここでは typedef を使っているので、乱数発生器の種類を簡単に変更することができます。 -
rng
はツイスタージェネレータのインスタンスです。 -
one_to_six
のインスタンスです。 ディストリビューション . これは、生成したい数値とそれに従う分布を指定するものです。ここでは、1から6までの数字を均等に割り振りたい。 -
dice
は、生の数値と分布を受け取り、私たちが実際に欲しい数値を作成するものです。 -
dice()
はoperator()
に対してdice
オブジェクトを作成し、分布に従った次の乱数を取得することで、6面のサイコロをランダムに投げることをシミュレートします。
このままでは、このコードは毎回同じサイコロの目の並びを生成します。ジェネレータのコンストラクタでランダム化することができます。
RNGType rng( time(0) );
または、seed()メンバを使用します。
関連
-
[解決済み】構造体のベクター初期化について
-
[解決済み] JavaScriptでランダムな文字列/文字を生成する
-
[解決済み] JavaScriptで特定の範囲のランダムな整数を生成する?
-
[解決済み] 乱数(int)を生成する方法を教えてください。
-
[解決済み] JavaScriptで2つの数値の間の乱数を生成する
-
[解決済み] C++11では、標準化されたメモリモデルが導入されました。その意味するところは?そして、C++プログラミングにどのような影響を与えるのでしょうか?
-
[解決済み] ランダムな文字列を使用するこのコードは、なぜ "hello world" と表示されるのですか?
-
[解決済み] PHPランダム文字列ジェネレータ
-
[解決済み】画像処理。コカ・コーラ缶」認識のためのアルゴリズム改良
-
[解決済み】乱数発生器が1つの乱数しか発生させない。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C++ 非推奨の文字列定数から「char*」への変換について
-
[解決済み】非静的メンバ関数への参照を呼び出す必要がある
-
[解決済み】クラステンプレートの引数リストがない
-
[解決済み】C++ 式はポインタからオブジェクトへの型を持っている必要があります。
-
[解決済み] クラスにデフォルトコンストラクタが存在しない。
-
[解決済み】テンプレートの引数1が無効です(Code::Blocks Win Vista) - テンプレートは使いません。
-
[解決済み] 非常に基本的なC++プログラムの問題 - バイナリ式への無効なオペランド
-
[解決済み】浮動小数点数の乱数生成
-
[解決済み】Visual Studioのデバッガーエラー。プログラムを開始できません 指定されたファイルが見つかりません
-
[解決済み] スタックアロケーションにより初期化されていない値が作成された