[Jprogramming] Cut
'Mike Day' via Programming
programming at jsoftware.com
Sun Jul 4 08:24:56 UTC 2021
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 <janpieter.jacobs at gmail.com> 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. at 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 <rauldmiller at gmail.com> 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 <rauldmiller at gmail.com> 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 <jfondren at minimaltype.com>
>> wrote:
>>>>
>>>> On Saturday, July 3rd, 2021 at 6:50 PM, Julian Fondren <
>> jfondren at minimaltype.com> 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
More information about the Programming
mailing list