On May 25, 2010, at 11:49 AM, Michael A. Crawford wrote: > // If the array is empty, throw an exception. The caller should know > better. > // If there is only one, return object zero every time. > // If there are only two, alternate with every access. > // If there are three or more, randomize but never provide the same object > // twice in a row.
These are definitely strange rules... please note the following which describes basically all rules where n > 1 In your starting state, nothing is picked. You then pick something at random from the set. But, that item is not placed back in the set. The 2nd pick comes from the new set. The original item that was picked is now put back into the set. So part of what's going on is a "pick without replacement" as well as "pick with replacement". Having said that, depending upon your needs, I highly recommend the Mersenne Twister algorithm for your psuedo-random generator. Depending upon speed constraints, you may also want to experiment with a Fisher-Yates shuffle of the array, then grab the 0th element as the next "random object". ___________________________________________________________ Ricky A. Sharp mailto:rsh...@instantinteractive.com Instant Interactive(tm) http://www.instantinteractive.com _______________________________________________ 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