Re: [Jprogramming] Quora problem

```Amazing for a quick doodle!  Mine are usually wrong and slow....
Mike

```
> On 12 Aug 2017, at 12:51, 'Jon Hough' via Programming
> <programm...@jsoftware.com> wrote:
>
> Just for fun, let's compare:
>
> ==============================
> My Machine:
> Ubuntu 17.x
> J 805
> ==============================
> NB. Mike's solution
> timespacex ' 10#.(#~(3=#@~.)"1) >: 9#.inv i. 9^3'
> 0.00127 153216
>
> NB. Pascal's solution
> perm =: i.@! A. i.
> combT =: [: ; ([ ; [: i.@>: -~) ((1 {:: [) ,.&.> [: ,&.>/\. >:&.>@:])^:(0 {::
> [) (<i.1 0) ,~ (<i.0 0) \$~ -~
> timespacex '10 #."1 /:~ >: ,/ ({~ perm@#)"1 ]  3  combT 9'
> 0.00189 1.1616e6
>
> NB. Jon's solution
> NB. Note, possibly not fair, since my solution does not give integer results,
> but equivalent array representation of each integer
> nr=:3&=@:#@:~. *. -.@:(0&e.)
> timespacex '(nr"1#])10 10 10#:i.1000'
> 0.002559 301568
>
> It seems Mike's solution is fast and uses the least amount of memory.
>
> Interestingly, if I integerify my results:
> timespacex ' ". (-.&'' '')@:":"1(nr"1#])10 10 10#:i.1000 '
> 0.001445 522624
>
> The speed is faster than just leaving as arrays, even though it uses more
> memory (I tried this multiple times, it's always faster).
> --------------------------------------------
> On Sat, 8/12/17, 'Pascal Jasmin' via Programming <programm...@jsoftware.com>
> wrote:
>
> Subject: Re: [Jprogramming] Quora problem
> To: "programm...@jsoftware.com" <programm...@jsoftware.com>
> Date: Saturday, August 12, 2017, 8:33 PM
>
> a general approach that uses much
> longer code, but permutations of combinations,
>
> perm =: i.@! A. i.
> combT =: [: ; ([ ; [: i.@>: -~) ((1 {:: [)
> ,.&.> [: ,&.>/\. >:&.>@:])^:(0 {::
> [) (<i.1 0) ,~ (<i.0 0) \$~ -~
>
> # 10 #."1 /:~ >: ,/ ({~ perm@#)"1
> ]  3  combT 9
> 504
>
>
>
>
>
>
> ________________________________
> From: 'Mike Day' via Programming <programm...@jsoftware.com>
> To: programm...@jsoftware.com
>
> Sent: Saturday, August 12, 2017 7:15 AM
> Subject: Re: [Jprogramming] Quora problem
>
>
>
> I think Skip wants all permutations, not just
> increasing and decreasing
> ones,
> so here's an alternative:
>     5({.,(-@[){.])
> 10#.(#~(3=#@~.)"1) >: 9#.inv i. 9^3
> 123 124 125 126 127 983 984 985 986 987
>
> The initial 5 ( ) is of course
> just to limit the output!
>
> Any use?
> Mike
>
> On 12/08/2017 10:56, 'Jon
> Hough' via Programming wrote:
>> Not
> particularly efficient or terse but here:
>>
>> inc=:
> -.@:(0&e.)@:~.@:(2&(</\)) NB. increasing
>> dec=:
> -.@:(0&e.)@:~.@:(2&(</\)) NB. decreasing
>> mt=: inc +. dec NB. monotonic
>>
>>    (-:9*8) }.
> (mt"1 # ] ) 10 10 10 #: i. 1000 NB. strip off the first
> 9*4 rows.
>>
> --------------------------------------------
>> On Sat, 8/12/17, Skip Cave <s...@caveconsulting.com>
> wrote:
>>
>>    Subject:
> [Jprogramming] Quora problem
>>    To:
> "programm...@jsoftware.com"
> <programm...@jsoftware.com>
>>    Date: Saturday, August 12, 2017, 6:16
> PM
>>
>>    How can I
> use J to generate all the possible
>>
> 3-digit integers that can be
>>
> constructed using the digits 1-9 (no
>>
> zeros), with no repeated digits in
>>
> each integer? The sequence starts with
>>    123 (smallest) and goes to 987
>>    (largest). Here's the first few
>>    integers in the sequence:
>>
>>    123 124 125 126
> 127 128 129 132 134 135
>>    136 137 138
> 139 142 143 145 146 147
>>    148 149 152
> 153 154 156 157 158 159
>>    162......
>>
>>    Skip
>>
>>    Skip Cave
>>    Cave Consulting LLC
>>
> ----------------------------------------------------------------------
>>    For information about J forums see http://www.jsoftware.com/forums.htm
>>
> ----------------------------------------------------------------------
>> For information about J forums see http://www.jsoftware.com/forums.htm
>
>
> ---
> This email has been checked for viruses by
> Avast antivirus software.
> https://www.avast.com/antivirus
>
>
> ----------------------------------------------------------------------
> 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```