Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
36
Task/Playfair-cipher/J/playfair-cipher-1.j
Normal file
36
Task/Playfair-cipher/J/playfair-cipher-1.j
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
choose=: verb define
|
||||
sel=. 'Q' e. y
|
||||
alph=: (sel { 'JQ') -.~ a. {~ 65 + i.26
|
||||
norm=: [: dedouble alph restrict ('I' I.@:=&'J'@]} ])`(-.&'Q')@.sel@toupper
|
||||
''
|
||||
)
|
||||
|
||||
restrict=: ] -. -.~
|
||||
|
||||
splitDigraph=: ,`([,'X',])@.((= {.) *. 2 | #@])
|
||||
dedouble=: splitDigraph/&.|. NB. progressively split digraphs in string
|
||||
|
||||
choose 'Q'
|
||||
|
||||
setkey=: verb define
|
||||
key=. ~.norm y,alph
|
||||
ref=: ,/ 2{."1 ~."1 (,"0/~ alph) ,"1 norm 'XQV'
|
||||
mode=. #. =/"2 inds=. 5 5#:key i. ref
|
||||
inds0=. (0 3,:2 1)&{@,"2 inds
|
||||
inds1=. 5|1 0 +"1 inds NB. same column
|
||||
inds2=. 5|0 1 +"1 inds NB. same row
|
||||
alt=: key {~ 5 #. mode {"_1 inds0 ,"2 3 inds1 ,:"2 inds2
|
||||
i. 0 0
|
||||
)
|
||||
|
||||
pairs=: verb define
|
||||
2{."1 -.&' '"1 ~."1 (_2]\ norm y) ,"1 'XQV'
|
||||
)
|
||||
|
||||
encrypt=: verb define
|
||||
;:inv ;/ alt{~ref i. pairs y
|
||||
)
|
||||
|
||||
decrypt=: verb define
|
||||
, ref{~alt i. pairs y
|
||||
)
|
||||
7
Task/Playfair-cipher/J/playfair-cipher-2.j
Normal file
7
Task/Playfair-cipher/J/playfair-cipher-2.j
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
choose 'IJ'
|
||||
|
||||
setkey 'playfair example'
|
||||
encrypt 'Hide the gold in the tree stump'
|
||||
BM OD ZB XD NA BE KU DM UI XM MO UV IF
|
||||
decrypt 'BM OD ZB XD NA BE KU DM UI XM MO UV IF'
|
||||
HIDETHEGOLDINTHETREXESTUMP
|
||||
Loading…
Add table
Add a link
Reference in a new issue