Notice the difference:

   #L:_1(allsubsets;as;<@as2)'abcdef'
+--+--+--+
|64|21|21|
+--+--+--+

(as) and (as2) give only the (2!n+1) consecutive subsets, not all (2^n) subsets.


R.E. Boss
 

> -----Oorspronkelijk bericht-----
> Van: Programming <programming-boun...@forums.jsoftware.com>
> Namens 'Rob Hodgkinson' via Programming
> Verzonden: zondag 27 oktober 2019 22:26
> Aan: jonghough via Programming <programm...@jsoftware.com>
> Onderwerp: Re: [Jprogramming] Quora problem
> 
> Using RE’s and Henry’s suggestions, a slight generalisation to your #3 …
> 
> as2=: ;(#\ <@<"1@([\) ]) ‘abcdef'
> 
> Rob
> 
> > On 26 Oct 2019, at 7:36 am, Skip Cave <s...@caveconsulting.com> wrote:
> >
> > Roger,
> >
> > Nice! It seems there are many different approaches:
> >
> > allsubsets=: #:@i.@(2&^)@# #"_1 _ ]
> > as=.3 :';<@(<\.)\y'
> > ;(>:i.5) (|.@[ <@{."0 1 <\) 'abcde'
> >
> > Even if the result is to be integers, It seems it is easier to start
> > with literals and then convert to integers later, if at all.
> >
> > My next challenge is to generate all *permutations* of all subsets.
> >
> > Skip
> >
> >
> >
> > Skip Cave
> > Cave Consulting LLC
> >
> >
> > On Thu, Oct 24, 2019 at 1:54 PM Roger Hui <rogerhui.can...@gmail.com>
> wrote:
> >
> >>   allsubsets=: #:@i.@(2&^)@# #"_1 _ ]
> >>   allsubsets 'abcd'
> >>
> >> d
> >> c
> >> cd
> >> b
> >> bd
> >> bc
> >> bcd
> >> a
> >> ad
> >> ac
> >> acd
> >> ab
> >> abd
> >> abc
> >> abcd
> >>   allsubsets ;:'animal vegetable mineral'
> >> ┌─────────┬─────────┬───────┐
> >> │         │         │       │
> >> ├─────────┼─────────┼───────┤
> >> │mineral  │         │       │
> >> ├─────────┼─────────┼───────┤
> >> │vegetable│         │       │
> >> ├─────────┼─────────┼───────┤
> >> │vegetable│mineral  │       │
> >> ├─────────┼─────────┼───────┤
> >> │animal   │         │       │
> >> ├─────────┼─────────┼───────┤
> >> │animal   │mineral  │       │
> >> ├─────────┼─────────┼───────┤
> >> │animal   │vegetable│       │
> >> ├─────────┼─────────┼───────┤
> >> │animal   │vegetable│mineral│
> >> └─────────┴─────────┴───────┘
> >>
> >>
> >>
> >> On Thu, Oct 24, 2019 at 11:30 AM Skip Cave <s...@caveconsulting.com>
> >> wrote:
> >>
> >>> I find R. E. Boss' function quite useful in many instances. I call
> >>> it
> >> "all
> >>> sets". Is this a standard idiom in J? Is there a more efficient
> >>> construction that does this? Is there a primitive that does this?
> >>>
> >>> as=.3 :';<@(<\.)\y' NB. All Sets
> >>>
> >>> as i.5
> >>>
> >>> │0│0 1│1│0 1 2│1 2│2│0 1 2 3│1 2 3│2 3│3│0 1 2 3 4│1 2 3 4│2 3 4│3
> >>> 4│4│
> >>>
> >>>
> >>> Skip
> >>>
> >>>
> >>>
> >>> On Thu, Oct 24, 2019 at 12:30 PM R.E. Boss <r.e.b...@outlook.com>
> wrote:
> >>>
> >>>> Obviously the squares >2018 don't play any role whatsoever, so you
> >>>> can restrict yourself to %:2018
> >>>>
> >>>>> a#~2018=>+/ each a=.;<@(<\.)\2^~i.>.%:2018
> >>>> 49 64 81 100 121 144 169 196 225 256 289 324
> >>>>
> >>>> R.E. Boss
> >>>>
> >>>>
> >>>>> -----Oorspronkelijk bericht-----
> >>>>> Van: Programming <programming-boun...@forums.jsoftware.com>
> >>>>> Namens Skip Cave
> >>>>> Verzonden: donderdag 24 oktober 2019 19:12
> >>>>> Aan: programm...@jsoftware.com
> >>>>> Onderwerp: Re: [Jprogramming] Quora problem
> >>>>>
> >>>>> To me it seems that R. E. Boss provided the simplest approach.
> >>>>> Don't know about efficiency, but the results appear instantly:
> >>>>>
> >>>>>> a#~2018=>+/ each a=.;<@(<\.)\2^~i.100
> >>>>>
> >>>>> 49 64 81 100 121 144 169 196 225 256 289 324
> >>>>>
> >>>>> 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

Reply via email to