At 7:21 PM -0600 1/12/09, Atul Kulkarni wrote:
Hi All,
I am using boost::random for generating random numbers I am using the default quick start code given up on the web page. I want to generate random numbers between range 1 - n so that they do not repeat themselves for at least n numbers.
1. Is it possible using boost::random? 2. If it is possible what do I need to do except the below code.
== boost::mt19937 rng1; boost::uniform_int<> six1(1,30); boost::variate_generator<boost::mt19937&, boost::uniform_int<> > die1(rng1, six1); for(int i=0; i < 29; i++) { cout<<die1()<<endl; } ==
This will not satisfy your preconditions, except by accident. A random number generator will, at random times, output the same number twice in a series. If you want to choose numbers w/o repeating, that's more akin to shuffling the cards in a deck - and there are lots of online resources on how to do that (alternately, you can look in Knuth). See <http://en.wikipedia.org/wiki/Shuffling#Shuffling_algorithms> for one. -- -- Marshall Marshall Clow Idio Software <mailto:marshall@idio.com> It is by caffeine alone I set my mind in motion. It is by the beans of Java that thoughts acquire speed, the hands acquire shaking, the shaking becomes a warning. It is by caffeine alone I set my mind in motion.