Borrowing from https://rosettacode.org/wiki/Permutations#J we could
brute force it by generating all permutations of nine digits, and keep
the unique copies of the first three elements of those (represented as
integers):

   perms=: A.&i.~ !
   all1=: ~.10#.3{."1]1+perms 9

Faster would be to generate all combinations of digits and then use
all permutations of those combinations

   require'stats'
   all2=: ,10#.(perms 3){"1/1+3 comb 9

These do not generate the same lists

   10{.all1
123 124 125 126 127 128 129 132 134 135
   10{.all2
123 124 125 126 127 128 129 134 135 136

but the lists represent equivalent sets

   all1 -:&(/:~) all2
1

But, as you've seen in other responses, there's plenty of other approaches.

Thanks,

-- 
Raul


On Sat, Aug 12, 2017 at 5:16 AM, Skip Cave <s...@caveconsulting.com> wrote:
> 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

Reply via email to