Cómo formar grupos?

Patricia
05 de Diciembre del 2004
Hola a todos, a ver si me podéis echar una manilla con esto...

Tengo un conjunto de M puntos, y tengo que hacer grupos con ellos. Cada grupo va a tener N-M puntos. En total (aplicando úna fórmula combinatoria -M sobre N-) se formarán G grupos.

Sé cuántos grupos se me formarán, pero no sé cómo formar cada uno de esos grupos, es decir: cómo poner los (N-M) puntos en cada grupo.

Os pongo un ejemplo:

Sea N= 1. Tengo M=10 puntos en total. Quiero que cada grupo tenga M-N=10-1=9 puntos. Aplico combinatoria y sé que se formarán (10 sobre 1) = 10 grupos.

Llamamos a los puntos: (1,2,3, ..., 9,10)

Sé que los grupos que se forman son:

G1 = (1,2,3,4,5,6,7,8,9)
G2 = (1,2,3,4,5,6,7,8,10)
G3 = (1,2,3,4,5,6,7,10,9)
G4 = (1,2,3,4,5,6,10,8,9)
G5 = (1,2,3,4,5,10,7,8,9)
G6 = (1,2,3,4,10,6,7,8,9)
G7 = (1,2,3,10,5,6,7,8,9)
G8 = (1,2,10,4,5,6,7,8,9)
G9 = (1,10,3,4,5,6,7,8,9)
G10 = (10,2,3,4,5,6,7,8,9)

Ahora: ¿cómo sería el código que me permitiera crear esos grupos Gi, para el caso general con M y N como datos? (aparte de los puntos, claro)

Os agradecería mucho que me echáseis una manos, porque no doy con la solución.

Gracias.



Roberto
05 de Diciembre del 2004
M = 10
N = 1
F = M - N
S = M

FOR I = 1 TO M
FOR J=1 TO F
IF J = S
G += S
ELSE
G+= J
NEXT J
G = STRING.EMPTY
S = S - 1
NEXT I

Creo que puede ser así no lo he provado
Un Saludo