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

2 visualizaciones (últimos 30 días)
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?

Respuestas (1)

Guillaume
Guillaume el 24 de En. de 2017
Editada: Guillaume el 24 de En. de 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 comentario
summyia qamar
summyia qamar el 24 de En. de 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,:);

Iniciar sesión para comentar.

Etiquetas

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by