Raul, Robert, Jimmy, Louis, Bo, Rob,
Thanks so much for all the thoughtful and interesing answers. Your examples
gave me much insight on how the while. do. control structures work, which I
can never seem to remember.  I also got a better understanding of
itemize/laminate, very useful for sticking vectors together.

In my particular case. I didn't have to generate millions of combinations,
so efficiency wasn't much of an issue for me.

Skip


On Tue, Jun 26, 2018 at 9:12 AM Skip Cave <s...@caveconsulting.com> 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

Reply via email to