Re: simple cipher
- To: mathgroup at smc.vnet.net
- Subject: [mg55383] Re: [mg55364] simple cipher
- From: "David Park" <djmp at earthlink.net>
- Date: Mon, 21 Mar 2005 03:01:49 -0500 (EST)
- Sender: owner-wri-mathgroup at wolfram.com
Zak, When combining two objects of equal length I always think the Inner command. s1 = {1, 0, 1, 0, 0, 1, 0, 1}; s2 = {L, r, o, w, e, v, y, e}; Inner[If[#1 == 1, ToString[#2], Unevaluated[Sequence[]]] &, s1, s2, StringJoin] Love David Park djmp at earthlink.net http://home.earthlink.net/~djmp/ From: zak [mailto:chocolatez at gmail.com] To: mathgroup at smc.vnet.net s1 = {1, 0, 1, 0, 0, 1, 0, 1} s2 = {L, r, o, w, e, v, y, e} s1 is a kind of a sieve i want to look through to s2, so i could pick every letter in s2 wich correspond to every digit=1 in s1 so i could obtain the word "love", this is like the trivial ciphers we know in our childhood, i have the following approach, i hope there is other versions. p = Flatten[Position[s1, 1]] out[]= {1, 3, 6, 8} str = ""; Do[str = StringJoin[str, ToString[s2[[p[[i]]]]]], {i, 1, 4}] str Out[]= Love thanks zak