Oops, I represented the vertices incorrectly ({."1 would only be
valid if the edges were directed).
Here's a fix:
~., ((] , -. {~ {.@I.@(-. +./"1@e. {:@]))^:(<:@#@[) ,:@{.) edges
1 2 3 17 18 19 20 21 22 14 15 16 23 26 25 24 13 12 11 10 9 8 7 6 5 4
This is the same core implementation, but this should show the actual
vertices being traversed in the order they are encountered.
Thanks,
--
Raul
On Thu, Aug 25, 2016 at 8:36 AM, 'Jon Hough' via Programming
<[email protected]> wrote:
> Raul,
>
> your solution seems to miss out some vertices and duplicates others.
>
>
> --------------------------------------------
> On Thu, 8/25/16, Raul Miller <[email protected]> wrote:
>
> Subject: Re: [Jprogramming] determine the cycle
> To: "Programming forum" <[email protected]>
> Date: Thursday, August 25, 2016, 9:07 PM
>
> Best I can come up with
> is
>
> {."1
> ((] , -. {~ {.@I.@(-. +./"1@e. {:@]))^:(<:@#@[) ,:@{.)
> edges
> 1 3 17 18 18 20 20 21 22 14 15 16 23
> 26 25 13 12 11 11 10 9 7 6 5 4 2
>
> Change {.@I. to {:@I. if you want things
> in the other order.
>
> --
> Raul
> ----------------------------------------------------------------------
> 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