Here is a change to accomplish that goal:
ts =: 3 : 0
b=: 0 6$0
while.y>#b do. a=:,:1+6?70
b=:b,a#~172=+/"1 a
end.
)
If this gets to be too slow, there's ways of speeding that up.
Thanks,
--
Raul
On Tue, Jun 26, 2018 at 10:13 AM Skip Cave <[email protected]> wrote:
>
> I want to generate n sets of 6 random integers from 1->70 where each set of
> 6 integers sums to 172
>
> Here's my first try:
>
> ts =: 3 : 0
>
> b=: 2 6$0
>
> for. i.y do. a=:1+6?70
>
> b=:b,a
>
> end.
>
> b#~172=+/"1 b
>
> )
>
> Test it:
>
> ts 1000
>
> 27 60 5 24 53 3
>
> 38 35 3 15 57 24
>
> 16 29 19 50 4 54
>
> This generates some 6-element vectors that sum to 172 by elimination, but I
> don't have control of how many vectors it produces.
>
>
> I want to change the logic in the loop so that it keeps generating sets of
> 6 random integers, testing whether they sum to 172, saving just the sets
> that sum to 172, until I have saved y random sets that sum to 172, and then
> exits.
>
>
> Any help would be appreciated.
>
>
> 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