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>
- simple cipher