Drexel dragonThe Math ForumDonate to the Math Forum



Search All of the Math Forum:

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


Math Forum » Discussions » Software » comp.soft-sys.matlab

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

Advanced Search

Back to Topic List Back to Topic List Jump to Tree View Jump to Tree View   Messages: [ Previous | Next ]
Bruno Luong

Posts: 8,737
Registered: 7/26/08
Re: generation of random multiset permutation with restrictions
Posted: Jan 30, 2013 3:34 AM
  Click to see the message monospaced in plain text Plain Text   Click to reply to this topic Reply

Dynamic programming:

function p= allpc(a, s)

s = cellfun(@sort, s, 'unif', 0);
[u, ~, J] = unique(a);
n = accumarray(J(:), 1);
p = fliplr(allpc_engine(s, u, n));

end % allpc

%%
function p = allpc_engine(s, u, n)

s1 = s{1};
[b, loc] = ismember(s1, u);
s1 = s1(b);
s = s(2:end);
if isempty(s)
p = s1;
return
end
loc = loc(b);
p = [];
for i = 1:length(s1)
j = loc(i);
n(j) = n(j)-1;
old = u(j);
if n(j) <= 0
u(j) = Inf;
end
q = allpc_engine(s, u, n);
if ~isempty(q)
q(:,end+1) = s1(i);
p = [p; q];
end
u(j) = old;
n(j) = n(j)+1;
end

end % allpc_engine


%% Test
>> a = [1,1,1,2,2,3,3,3]

a =

1 1 1 2 2 3 3 3

>> s = {[3],[1,2],[1,2,3],[1,2,3],[1,2,3],[1,2,3],[2,3],[2,3]};

>> p = allpc(a,s)

p =

3 1 1 1 2 2 3 3
3 1 1 1 2 3 2 3
3 1 1 1 2 3 3 2
3 1 1 1 3 2 2 3
3 1 1 1 3 2 3 2
3 1 1 1 3 3 2 2
3 1 1 2 1 2 3 3
3 1 1 2 1 3 2 3
3 1 1 2 1 3 3 2
3 1 1 2 2 1 3 3
3 1 1 2 3 1 2 3
3 1 1 2 3 1 3 2
3 1 1 3 1 2 2 3
3 1 1 3 1 2 3 2
3 1 1 3 1 3 2 2
3 1 1 3 2 1 2 3
3 1 1 3 2 1 3 2
3 1 1 3 3 1 2 2
3 1 2 1 1 2 3 3
3 1 2 1 1 3 2 3
3 1 2 1 1 3 3 2
3 1 2 1 2 1 3 3
3 1 2 1 3 1 2 3
3 1 2 1 3 1 3 2
3 1 2 2 1 1 3 3
3 1 2 3 1 1 2 3
3 1 2 3 1 1 3 2
3 1 3 1 1 2 2 3
3 1 3 1 1 2 3 2
3 1 3 1 1 3 2 2
3 1 3 1 2 1 2 3
3 1 3 1 2 1 3 2
3 1 3 1 3 1 2 2
3 1 3 2 1 1 2 3
3 1 3 2 1 1 3 2
3 1 3 3 1 1 2 2
3 2 1 1 1 2 3 3
3 2 1 1 1 3 2 3
3 2 1 1 1 3 3 2
3 2 1 1 2 1 3 3
3 2 1 1 3 1 2 3
3 2 1 1 3 1 3 2
3 2 1 2 1 1 3 3
3 2 1 3 1 1 2 3
3 2 1 3 1 1 3 2
3 2 2 1 1 1 3 3
3 2 3 1 1 1 2 3
3 2 3 1 1 1 3 2

% Bruno


Date Subject Author
8/9/12
Read generation of random multiset permutation with restrictions
Michal Kvasnicka
8/10/12
Read Re: generation of random multiset permutation with restrictions
Bruno Luong
8/10/12
Read Re: generation of random multiset permutation with restrictions
Michal Kvasnicka
8/21/12
Read Re: generation of random multiset permutation with restrictions
Michal Kvasnicka
8/21/12
Read Re: generation of random multiset permutation with restrictions
Bruno Luong
8/21/12
Read Re: generation of random multiset permutation with restrictions
Michal Kvasnicka
8/21/12
Read Re: generation of random multiset permutation with restrictions
Bruno Luong
8/21/12
Read Re: generation of random multiset permutation with restrictions
Michal Kvasnicka
8/21/12
Read Re: generation of random multiset permutation with restrictions
Bruno Luong
8/21/12
Read Re: generation of random multiset permutation with restrictions
Michal Kvasnicka
8/21/12
Read Re: generation of random multiset permutation with restrictions
Bruno Luong
8/23/12
Read Re: generation of random multiset permutation with restrictions
Michal Kvasnicka
1/29/13
Read Re: generation of random multiset permutation with restrictions
Michal Kvasnicka
1/30/13
Read Re: generation of random multiset permutation with restrictions
Michal Kvasnicka
1/30/13
Read Re: generation of random multiset permutation with restrictions
Bruno Luong
1/30/13
Read Re: generation of random multiset permutation with restrictions
Michal Kvasnicka
1/30/13
Read Re: generation of random multiset permutation with restrictions
Bruno Luong
1/30/13
Read Re: generation of random multiset permutation with restrictions
Michal Kvasnicka

Point your RSS reader here for a feed of the latest messages in this topic.

[Privacy Policy] [Terms of Use]

© Drexel University 1994-2014. All Rights Reserved.
The Math Forum is a research and educational enterprise of the Drexel University School of Education.