
Boost : 
Subject: Re: [boost] How to generate a Bernuolli number
From: Henning Basold (h.basold_at_[hidden])
Date: 20090331 06:58:11
Hi,
sorry about my first post. I didn't realize your question.
About your problem: just reuse the number generator and construct a new
instance of bernoulli_distribution with the new probability:
int main() {
double p = 0.5;
boost::mt19937 rng;
boost::bernoulli_distribution<> d(p);
typedef boost::variate_generator<
boost::mt19937&,
boost::bernoulli_distribution<>
> generator;
generator g(rng, d);
int time_steps = 2;
for(int i = 0; i < 10; ++i) {
// change probability every second step
if(i % time_step == 0){
// change probability by 0.1 every second step
p += 0.1;
g = generator(rng, boost::bernoulli_distribution<>(p));
}
std::cout << g() << std::endl;
}
}
This does not work in the case of the number generator because it is
declared as reference parameter.
Henning
Barco You schrieb:
> Hi,
>
> Continue this question.
> I want to have dynamic Bernoulli experiment, which has the p changed
> dynamically with time!
>
> How can I implement it? thanks!
>
> On Tue, Mar 31, 2009 at 4:12 PM, Barco You <barcojie_at_[hidden]> wrote:
>
>
>> Hi peter,
>>
>> Okay, I see now ,thanks!
>>
>>
>> On Tue, Mar 31, 2009 at 4:03 PM, Peter Bartlett <pete_at_[hidden]>wrote:
>>
>>
>>> Quoting Barco You <barcojie_at_[hidden]>:
>>>
>>> Hi,
>>>
>>>> Sorry, wait!!!
>>>> [...]
>>>>
>>>>
>>> In the first case one variate_generator is constructed and it is used 10
>>> times.
>>>
>>> In the second case 10 variate_generators are contructed and each used
>>> once. Since they are default constructed, they are each primed to return the
>>> same sequence. In particular they return the same first number, 0.
>>>
>>> Pete
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> Unsubscribe & other changes:
>>> http://lists.boost.org/mailman/listinfo.cgi/boost
>>>
>>>
>>
>> 
>> 
>> Enjoy life!
>> Barco You
>>
>>
>
>
>
>
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk