Search All of the Math Forum:

Views expressed in these public forums are not endorsed by NCTM or The Math Forum.

Notice: We are no longer accepting new posts, but the forums will continue to be readable.

Topic: generation of random multiset permutation with restrictions
Replies: 17   Last Post: Jan 30, 2013 6:41 AM

 Messages: [ Previous | Next ]
 Bruno Luong Posts: 9,822 Registered: 7/26/08
Re: generation of random multiset permutation with restrictions
Posted: Aug 21, 2012 7:01 AM

"Michal Kvasnicka" wrote in message <k0vp6r\$83h\$1@newscl01ah.mathworks.com>...
> "Bruno Luong" <b.luong@fogale.findmycountry> wrote in message <k0visb\$hog\$1@newscl01ah.mathworks.com>...
> > This should work for standard array p:
> >
> > OK = @(p) isequal(sort(a),sort(p)) && all(arrayfun(@(x,s) ismember(x,s{1}),p,s));
> >
> > % Bruno

>
> Your solution is very elegant and effective. Thanks again!
>
> Is there any reason to completely eliminate cells (e.g. s = {[3],[1,2],[1,2,3],[1,2,3],[1,2,3],[1,2,3],[2,3],[2,3]};) from the numerical intensive computation and work only with standard arrays? OK function (and previous method for generation of random multiset permutation with restrictions) will be called very often (about 10^3-10^6 times), so I am looking for fastest method as possible.

If your set is not too large you might use logical array to store a set, e.g.
{3} is coded as [0 0 1]';
{1 2} is coded as [1 1 0]';

And s as
[0 0 1; 1 1 0; 1 1 1; 1 1 1; 1 1 1; 0 1 1; 0 1 1]' ;

Bruno

Date Subject Author
8/9/12 Michal Kvasnicka
8/10/12 Bruno Luong
8/10/12 Michal Kvasnicka
8/21/12 Michal Kvasnicka
8/21/12 Bruno Luong
8/21/12 Michal Kvasnicka
8/21/12 Bruno Luong
8/21/12 Michal Kvasnicka
8/21/12 Bruno Luong
8/21/12 Michal Kvasnicka
8/21/12 Bruno Luong
8/23/12 Michal Kvasnicka
1/29/13 Michal Kvasnicka
1/30/13 Michal Kvasnicka
1/30/13 Bruno Luong
1/30/13 Michal Kvasnicka
1/30/13 Bruno Luong
1/30/13 Michal Kvasnicka