[gameprogrammer] Re: Making random numbers in C++
- From: "Alan Wolfe" <alan.wolfe@xxxxxxxxx>
- To: gameprogrammer@xxxxxxxxxxxxx
- Date: Sat, 3 Jan 2009 00:48:48 -0800
i like the xkcd comic of this topic:
int RandomNumber(void)
{
return 4; //guaranteed random, rolled on a 6 sided dice
}
bwahahaha
On Fri, Jan 2, 2009 at 10:26 PM, grant hallman <unilogic@xxxxxxxxx> wrote:
> Hi, and happy new year all :)
>
> I happened to notice this, and thought i'd drop another 2 cents on the
> pile. You seem to be using the system clock to re-seed the RNG each time u
> access it. I don't know the insides of this particular RNG, but don't they
> usually get seeded once and then called repeatedly? Depends on the algorithm
> used, but if that's how it's designed, you won't get good quality RNs by
> continually reseeding it from the clock, you might as well just use the
> LSB's of the clock. And FWIW, i've rarely met a RNG provided with a
> language, that i trust to maintain a long good-quality string. They tend to
> be under-tested, likely because it's sometimes tricky to tell a good RNG
> from a poor one, until it's well into the project and u start seeing funny
> results. Think about making your own, they aren't hard, and that way u know
> what you're dealing with. And if good quality matters, test it yourself, not
> just a simple pocket histogram, but at least 2-D correlates. A 2-D
> scattergram will tell u a lot.
>
> All algorithmic RNGs eventually repeat. A quality one will have a very long
> repeat cycle, and no discernable patterns.
>
> Good luck :) Grant
>
> Scene from undergrad math class...
> Professor: Would someone please give me a random number?
> Student 1: 5
> Professor: No, no! More random please! Anyone?
> Student 2: 17?
> Professor: Much better!
>
> Huh?
>
>
> At 09:59 PM 1/1/2009 +0500, you wrote:
>
> Thanks for the reply, guyz
> I just figured it out.
>
> What I was doing , was this:
>
> for (int i=0;i<10000;i++)
> {
>
> //some code
>
> srand (time(NULL));
>
> //some code
>
> }
>
> whereas srand should be out of the loop.
>
>
> this srand was iterating again and again,
> and was generating 1 integer for 1 sec.
>
> thanks for your reply, I really appriciate that.
>
>
> > Date: Wed, 31 Dec 2008 20:11:37 +0000
> > From: brian.ripoff@xxxxxxxxx
> > To: gameprogrammer@xxxxxxxxxxxxx
> > Subject: [gameprogrammer] Re: Making random numbers in C++
> >
> > That should not happen. Can you post a complete example that
> > demonstrates this behaviour. My computer can generate a million random
> > numbers in a handful of milliseconds, according to a quick,
> > unoptimised program I threw together, compiled without optimisation
> > either.
> >
> > On Wed, Dec 31, 2008 at 7:53 PM, Azeem Zaheer <azeem_841@xxxxxxxxxxx>
> wrote:
> > > I am making a program in which I need about 10,000 "random" numbers
> ranging
> > > from 1 to 10.I have to make it in
> > > C++.So, when I use srand(time(NULL)); it works..but it is tooo slow.
> > > I takes 1 whole second to process and generate 1 number.
> > > I will have to wait 1000 secs, which is hell of a time.Please suggest
> me
> > > someway to make random numbers
> > > more quicker.Just tell me how to make 1 random number in 1 millisecond
> or
> > > even less.
> >
> > ---------------------
> > To unsubscribe go to http://gameprogrammer.com/mailinglist.html
> >
> >
>
>
> ------------------------------
> Get easy photo sharing with Windows Live™ Photos. Drag n' drop
>
>
Other related posts: