Sorry, Hauke,  what’s the DRY principle?
Mike

Sent from my iPad

> On 7 Jul 2021, at 13:06, Hauke Rehr <[email protected]> wrote:
> 
> some fun alternatives (not meant to be improvements):
> 
> firstdigit =: 9
> consecutive =: 10&(^ + * * ([ ^ <:@]))@(6&-)
> NB. number of items
> noi =: firstdigit * (consecutive 3) - (consecutive 4) + 10-1
> 
> now that we know what we want, let’s do it:
> 
> d3a =: }.@(":"0) 1000+i.1000
> tripsa =: 3 $"0 '0123456789'
> NB. the DRY principle
> rtbl =: 2 : ',/@:(u"n/)'
> exp2 =: (i.4) |. rtbl 0 1 , rtbl 1
> clean2 =: ~.@: #~ %~@i.&'0'"1
> 
> and finally, check if everything worked out fine:
> 
> (noi,6) -: $ clean2 d3a exp2 tripsa
> 
> 
>> Am 07.07.21 um 12:15 schrieb 'Mike Day' via Programming:
>> Here’s one implementation of what I’d suggested for construction from all 
>> 3-digit representations of 0-999,  working in characters rather than 
>> numerals. Staying in characters saves time and space, not shown here, 
>> compared to evaluating the representations.  Also, I’m pre-evaluating the 
>> 3-digit representations, so timing and sizing the calculation, below, might 
>> be misleading, compared, say, to sd3, which includes the calculation of all 
>> numbers from 1000 to 9999.
>> Alignment ok in fixed font!
>> d3    =: }."1 ":,.1000+i.1000              NB. 3 digit strings, 
>> '000','001'...'999'
>> trips =: |: 3 10$'0123456789'              NB. identical triples: 
>> '000','111'....
>> exp   =: ,/@:(0 1 2 3(|."0 1/)(,/@:(,"1/)))NB. Expand 3dig nums with triples
>> clean =: ~.@: #~'0'~:{."1                  NB. Unique elements of required 
>> 6dig nums
>>      $clean d3 exp trips
>> 33219 6
>>    ({~5?# )clean d3 exp trips
>> 691777
>> 722254
>> 780009
>> 575999
>> 588854
>> It’s apparently agreed that we’re happy to accept 4-,5-,6-tuples of repeated 
>> digits.
>> Cheers,
>> Mike
>> Sent from my iPad
>> ----------------------------------------------------------------------
>> For information about J forums see http://www.jsoftware.com/forums.htm
> 
> -- 
> ----------------------
> mail written using NEO
> neo-layout.org
> 
> ----------------------------------------------------------------------
> 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