Or:

5 5#:I.,</~i.5  
0 1
0 2
0 3
0 4
1 2
1 3
1 4
2 3
2 4
3 4

-----Original Message-----
From: programming-boun...@forums.jsoftware.com
[mailto:programming-boun...@forums.jsoftware.com] On Behalf Of Raul Miller
Sent: Saturday, September 26, 2015 6:52 PM
To: Programming forum
Subject: Re: [Jprogramming] Generate Complete Graphs

Another variation might be:

   require'stats'
   complete=: 2&comb

That said, here's an illustration of why it can be easy to calculate:
   -.+/\=i.5
0 1 1 1 1
0 0 1 1 1
0 0 0 1 1
0 0 0 0 1
0 0 0 0 0

   5 5 #:I.,-.+/\=i.5
0 1
0 2
0 3
0 4
1 2
1 3
1 4
2 3
2 4
3 4

Making that concise and tacit will change its form, but hopefully the
underlying concept is clear?

Thanks,

--
Raul

On Sat, Sep 26, 2015 at 5:37 PM, Linda A Alvord <lindaalv...@verizon.net>
wrote:
> Enter "comb" to see the tacit version of my verb:
>
> comb
> ([ = [: +/"1 [: #: [: i. 2 ^ ]) ([: |. [: I. #) [: #: [: i. 2 ^ ]
>
> Linda
>
> -----Original Message-----
> From: programming-boun...@forums.jsoftware.com
> [mailto:programming-boun...@forums.jsoftware.com] On Behalf Of Linda A 
> Alvord
> Sent: Saturday, September 26, 2015 11:48 AM
> To: programm...@jsoftware.com
> Subject: Re: [Jprogramming] Generate Complete Graphs
>
> comb=: 13 :'(x=+/"1 #:i.2^y) ([:|.[:I.#) #:i.2^y'
>    2 comb 5
> 0 1
> 0 2
> 0 3
> 0 4
> 1 2
> 1 3
> 1 4
> 2 3
> 2 4
> 3 4
>
>    3 comb 4
> 0 1 2
> 0 1 3
> 0 2 3
> 1 2 3
>
>
> -----Original Message-----
> From: programming-boun...@forums.jsoftware.com
> [mailto:programming-boun...@forums.jsoftware.com] On Behalf Of Henry 
> Rich
> Sent: Saturday, September 26, 2015 11:12 AM
> To: programm...@jsoftware.com
> Subject: Re: [Jprogramming] Generate Complete Graphs
>
> ; <@({. ,. }.)\.@i. 5
>
>
>
> (#~ </"1) (#: i.@(*/)) 2 $ 5
>
> Henry Rich
>
> On 9/26/2015 9:24 AM, 'Jon Hough' via Programming wrote:
>> Sorry, the second verb should be
>>
>> getEdges =: 3 : 0
>> if. 1 > # y do.
>>
>> else.
>> h =. 1{.y
>> t =. 1}.y
>> ((h&,)"0 t ), getEdges t
>> end.
>> )
>>
>> (changed getNodes to getEdges)
>>
>>
>> --------------------------------------------
>> On Sat, 9/26/15, 'Jon Hough' via Programming 
>> <programm...@jsoftware.com>
> wrote:
>>
>>   Subject: [Jprogramming] Generate Complete Graphs
>>   To: "Programming Forum" <programm...@jsoftware.com>
>>   Date: Saturday, September 26, 2015, 10:16 PM
>>
>>   I have a couple of verbs to represent
>>   a complete (undirected) graph as a list of edges. Clearly
>>   there are "N choose 2" edges that need to be generated. This
>>   is my code
>>
>>   complete =: 3 : 0
>>   nodes =. i. y
>>   getEdges nodes
>>   )
>>
>>   getEdges =: 3 : 0
>>   if. 1 > # y do.
>>
>>   else.
>>   h =. 1{.y
>>   t =. 1}.y
>>   ((h&,)"0 t ), getNodes t
>>   end.
>>   )
>>
>>
>>   e.g. I can get the 10 edges of the graph K5 by doing
>>
>>   complete 5
>>
>>   My above code is ugly however. To be specific, it seems too
>>   imperative for J,  and the first part of the if. do. in
>>   getEdges doesn't return anything which seems ugly.
>>
>>   I would like to know if there is a more J-like, terse way to
>>   do this.
>>
>>   Regards,
>>   Jon
>>   ----------------------------------------------------------------------
>>   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

Reply via email to