how to make a code for distributing n different things among r groups such that each group get atleast certain amount?

2 Ansichten (letzte 30 Tage)
if I have 7 machines and I want to distribute them in 3 groups with all possible combinations such that each group has atleast 2 machines.how can I code this?

Antworten (1)

Guillaume
Guillaume am 24 Jan. 2017
Bearbeitet: Guillaume am 24 Jan. 2017
machines = 1:7;
groupcount = 3;
minmachinepergroup = 2;
minmachines = minmachinepergroup * groupcount;
assert(numel(machines) >= minmachines, 'Not enough to fill the minimum in each goup');
rmachines = machines(randperm(numel(machines))); %randomise the machines
groupdest = [repmat(1:groupcount, 1, minmachinepergroup), randi(groupcount, 1, numel(machines) - minmachines)]; %distribute first the minimum per group, then randomise
groups = accumarray(groupdest(:), rmachines, [], @(v) {v}); %distribute the machines into the groups
  1 Kommentar
summyia qamar
summyia qamar am 24 Jan. 2017
how can I change this?
C = zeros(3^7,7);
t = 0;
for k = 0:(3^7)-1
s = dec2base(k,3,7);
if length(unique(s))==3
t = t+1;
C(t,:) = s-0+1;
end
end
C = C(1:t,:);

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Get Started with MATLAB finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by