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