En primer lugar, esta respuesta es más bien una línea de pensamiento que una solución concete.
OK, entonces tiene una lista de 3 elementos (A1, A2, A3), donde quiere que A1 esté en algún lugar en el primer 1/3 de la lista de objetivos, A2 en el segundo 1/3 del objetivo lista, y A3 en el tercero 1/3. Del mismo modo, quiere que B1 esté en la primera 1/2, etc.
Asigna su lista de 10 como una matriz y luego comience con la lista con la mayor cantidad de elementos, en este caso C. Calcule la mancha donde C1 debería caer (1.5) Caiga C1 en el lugar más cercano, (en este caso, 1 o 2), luego calcule dónde C2 debería caer (3.5) y continúe el proceso hasta que no haya más Cs.
Luego vaya a la lista con el segundo número de artículos. En este caso, A. Calcule hacia dónde va A1 (1.66), así que intente con 2 primero. Si ya has puesto C1 allí, prueba 1. Haz lo mismo con A2 (4.66) y A3 (7.66). Finalmente, hacemos una lista de B. B1 debería ir a 2.5, así que pruebe con 2 o 3. Si se toman ambos, intente con 1 y 4 y siga moviéndose radialmente hasta que encuentre un punto vacío. Haz lo mismo con B2.
Usted va a terminar con algo como esto si tienes que elegir el número más bajo:
C1 A1 A2 C2 C3 C4 A3 B1 B2 C5
o esto si tienes que elegir el número más alto:
A1 C1 B1 C2 A2 C3 A3 C4 B2 C5
Esto parece funcionar bastante bien para sus listas de muestras, pero no sé qué tan bien se escalará a muchas listas con muchos artículos. Pruébalo y cuéntame cómo funciona.
Tendría que haber dieron un grado CS :-) –
a mi me parece que usted don' Simplemente quiero combinarlos, quiere que los combinen uniformemente como una cremallera o autos que se fusionen amablemente en una carretera. ¿Estoy en lo correcto? – sblundy
"coches que se unen educadamente en una carretera" - ¿Estoy perdido ...?;) – GalacticCowboy