The acid test is to find all the rotational duplicates of a full odometer sequence:
*odo=:#:i.@(*/)* NB. Odometer verb * $n=.odo 3#5 * *125 3* *rd=:3 :'(y i."_1 <./"1 y)|."_1 y'* NB. Roger's rotational duplication verb *$rdn=.rd n* NB. Return all rows to key form. *125 3* * $rdn1=.~. rdn* NB. Remove all duplicate keys. *55 3* * 5 11${rdn1* *┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐* *│0 0 0│0 0 1│0 0 2│0 0 3│0 0 4│0 1 0│0 1 1│0 1 2│0 1 3│0 1 4│0 2 0│* *├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤* *│0 2 1│0 2 2│0 2 3│0 2 4│0 3 0│0 3 1│0 3 2│0 3 3│0 3 4│0 4 0│0 4 1│* *├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤* *│0 4 2│0 4 3│0 4 4│1 1 1│1 1 2│1 1 3│1 1 4│1 2 1│1 2 2│1 2 3│1 2 4│* *├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤* *│1 3 1│1 3 2│1 3 3│1 3 4│1 4 1│1 4 2│1 4 3│1 4 4│2 2 2│2 2 3│2 2 4│* *├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤* *│2 3 2│2 3 3│2 3 4│2 4 2│2 4 3│2 4 4│3 3 3│3 3 4│3 4 3│3 4 4│4 4 4│* *└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘* We can see that some rotational dups were missed - 001-010, 002-020, etc. 112-121, 113-131, etc. So there is still some work to do on Roger's rb verb. Skip On Sat, May 16, 2020 at 8:21 PM Roger Hui <rogerhui.can...@gmail.com> wrote: > > I could be wrong. > > Right. I was wrong. > > > On Sat, May 16, 2020 at 6:18 PM Raul Miller <rauldmil...@gmail.com> wrote: > > > For example: > > > > A=: 2 3 1 2 1,: 2 1 2 3 1 > > 2 1 |.("_1) A > > 1 2 1 2 3 > > 1 2 3 1 2 > > 2 4 |.("_1) A > > 1 2 1 2 3 > > 1 2 1 2 3 > > > > Thanks, > > > > -- > > Raul > > > > On Sat, May 16, 2020 at 9:11 PM Roger Hui <rogerhui.can...@gmail.com> > > wrote: > > > > > > The question is, do you get a unique key (signature) if you rotate a > row > > so > > > that the first occurrence of the minimum value is first? I thought the > > > answer was yes after thinking about it for a minute. I could be wrong. > > > > > > > > > On Sat, May 16, 2020 at 5:53 PM Raul Miller <rauldmil...@gmail.com> > > wrote: > > > > > > > A critical question here is whether the minimum value can appear more > > > > than once in each row, or whether the examples (where each value is > > > > has a unique appearance in each row) are adequately complex. > > > > > > > > Thanks, > > > > > > > > -- > > > > Raul > > > > > > > > On Sat, May 16, 2020 at 8:15 PM Roger Hui <rogerhui.can...@gmail.com > > > > > > wrote: > > > > > > > > > > Hmm, you just want the keys: rotate each row so that the minimum > > item is > > > > > first. > > > > > > > > > > (n i."_1 <./"1 n)|."_1 n > > > > > 1 3 2 4 > > > > > 1 2 3 4 > > > > > 1 2 3 4 > > > > > 1 3 2 4 > > > > > 1 3 2 4 > > > > > 1 2 3 4 > > > > > 1 2 3 4 > > > > > 1 3 2 4 > > > > > > > > > > > > > > > On Sat, May 16, 2020 at 5:11 PM Roger Hui < > rogerhui.can...@gmail.com > > > > > > > wrote: > > > > > > > > > > > ((n i."_1 <./"1 n)|."_1 n) </. n > > > > > > ┌───────┬───────┐ > > > > > > │2 4 1 3│2 3 4 1│ > > > > > > │3 2 4 1│3 4 1 2│ > > > > > > │1 3 2 4│4 1 2 3│ > > > > > > │4 1 3 2│1 2 3 4│ > > > > > > └───────┴───────┘ > > > > > > > > > > > > Rotate each row so that the minimum item is first, then use those > > > > rotated > > > > > > rows as keys. > > > > > > > > > > > > > > > > > > On Sat, May 16, 2020 at 4:44 PM Skip Cave < > s...@caveconsulting.com > > > > > > > wrote: > > > > > > > > > > > >> I have run across this issue a few times in the past. > > > > > >> The following 8x4 array has several rows that are 'rotational > > > > duplicates'. > > > > > >> > > > > > >> ]n=.8 4$2 4 1 3 2 3 4 1 3 4 1 2 3 2 4 1 1 3 2 4 4 1 2 3 1 2 3 4 > 4 > > 1 3 > > > > 2 > > > > > >> > > > > > >> 2 4 1 3 > > > > > >> > > > > > >> 2 3 4 1 > > > > > >> > > > > > >> 3 4 1 2 > > > > > >> > > > > > >> 3 2 4 1 > > > > > >> > > > > > >> 1 3 2 4 > > > > > >> > > > > > >> 4 1 2 3 > > > > > >> > > > > > >> 1 2 3 4 > > > > > >> > > > > > >> 4 1 3 2 > > > > > >> > > > > > >> > > > > > >> Is it possible to develop a verb that would find the rows that > are > > > > > >> rotational duplicates of each other. That is, find all the rows > > that > > > > would > > > > > >> be the same, if each row was rotated some integer value in the > > first > > > > > >> dimension. The output of the verb would be the same shape array, > > but > > > > with > > > > > >> each duplicate row rotated such that they show as identical. > > Picking > > > > the > > > > > >> 'standard' rotation for a set of rotational duplicates is up to > > the > > > > > >> implementer. > > > > > >> > > > > > >> > > > > > >> Skip > > > > > >> > > ---------------------------------------------------------------------- > > > > > >> 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 > > > > > > > ---------------------------------------------------------------------- > > > 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 > ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm