On May 26, 2011, at 8:00 PM, Graham Cox wrote: > I'm using random(), but every time I run my app I get the same sequence, > despite having this code in my app delegate's -appDidFinishLaunching method. > Clearly I'm not seeding it right, though I can't see why - I get a different > value for seed every time. What gives? > > > unsigned seed = (unsigned)([NSDate timeIntervalSinceReferenceDate] * > 10000.0); > > NSLog(@"launched, seed = %ld", seed ); > srandom( seed );
Put a breakpoint on srandom() and setstate(). Maybe something else is re-seeding it (with a constant!) after you. If you want to be really paranoid, make sure that your calls to random() are really going to the libSystem routine, instead of being covered or hidden by a macro or a routine in another library. Also, consider using srandomdev() instead of srandom(). It's more random, although slower, but probably not enough slower that you'd notice one call. Regards, Ken _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com