(<0 1)|: y

Nuvoc is correct: 
http://www.jsoftware.com/jwiki/Vocabulary/Idioms#Extract_The_Diagonal_Of_A_Table
 and http://www.jsoftware.com/jwiki/Vocabulary/barco#More_Information


R.E. Boss


> -----Original Message-----
> From: programming-boun...@forums.jsoftware.com [mailto:programming-
> boun...@forums.jsoftware.com] On Behalf Of Don Kelly
> Sent: vrijdag 11 december 2015 0:59
> To: programm...@jsoftware.com
> Subject: Re: [Jprogramming] advent of code - day 2
> 
> NuVoc
> (>0 1 )|: y
> 
> Don
> 
> On 12/10/2015 12:13 AM, Linda A Alvord wrote:
> > I'm just getting started on these and here is an elementary school solution.
> >
> > (I couldn't remember a shortcut to get a diagonal from a square matrix.
> >
> > f=: 13 :'(*/0 1{(/:y){y)+2*+/+/(=/~i.$y)*1|."1*/~(/:y){y'
> >
> > Linda
> >
> > -----Original Message-----
> > From: programming-boun...@forums.jsoftware.com
> [mailto:programming-boun...@forums.jsoftware.com] On Behalf Of Jan-
> Pieter Jacobs
> > Sent: Thursday, December 3, 2015 3:41 PM
> > To: programm...@jsoftware.com
> > Subject: Re: [Jprogramming] advent of code - day 2
> >
> > My solutions to the Day2 problems:
> >
> >
> > Probably there's better solutions around, but well...
> >
> >
> > NB. the surface of a box is the product of 2 elements of each permutation
> of sides
> >
> > NB. Needed paper surface
> >
> > s1a =: [: +/ (+/ + s1slack)@s1facesurf@s1parse NB. paper needed = sum of
> surfaces + slack
> >
> >     s1parse =: [: |: ([: ". ;. _1 'x', ]) ;. _2 NB. parse box sizes
> >
> >     s1facesurf =: */@(}:"2)@((i.@!@#) A. ]) NB. face surfaces
> >
> >     s1slack =: <./ NB. Slack space = smallest face
> >
> >
> > NB. Ribbon length
> >
> > s1b =: [: +/ (s1vol + s1faceperm)@s1parse NB. ribon = volume + smallest
> perimeter
> >
> >     s1vol =: */ NB. Volume
> >
> >     s1faceperm=: ([: <./ +:@(+/)@(}:"2))@((i.@!@#) A. ]) NB. smallest
> perimeter.
> >
> >
> > NB. input as text.
> >
> >
> > Best regards,
> >
> >
> > Jan-Pieter
> >
> > 2015-12-03 17:35 GMT+01:00 Thomas Costigliola <tcost...@gmail.com>:
> >
> >> Here's my solution to part 1.
> >>
> >> I=. /:~@:(do;._1)@:('x'&,);._2 ] 0 : 0
> >>
> >> 3x11x24
> >>
> >> 13x5x19
> >>
> >> 1x9x27
> >>
> >> 24x8x21
> >>
> >> 6x8x17
> >>
> >> ...
> >>
> >> )
> >>
> >>
> >> M=. 7 3 $ 1 1 0 1 0 1 0 1 1
> >>
> >> I +/@(+/@:(*/) . ^) |:M
> >>
> >> 1588178
> >>
> >>
> >>
> >>
> >> On Thu, Dec 3, 2015 at 6:47 AM, Ryan Eckbo <ec...@cim.mcgill.ca>
> wrote:
> >>
> >>> And mine:
> >>>
> >>> # part 1
> >>> Presents=. do each ('x'&cut);._2 freads'/tmp/input.txt'
> >>> sa=: 3 : '(l*w) + (2*l*w) + (2*w*h) + 2*h*l [ ''l w h''=. /:~y'
> >>> +/ sa"1 Presents
> >>>
> >>> # part 2
> >>> ribbon=. +/@:+:@:}:@:(/:~)@:>
> >>> vol=. */@:>
> >>> +/ (vol + ribbon)"1 Presents
> >>>
> >>> Ryan
> >>>
> >>>
> >>> On 3 Dec 2015, at 13:54, Ric Sherlock wrote:
> >>>
> >>>> Here's mine:
> >>>>
> >>>> require 'tables/csv stats'
> >>>> parcels=: _99 ". > 'x' readdsv jpath '~temp/aoc_day2_inp.txt'
> >>>>
> >>>> NB. Part 1
> >>>> +/ (<./ + [: +/ +:)"1 */"1 (0 1 , 1 2 ,: 0 2) {"_ 1 parcels
> >>>>
> >>>>   NB. or...
> >>>> getFaceSides=: (2 comb 3) {"_ 1 ]
> >>>> calcFaceArea=:  */"1@:getFaceSides
> >>>> calcPaper=: (<./ + +/@:+:)"1
> >>>> calcTotalPaper=: +/@:calcPaper@calcFaceArea
> >>>>
> >>>> calcTotalPaper parcels
> >>>>
> >>>> NB. Part 2
> >>>> ​+/ (*/"1 + ([: <./"1 [: (+/@:+:)"1 (2 comb 3)&{"_ 1))  parcels
> >>>>
> >>>>   NB. or ...
> >>>> volume=: */"1
> >>>> perimeters=: (+/@:+:)"1@getFaceSides
> >>>> calcRibbonLength=: (volume + <./"1@:perimeters)
> >>>> calcTotalRibbonLength=: +/@calcRibbonLength echo
> >>>> calcTotalRibbonLength parcels 
> >>>>
> >>>>
> >>>> On Thu, Dec 3, 2015 at 3:36 PM, 'Pascal Jasmin' via Programming <
> >>>> programm...@jsoftware.com> wrote:
> >>>>
> >>>>> outfix is quite forgettable, but this is much more elegant than
> >>>>> what I did.
> >>>>>
> >>>>>
> >>>>>   1 */\.  2 3 4
> >>>>> 12 8 6
> >>>>>
> >>>>>
> >>>>>
> >>>>> ----- Original Message -----
> >>>>> From: Joe Bogner <joebog...@gmail.com>
> >>>>> To: programm...@jsoftware.com
> >>>>> Sent: Wednesday, December 2, 2015 8:54 PM
> >>>>> Subject: Re: [Jprogramming] advent of code - day 2
> >>>>>
> >>>>> Pascal's #2 is the answer to part 2 of the question. Both of his
> >>>>> answers match mine and yours matches my part one.
> >>>>>
> >>>>> Pascal - looks similar to mine, albeit compressed in a single
> >>>>> line, which is close to the original problem description
> >>>>>
> >>>>> Henry - I haven't figured the logic of yours out yet at a quick
> >>>>> glance, I will need to look closer
> >>>>>
> >>>>> Thank you both for sharing
> >>>>>
> >>>>>
> >>>>> On Wed, Dec 2, 2015 at 8:40 PM, Henry Rich <henryhr...@gmail.com>
> >>> wrote:
> >>>>>> The 2 versions give different results.
> >>>>>>
> >>>>>> Mine:
> >>>>>>
> >>>>>> i =. ".;._1@('x'&,);._2 wd 'clippaste'
> >>>>>>
> >>>>>> +/ (/:~@(1&(*/\.))"1 i) +/ . * 3 2 2
> >>>>>>
> >>>>>>
> >>>>>> Henry Rich
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> On 12/2/2015 8:19 PM, 'Pascal Jasmin' via Programming wrote:
> >>>>>>> was wondering what took 7 lines, but its style
> >>>>>>>
> >>>>>>> 1: with input parsing
> >>>>>>>
> >>>>>>> +/ +/ (<./, 2&*)"1 */every@:(0 2&{ ; 1 2&{ ; 0 1&{)"1 ". >
> >>>>>>> +cutLF
> >> 'x'
> >>>>>>> rplc~ wdclippaste ''
> >>>>>>>
> >>>>>>> 2:
> >>>>>>>
> >>>>>>> +/ +/@(*/ , +:@(2 {. /:~))("1) ". > cutLF 'x ' rplc~ wdclippaste ''
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>> ----- Original Message -----
> >>>>>>> From: Joe Bogner <joebog...@gmail.com>
> >>>>>>> To: programm...@jsoftware.com
> >>>>>>> Sent: Wednesday, December 2, 2015 7:37 PM
> >>>>>>> Subject: [Jprogramming] advent of code - day 2
> >>>>>>>
> >>>>>>> building upon:
> >>>>>>>
> >> http://jsoftware.com/pipermail/programming/2015-
> December/043407.html,
> >>>>>>> but starting a new thread since the other one started to go in
> >>>>>>> a different direction.
> >>>>>>>
> >>>>>>> http://adventofcode.com/day/2
> >>>>>>>
> >>>>>>> Here's my solution:
> >>>>>>> https://github.com/joebo/lang-
> lab/blob/master/j/advent2015/day2
> >>>>>>> .ijs
> >>>>>>>
> >> ----------------------------------------------------------------------
> >>>>>>> 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
> >>>
> >> ----------------------------------------------------------------------
> >> 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