Pregunta

i tiene una matriz, como a continuación

int[] array = new array[n];// n may be 2,3,4

ejemplo para N = 4

int[] array = new array[4];

array[0] = 2;
array[1] = 4;
array[2] = 6;
array[3] = 8;

¿Cómo puedo calcular todas las combinaciones no repetida de esta matriz sin utilizar LINQ puede estar dentro?

2,4,6,8
2,4,8,6
2,8,6,4
2,6,4,6
8,6,4,2
2,4,6,8
.......
.......
.......

¿Fue útil?

Solución

Otros consejos

Bueno, dado que usted está buscando todas las combinaciones irrepetidos, que significa que habrá N! tales combinaciones ... (por lo que, en su caso, N! = 4! = 24 tales combinaciones).

Como estoy en el medio de la publicación de esta, dommer ha señalado una buena aplicación.

Sólo se advirtió que es se va a poner muy lento para valores grandes de N (ya que hay N permutaciones).

Piense en los dos posibles estados del mundo para ver si se arroja ninguna luz.

1) No hay duplicados en mi matriz (es decir. Cada número de la matriz es única). En este caso, el número de posibles permutaciones hay?

2) Hay una sola víctima de la matriz. Por lo tanto, el número de permutaciones que ha calculado en la primera parte, ¿cuántos son simplemente duplica

Hmmm, permite echar una matriz de tres elementos para la simplicidad

1,3,5 tiene el número de permutaciones?

1,3,5

1,5,3

3,1,5

3,5,1

5,1,3

5,3,1

Así que seis permutaciones

Ahora lo que pasa si cambiamos la lista decir 1,5,5?

Tenemos

1,5,5

5,1,5

5,5,1

Mi pregunta sería, ¿cómo se puede expresar a través de este factoriales?

Tal vez trate de escribir todas las permutaciones con una matriz de cuatro elementos y ver si la bombilla se apaga?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top