Boost logo

Boost :

Subject: Re: [boost] How to generate a Bernuolli number
From: Henning Basold (h.basold_at_[hidden])
Date: 2009-03-31 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