Re: Simple cipher

*To*: mathgroup at smc.vnet.net*Subject*: [mg55400] Re: Simple cipher*From*: Hui Fang <fangh73 at xmu.edu.cn>*Date*: Mon, 21 Mar 2005 03:02:06 -0500 (EST)*Organization*: Xiamen University Photonics Center*References*: <200503200911.EAA28753@smc.vnet.net>*Reply-to*: fangh73 at xmu.edu.cn*Sender*: owner-wri-mathgroup at wolfram.com

Well, I believe there are a lot of ways to achieve this goal. Here is my version: Assume s1 and s2 have the same length, and s1 contains 1 and 0 only. Then the product of s1 and s2 will delete all the letters in s2 except the letters you ciphered. s1*s2 Out[]= {L,0,o,0,0,v,0,e} (* And then we just extract those letters of the word. *) a=DeleteCases[%,0] Out[]= {L,o,v,e} (* And finally we get the string *) StringJoin[ToString/@a] Out[]= Love Hui zak wrote: >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 > > >

**References**:**simple cipher***From:*zak <chocolatez@gmail.com>