[Jprogramming] All anagrams, ignoring reversal

Louis de Forcrand olius at bluewin.ch
Wed Jun 15 21:42:05 UTC 2016


Hi,

How would you go about generating all unique permutations of a list,
while counting each perm and its reversal as one?
A perhaps clearer (but less efficient) way of doing this is generating
all permutations and then removing (reversed) duplicates:

   allperms=: (A.&i.~ !) 4 NB. 4 is just an example
   ]those_I_want=: ([: {."2@~. (/:~@,: |.)"1) allperms
0 1 2 3
0 1 3 2
0 2 1 3
0 2 3 1
0 3 1 2
0 3 2 1
1 0 2 3
1 0 3 2
1 2 0 3
1 3 0 2
2 0 1 3
2 1 0 3

There is surely a better way to do this!

Thanks,
Louis



More information about the Programming mailing list