Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
1995
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 1995

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Challenge!

  • To: mathgroup at christensen.cybernetics.net
  • Subject: [mg904] Re: Challenge!
  • From: wagner at bullwinkle.cs.Colorado.EDU (Dave Wagner)
  • Date: Sun, 30 Apr 1995 03:38:32 -0400
  • Organization: University of Colorado, Boulder

In article <3nkc03$mq8 at news0.cybernetics.net>,
Paul E Howland  <PEHOWLAND at taz.dra.hmg.gb> wrote:
>Dear Mathgroup,
>
>I have two lists of equal length M.
>
>I wish to generate a third list also of length M, where the i th element
>of this list is either the i th element of the first list, or the i th
>element of the second list. 
>
>It should be equally probable that the new element be chosen from the
>first or second list. 
>
> (...)
>
>What is the most compact function that could achieve my goal?

This could be done quite straightforwardly using recursion, but
it's best to avoid recursion when possible.

Here's my best shot:

In[167]:=
    interleave[list1_List, list2_List] :=
    	#[[Random[Integer, {1,2}]]]& /@ Transpose[{list1, list2}]

In[168]:=
    s1 = {a,b,c,d,e,f,g};
    s2 = {A,B,C,D,E,F,G};

In[170]:=
    Do[Print[interleave[s1, s2]], {10}]

    {a, b, c, D, e, f, g}
    {A, B, c, d, e, f, g}
    {a, b, C, D, e, F, G}
    {A, b, C, D, E, F, g}
    {a, b, c, D, E, F, G}
    {A, B, c, D, E, f, G}
    {a, b, C, d, E, F, g}
    {A, B, c, D, e, f, g}
    {A, b, C, d, e, f, G}
    {A, b, c, D, e, F, g}


		Dave Wagner
		Principia Consulting
		(303) 786-8371
		princon at csn.net
		http://www.csn.net/princon
    


  • Prev by Date: Re: Challenge!
  • Next by Date: Re: Challenge!
  • Previous by thread: Re: Challenge!
  • Next by thread: Re: Challenge!