Help with the equation in making groups.

Portgas Ace (view profile)

on 30 Sep 2012
i cant think of a syntax to do this.
for example #students : 43
min number of students per group: 2 max number of students per group: 3
%there will be 13 groups with 3 members and 2 groups with 2 members.
what if min =3, max = 4?
%there will be 10 groups with 4 members and 1 group with 3.
and so on. it differs depending on the given. i cant think of a syntax for this. :/

Andrei Bobrov (view profile)

on 30 Sep 2012
Edited by Andrei Bobrov

Andrei Bobrov (view profile)

on 30 Sep 2012

min1 = 2;
max1 = 3;
s = 43;
ns = fullfact(floor(s./[min1 max1]));
out = ns(find(ns*[min1 max1]' == s);
OR without fullfact
min1 = 2;
max1 = 3;
s = 43;
ns = floor(s./[min1 max1]);
[x y] = ndgrid(1:ns(1),1:ns(2));
ns1 = [x(:) y(:)];
out = ns1(ns1*[min1 max1]' == s,:);

Show 1 older comment
Andrei Bobrov

Andrei Bobrov (view profile)

on 30 Sep 2012
fullfact - function from Statistics Toolbox
Portgas Ace

Portgas Ace (view profile)

on 30 Sep 2012
fullfact doesn't work in my matlab. :(
Andrei Bobrov

Andrei Bobrov (view profile)

on 30 Sep 2012
see part OR in my answer