Re: Re: list of bits to string
- To: mathgroup at smc.vnet.net
- Subject: [mg28741] Re: [mg28719] Re: [mg28688] list of bits to string
- From: BobHanlon at aol.com
- Date: Fri, 11 May 2001 03:38:57 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
If all you need are the strings, then change the definition of gCode:
gCode[1] = {{"0"},{"1"}} ;
gCode[n_Integer?Positive] := With[{g=gCode[n-1]},
Join["0"<>#&/@g,"1"<>#&/@Reverse[g]]];
gCode[4]
{"0000", "0001", "0011", "0010",
"0110", "0111", "0101", "0100",
"1100", "1101", "1111", "1110",
"1010", "1011", "1001", "1000"}
Bob Hanlon
In a message dated 2001/5/10 8:55:08 AM, murraye at mediaone.net writes:
>Thank you all for suggesting the same solution that I came up with after
>sending my original inquiry. In my situation, I actually had a list of
>such lists of binary digits (arising, in fact, as the Gray code of order
>4):
>
> gCode[1] = { {0}, {1} } ;
> gCode[n_] := With[{g = gCode[n - 1]},
> Join[Map[Prepend[#, 0] &, g], Map[Prepend[#, 1] &, Reverse[g]]]]
>
>So to convert the result of gCode[4] to the list of 4-character strings
>I needed (to label the vertices in a Hamiltonian circuit of the "4-cube"
>graph), I used:
>
> Map[Apply[StringJoin, Map[ToString, #]] &, gCode[4]]
>
>The preceding expression still seems overly complicated to me: did I
>miss some simplification?
>