Smart. So the JMT-solution is the winner.
R.E. Boss -----Original Message----- From: Programming <[email protected]> On Behalf Of 'robert therriault' via Programming Sent: zondag 4 juli 2021 16:00 To: [email protected] Subject: Re: [Jprogramming] Cut If the result can be returned in literal format then there is no need to expand/collapse the digits which results in a skinnier and faster literal version 100 timespacex '~.,10#.(1+2*=i.4)#"1/10#.inv 1e3+i.9e3' NB. Miller's golfed version of Jacobs 0.00220303 3.15389e6 $ ~.,10#.(1+2*=i.4)#"1/10#.inv 1e3+i.9e3 33219 100 timespacex '~. ,/ (1+2*=i.4)#"1/":,. 1e3+i.9e3' NB. Therriault's literal version 0.00109978 658912 $ ~. ,/ (1+2*=i.4)#"1/":,. 1e3+i.9e3 33219 6 Cheers, bob > On Jul 4, 2021, at 06:09, Raul Miller <[email protected]> wrote: > > Jacobs' approach could also survive a bit of golf: > > $~.,10#.(1+2*=i.4)#"1/10#.inv 1e3+i.9e3 > 33219 > > Thanks, > > -- > Raul > > > On Sun, Jul 4, 2021 at 6:09 AM R.E. Boss <[email protected]> wrote: >> >> ts 'ssd3 0' NB. Jacobs >> 0.0049295 4718752 >> $ ssd3 0 >> 33219 >> >> ts '1e5+I.+./(3#"1":i.10 1) +./@E."1/ ":1e5+i.9e5 1' NB. Miller >> 0.3565249 58725056 >> $ 1e5+I.+./(3#"1":i.10 1) +./@E."1/ ":1e5+i.9e5 1 >> 33219 >> >> ts 'sn #~ 1 e."(1) 3 #@~.\"1] sn' NB. Boss >> 0.5836545 34605056 >> $ sn #~ 1 e."(1) 3 #@~.\"1] sn >> 33219 6 >> >> ts '$(#~ triple"1) sn' NB. Fondren >> 0.7807501 3147712 >> $ (#~ triple"1) sn >> 33219 6 >> >> Jacobs' solution is by far the fastest, almost 200 times the solution of >> Fondren, which is the thinnest. >> No need for D >> Nice to see the different approaches. >> >> >> R.E. Boss >> >> >> -----Original Message----- >> From: Programming <[email protected]> On >> Behalf Of 'Mike Day' via Programming >> Sent: zondag 4 juli 2021 10:50 >> To: [email protected] >> Subject: Re: [Jprogramming] Cut >> >> ... prepend ..., thanks to iPad spell correction! >> M >> >> Sent from my iPad >> >>> On 4 Jul 2021, at 09:24, Mike Day <[email protected]> wrote: >>> >>> That’s what I was thinking too, or even take all 3-digit numbers & insert, >>> pretend, append triples... >>> again, it’s better if you’re happy with quads etc. >>> >>> Cheers, >>> >>> Mike >>> >>> Sent from my iPad >>> >>>> On 4 Jul 2021, at 08:50, Jan-Pieter Jacobs <[email protected]> >>>> wrote: >>>> >>>> Not using cut here, but I took a generative approach: >>>> >>>> ssd3=: 10#. [:~.[:,/(1 1 1 3 |."0 1~ i. 4) #"1/ (4#10)#: >>>> 1000+i.@9000"_ >>>> >>>> It basically starts from all 4 digit numbers, repeats each digit in >>>> turn, then takes them all together and nubs it. >>>> I guess it's fine if your definition considers 3 or more >>>> repetitions as being fine. >>>> >>>> I didn't double check all, but a quick random check seems to >>>> confirm the >>>> outcome: >>>> >>>> ({~ 20 ?@$ #) ssd3 0 >>>> 333975 956664 529777 947772 886661 811175 666289 622212 858777 >>>> 637773 >>>> 843999 488844 506662 267779 577728 111463 418444 861119 916333 >>>> 722214 >>>> >>>> and it seems to run reasonably fast even on my phone: >>>> >>>> 30 timex 'ssd3 0' >>>> 0.020757 >>>> >>>> Best regards, >>>> >>>> Jan-Pieter >>>> >>>>> On Sun, Jul 4, 2021, 05:53 Raul Miller <[email protected]> wrote: >>>>> >>>>> Oops, I should have replace i.9 1 with i.10 1 >>>>> >>>>> $1e5+I.+./(3#"1":i.10 1) +./@E."1/ ":1e5+i.9e5 1 >>>>> 33219 >>>>> >>>>> Sorry about that... >>>>> >>>>> -- >>>>> Raul >>>>> >>>>>> On Sat, Jul 3, 2021 at 11:51 PM Raul Miller <[email protected]> >>>>>> wrote: >>>>>> >>>>>> You did not include a definition for triple here, and I have no >>>>>> way of reproducing your result. >>>>>> >>>>>> This is a bit slower to execute (0.37 seconds on my laptop), but >>>>>> faster to implement: >>>>>> >>>>>> $1e5+I.+./(3#"1":i.9 1) +./@E."1/ ":1e5+i.9e5 1 >>>>>> 29816 >>>>>> (12345+i.10){1e5+I.+./(3#"1":i.9 1) +./@E."1/ ":1e5+i.9e5 1 >>>>>> 444993 444994 444995 444996 444997 444998 444999 445000 445111 >>>>>> 445222 >>>>>> >>>>>> -- >>>>>> Raul >>>>>> >>>>>> On Sat, Jul 3, 2021 at 7:59 PM Julian Fondren >>>>>> <[email protected]> >>>>> wrote: >>>>>>> >>>>>>> On Saturday, July 3rd, 2021 at 6:50 PM, Julian Fondren < >>>>> [email protected]> wrote: >>>>>>>> That takes about 80x as long as the attached method using the >>>>>>>> FFI and a quick library in D. >>>>>>> >>>>>>> That attachment got stripped? Well, it's nothing special. >>>>>>> >>>>>>> extern(C) void triples(int* xs, int len) @nogc { >>>>>>> foreach (i; 0 .. len) >>>>>>> xs[i] = triple(xs[i]); >>>>>>> } >>>>>>> >>>>>>> triplesd =: './libtriple.so triples n *i i'&cd triples =: [: >>>>>>> triplesd (; #) triples 123334 122344 121212 111222 112122 >>>>>>> 555432 >>>>>>> +-+-----------+-+ >>>>>>> |0|1 0 0 1 0 1|6| >>>>>>> +-+-----------+-+ >>>>>>> $(#~ triple"1) sn >>>>>>> 33219 6 >>>>>>> $(#~ 1 {:: triples) n >>>>>>> 33219 >>>>>>> 30 timex '$(#~ triple"1) sn' >>>>>>> 0.869076 >>>>>>> 30 timex '$(#~ 1 {:: triples) n' >>>>>>> 0.0100672 >>>>>>> >>>>>>> ---------------------------------------------------------------- >>>>>>> -- >>>>>>> ---- 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
