Oh yeah, pf =. 'paswo','rdbce','fghik','lmnqt',:'uvxyz'
(thanks Ric) Henry Rich On 2/19/2011 11:39 AM, Henry Rich wrote: > I worked on the easy part: > > pfr =. ((] (<"1@[ { ])~ ((0 1&(|."_1)&.|:@[)`(-"1 |.)@.(+./@]) =/) @ > ($@] #: (i.~ ,))) ];.0)~ > > ; _2 pf&pfr\ 'allisdiscoveredfleex' > pmqfabhwewzddrrgtrbz > > ; _2 (];.0 pf)&pfr\ 'pmqfabhwewzddrrgtrbz' > allisdiscoveredfleex > > I can now add monad u;.0 to my Life List. > > (you would also need a preconditioner to handle double letters and > odd-length input). > > I was hoping the same program would work for the hard part, but I wasn't > sure what to do when the two letters match in more than one axis. > > Henry Rich > > > On 2/19/2011 7:40 AM, Kip Murray wrote: >> The Playfair cipher http://en.wikipedia.org/wiki/Playfair_cipher is based on >> a 5 >> by 5 character array that treats i and j as equivalent: >> >> paswo >> rdbce >> fghik >> lmnqt >> uvxyz >> >> To encode “All is discovered flee” you replace pairs of letters >> al li sd is co ve re df le ex with pairs diagonally opposite, one to the >> right, >> or one below (wrapping) from the table, getting >> >> pm qf ab hw ew zd dr rg tr bz >> >> Your mission, should you decide to accept it, is to write j code for >> enciphering >> and deciphering, given the five by five table. That’s the easy part. The >> hard >> part is to design and implement an analogous cipher that uses the 3 by 3 by 3 >> character array below to replace triples of letters alx _is _di sco ver ed_ >> fle ex_ >> >> pas >> wor >> dbc >> >> efg >> hij >> klm >> >> nqt >> uvx >> yz_ >> >> ---------------------------------------------------------------------- >> For information about J forums see http://www.jsoftware.com/forums.htm >> > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm