l i n u x - u s e r s - g r o u p - o f - d a v i s
L U G O D
 
Next Meeting:
December 2: Social gathering
Next Installfest:
TBD
Latest News:
Nov. 18: Club officer elections
Page last updated:
2002 Nov 25 18:04

The following is an archive of a post made to our 'vox-tech mailing list' by one of its subscribers.

Report this post as spam:

(Enter your email address)
Re: [vox-tech] shuffling arrays in C?
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [vox-tech] shuffling arrays in C?



On Mon, 25 Nov 2002, Bill Kendrick wrote:
> On Mon, Nov 25, 2002 at 03:56:58PM -0800, Alexandra Thorn wrote:
> > >       const int selection_size = ELEMS_IN_ARY(your_array) - (i + 1);
> > >       int selected_card = (i + 1)  /* don't include the already selected
> > >                                       cards, or the card to swap with */
> > >           + (int)((selection_size*1.0*rand())/(RAND_MAX+1.0)) /* see
> > > rand(3) */
> >
> > Micah, could you explain how/why this would work?  It doesn't seem
> > intuitively obvious, and I prefer not to use code that I don't understand.
>
> Say you're on the 3rd card.  What he's doing is making sure
> he doesn't pick card 1, 2 or 3 (i.e., itself) as the card to swap with.

Ah.  I see it now.  Thanks for the clarification, Bill.  Really helps to
realize that it is meant to exclude values lower than the card in question
as well as the card itself.  Don't know what I was thinking earlier.

Cheers :)
Alex

_______________________________________________
vox-tech mailing list
vox-tech@lists.lugod.org
http://lists.lugod.org/mailman/listinfo/vox-tech



LinkedIn
LUGOD Group on LinkedIn
Sign up for LUGOD event announcements
Your email address:
facebook
LUGOD Group on Facebook
'Like' LUGOD on Facebook:

Hosting provided by:
Sunset Systems
Sunset Systems offers preconfigured Linux systems, remote system administration and custom software development.

LUGOD: Linux Users' Group of Davis
PO Box 2082, Davis, CA 95617
Contact Us

LUGOD is a 501(c)7 non-profit organization
based in Davis, California
and serving the Sacramento area.
"Linux" is a trademark of Linus Torvalds.

Sponsored in part by:
EDGE Tech Corp.
For donating some give-aways for our meetings.