2012-01-19 10 views
3

これで、boost :: random :: discrete_distributionに重み付け/確率を与えることができます。ブーストrandom :: discrete_distribution一度構築されたウェイトを変更するには?

二重確率[] = { 0.5,0.1,0.1,0.1,0.1,0.1 };

boost :: random :: discrete_distribution < dist(確率);

質問:オブジェクトDISTが構築されると

(1)どのように、例えば重みのいずれかを変更します0.5〜0.3?

(2)一度にすべての重量をどのように再割り当てするのですか?

答えて

3

新しい配布オブジェクトを作成し、代わりに使用します。

+0

オブジェクトを作成してループ内の重みを変更することを考えました。毎回新しいオブジェクトを作成するオーバーヘッドが心配でした。 – 911

+1

@sam:これは早すぎる最適化です。新しいオブジェクトを再作成することでパフォーマンスの影響を測定しましたか?パフォーマンス上の問題がある場合は、これらの懸念を心配してください。 – ereOn

+1

オブジェクト作成のオーバーヘッドを気にする必要はなく、問題のあるランダムエンジンの反復を実行しています。 **最初に測定し、後で最適化してください。** – spraff

関連する問題