Boost logo

Boost :

Subject: Re: [boost] How to generate a Bernuolli number
From: Barco You (barcojie_at_[hidden])
Date: 2009-03-31 20:47:02


Hi Henning,

Thanks for your reply!
but,
g = generator(rng, boost::bernoulli_distribution<>(p));
can not be compiled successfully, how to do? thanks!

On Tue, Mar 31, 2009 at 6:58 PM, Henning Basold <h.basold_at_[hidden]>wrote:

> 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
>>>
>>>
>>>
>>
>>
>>
>>
>>
> _______________________________________________
> 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