[gameprogrammer] Re: Making random numbers in C++
- From: "milos chmel" <xchmelmilos@xxxxxxxxx>
- To: gameprogrammer@xxxxxxxxxxxxx
- Date: Sat, 3 Jan 2009 16:43:40 +0100
go for mersenne twister[1] then :)
[1] http://en.wikipedia.org/wiki/Mersenne_twister
2009/1/3, Alan Wolfe <alan.wolfe@xxxxxxxxx>:
> 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
>>
>>
>
--
"Brevity is the soul of wit." by William Shakespeare
" It IS NOT all FACTS. It IS TRUE. I believe it SHOULD NOT BE BELIEVE
LITERALLY. It IS TRUE." - jorgipogi
Other related posts: