5 votos

El número de combinaciones con elementos de diferentes conjuntos de

Por desgracia, yo no podía encontrar ni desarrollar un cerrado fórmula, pero creo que hay una solución simple para este problema. Podría por favor ayudarme?

Supongamos que hay 4 grupos diferentes:

Conjunto, de los elementos: A1, A2, A3, A4

De la serie B, los elementos: a, B1, B2, B3

Conjunto C, elementos: C1, C2, C3

Conjunto D, elementos: D1

Cada uno de los elementos en un conjunto differes de los otros, de modo que A1 no es igual a A2.

Cómo muchos de los nuevos conjuntos diferentes puede ser creado a partir de los elementos que forman la 3 de la (4) conjuntos (Conjunto A, B, C y Set D) si puedo elegir sólo uno de los elementos forma un conjunto? Escoger el orden no es importante - (A1, B1, C1) y (A1, C1, B1) son los mismos. (A1, A2, B1) no está permitido, porque tanto A1 y A2 provienen de la misma Un conjunto.

Para elegir 1-1 elemento de la forma a, B, C o a, B, D, a, C, D, o, B, C, D.

Básicamente estoy interesado en una solución general.

Puede ser resuelto con un algoritmo, pero requiere de tiempo y varios bucles, especialmente cuando los conjuntos son grandes.

Aquí está mi código: (de Acuerdo a la respuesta es 69.)

int A[5] = { 1, 2, 3, 4};
int B[4] = { 5, 6, 7 };
int C[4] = { 8, 9, 10 };
int D[2] = { 11};
int *a[4] = { A, B, C, D };

int size[4] = { 4, 3, 3, 1 };

int num = 0;
for (int s1 = 0; s1 < 4; s1++)
{
    for (int s2 = s1 + 1; s2 < 4; s2++)
    {
        for (int s3 = s2 + 1; s3 < 4; s3++)
        {
            //Sets are choosen.

            for (int i = 0; i < size[s1]; i++)
            {
                for (int j = 0; j < size[s2]; j++)
                {
                    for (int k = 0; k < size[s3]; k++)
                    {
                        num++;
                        cout << a[s1][i] << "  " << a[s2][j] << "  " << a[s3][k] << endl;
                    }
                }
            }




        }
    }
}
cout << "NUM: " << num;

Gracias de antemano!

3voto

Aksakal Puntos 11351

Si usted sólo necesita tres sets, en un momento, luego 4*3*3+4*3*1+4*3*1+3*3*1=69 es su respuesta. Aquí cómo va.

Primero seleccione los conjuntos de sacar de: ABC, ABD, ACD y BCD. Usted sabe la fórmula binominal para comprobar el número: $\frac{4!}{3!(4-3)!}=4$

A continuación, para cada uno de los tres conjuntos de elegir los elementos: A1,B1,C1, etc. Usted sabe la fórmula: $n_A\cdot n_B\cdot n_C$

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X