A few things,

First, try this when creating your uniform_01 object,

typedef boost::uniform_01<boost::mt19937> random_real;  <--you typedef'ed it here.
random_real actual_generator;
actual_generator() <----to output numbers between 0 and 1.

Two,  don't use uniform_01.  The uniform_real class works much better and defaults to between 0 and 1.


Three,  it looks like you are wanting random ints 0 and 1, not random real numbers between 0 and 1.  For this have a look at the uniform_int or uniform_smallint class.  They are probably what you are looking for.

Hope this helps.

Brian

On 10/4/07, Jeffrey Holle <jeffreyholle@bellsouth.net> wrote:
I am at the point in my application where I must introduce randomness to
a sort routine.  Basically when 2 elements are equal, I need to create a
50% probability that they will be swapped.

What is the correct boost::random library resource to code this?

I've attempted to use uniform_01, by creating an instance of it with
this type:
   typedef boost::uniform_01<boost::minstd_rand, double> rand_gen_t;

However, after getting it constructed as a class attribute, I find
accessing it with:
   cout << (*pRand_gen++) << endl;

It produces numbers like 1 134784888 134784288 2 134784845 134784224
134785176 5 0 134784376 134785328 0.

What I want is a sequence like 0 1 0 1 0 1 0 0 0 1 1 1 1 0 1 0 1 that is
sort of random.


_______________________________________________
Boost-users mailing list
Boost-users@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/boost-users