Here's a faster implementation of that approach:

   (#~ >:&1e5)I.+./"1*/2 =/\_1 0 1|.!.' '"0 1/":,.i.1e6

(Though it's still slower than Jacobs' constructive approach.)

Thanks,

-- 
Raul

On Tue, Jul 6, 2021 at 6:38 AM R.E. Boss <[email protected]> wrote:
>
> Answer is correct, performance is poor, actually, the poorest:
>
>    n=.1e5 to 999999
>    n
> 100000 100001 100002 100003 100004 100005 100006 100007 100008 100009 100010 
> 100011 ...
>
>       $((1 e."1 [:{.@$@~."1 (1)|: 2}."1 (_2)}."1 (1 0 2)|: (0 1 2)|."0 1/ '  
> ',"1 ":"0@]) #]) n
> 33219
>    ts'((1 e."1 [:{.@$@~."1 (1)|: 2}."1 (_2)}."1 (1 0 2)|: (0 1 2)|."0 1/ ''  
> '',"1 ":"0@]) #]) n'
> 0.8453641 67116000
>
> Compare to performances in 
> http://jsoftware.com/pipermail/programming/2021-July/058348.html  and below.
>
>
> R.E. Boss
>
>
> -----Original Message-----
> From: Programming <[email protected]> On Behalf Of 
> Arthur Anger
> Sent: dinsdag 6 juli 2021 06:44
> To: [email protected]
> Subject: Re: [Jprogramming] Cut
>
> Skip et al.--
> I have not closely followed all the various replies to the triple-digit 
> challenge, but I haven't recognized any really direct approach to the 
> solution.  Mine consists of:
> --Format each number as a row of characters --Shift (not rotate) each row 
> twice relative to itself --Drop the two columns of partial overlap at each 
> end --Take the Nub of each 3-element column so generated --Find each group 
> containing a nub of size 1 --Select the corresponding original numbers
>
> It took me a few days to co-ordinate all the proper operations, ranks, and 
> transposes.  Here's the test:
>
>    vals=. 123334 122344 121212 111222 112122 555432
>    ((1 e."1 [:{.@$@~."1 (1)|: 2}."1 (_2)}."1 (1 0 2)|: (0 1 2)|."0 1/ '  ',"1 
> ":"0@]) #]) vals
> 123334 111222 555432
> --Art
>
> On Sat, 3 Jul 2021 18:13:15 -0500, Skip Cave <[email protected]> wrote:
> Can I use cut to find all the 6-digit integers that have three consecutive 
> identical digits? Or is there a more efficient way?
> ----------------------------------------------------------------------
> 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