Artículos Relacionados

  • Tienes que instalar el plugin 'similar post' para ver esta sección.
  • Hay 18 Comentarios para “Combinaciones, permutaciones y agrupaciones en java”

    1. pedroo Dice:

      hola , saludos , he puesto el codigo tal y como lo escribes ahi y no funciona , no se porque , como ya he dicho lo escribi como mismo esta ahi , solo imprime
      1
      2
      3
      4

      y mas nada , no imprime las otras combinaciones , si me pudieran decir q puede suceder gracias pq la parte de arriba si funciona correctamente

      Responder

      • GianBros Dice:

        Hola Pedro gracias por tu mensaje si gustas pegar tu código fuente y con gusto lo reviso a ver donde tienes el error, o quizá y no sirva para todas las combinaciones pero al menos para 4 o 10 elementos si funciona jaja; o si gustas enviarme tu código fuente a mi correo adelante.

        PD: Mi correo está en la sección de mi currículum.

        Responder

        • Gustavo Antonio Correa Caja Dice:

          Hola tengo el mismo problemas y es urgente me podrias yudar porfas.
          Ponlo para todos px!

          public void meoto(){
          List lista = new ArrayList();
          lista.add(1);
          lista.add(2);
          lista.add(3);
          lista.add(4);

          //rellenar el array
          Iterator iter = lista.iterator();

          int aver=4;
          double a[]=new double[lista.size()];//declaramos nuestro arreglo y tamaño o
          //tam en este caso será 4.
          for(int m=1;m<=lista.size();m++){// por lo tanto haremos 4 veces
          double n=1;
          double r=1;
          double aux1=1;
          for(int i=1;i<=lista.size();n*=i,i++);//factorial de n que será el número de elementos.
          int aux=(lista.size()-m);//restamos el tamaño menos el numero de elementos en el grupo
          for(int i=1;i<=aux;aux1*=i,i++);//factorial de aux1, que es la resta anterior
          for(int i=1;i<=m;r*=i,i++);//factorial del número de elementos por grupo
          a[m-1]=n/(aux1*r);//formula para obtener número de combinaciones posibles y lo guardamos en un arreglo.
          }

          int x=1;
          while(iter.hasNext()){//esto es por que yo tengo mis elementos en una lista y utilice un iterator para ir recorriendo toda la lista.
          for(int i=0;i<a.length;i++){ //recorreremos el arreglo donde guardamos los valores de las combinaciones por cada grupo.
          System.out.println("sale:"+a[i]);
          for(int j=1;j<=a[i];j++){//el numero de elementos a mostrar mientras no pasemos el limite
          for(int k=1;k<=x;k++){//para imprimirlos en grupos
          System.out.print(iter.next());//imprimimos
          }System.out.println();//salto de línea y cambio de grupo
          }x++;
          }
          }//end while
          }

          Responder

        • Carlos Dice:

          hola, no veo la forma como hace para intercalar las combinaciones solo con inter.next() ????

          Responder

    2. Alberto Dice:

      Muchas gracias!

      Responder

    3. w4r0x Dice:

      el codigo no esta tan mal el men tiene la idea solo que tienen q declarar la variable me explico tam y hace el buffereddader para poder introducir los datos q te solicitan

      Responder

    4. Sergio Andrés Ñustes Dice:

      El mío es mejor 😛
      public static void Combinacion(int num){
      for(int i=0;i<Math.pow(2,num);i++){
      int arreglo[]=new int[num];
      int temp=i;
      for(int l=0;l<arreglo.length;l++){
      arreglo[l]=temp%2;
      temp/=2;
      }
      String res="";
      for(int j=0;j<arreglo.length;j++){
      if(arreglo[j]==1){
      res+="["+(j+1)+"]";
      }
      }
      System.out.println("Combinacion "+(i+1)+"= "+res);
      }
      }

      Responder

    5. Osorio Dice:

      Mi herma el codigo no pincha me da error en esta linea de codigo
      Iterator iter=c.iterator();
      me dice que: “Exception in thread “main” java.lang.NullPointerException
      at estudio.Combinaciones_N.Ar(Combinaciones_N.java:41)
      at estudio.Combinaciones_N.main(Combinaciones_N.java:34)”

      como resuelvo esto

      Responder

      • GianBros Dice:

        ¿Estas ejecutando el código completo que se encuentra en esta página modificaste algo? por el tipo de error o te falta el main o tu programa no se llama igual que en la clase.

        Responder

    6. M50sw Dice:

      Hola estoy usando tu algoritmo pero cuando uso mas de 15 List

      digamos asi

      lista.add(“13796.27″);
      lista.add(“5082.20″);
      lista.add(“13951.62″);
      lista.add(“13796.27″);
      lista.add(“5082.20″);
      lista.add(“1888.00″);
      lista.add(“27882.37″);
      lista.add(“15298.96″);
      lista.add(“26813.45″);
      lista.add(“40600.44″);
      lista.add(“1888.00″);
      lista.add(“27882.37″);
      lista.add(“15298.96″);
      lista.add(“26813.45″);
      lista.add(“40600.44″);

      envia un

      Exception in thread “main” java.lang.StackOverflowError
      at sun.nio.cs.SingleByteEncoder.encodeArrayLoop(Unknown Source)
      at sun.nio.cs.SingleByteEncoder.encodeLoop(Unknown Source)
      at java.nio.charset.CharsetEncoder.encode(Unknown Source)
      at sun.nio.cs.StreamEncoder$CharsetSE.implWrite(Unknown Source)

      Responder

    7. M50sw Dice:

      y volvi a probar tu codigo original con los

      list.add 1
      list.add 2

      y al 15avo elemento es donde manca el codigo con ese StackOverflow

      tu eres el creador de este algoritmo crees que puedas mejorarlo puesto yo quisiera ingresar unos 25 elementos pero nose como

      Responder

    8. Gau Dice:

      Buenas, tambien quisiera utilizar el código, pero hay forma de que imprima solo la combinacion de 2 elementos? en lugar de imprimirme todas las combinaciones posibles? Es decir que entregue:
      12
      13
      14
      23
      24
      34

      por lo que más intento entender el código, no puedo ver como le hago ese cambio.

      Responder

    9. camila Dice:

      hola, muchas gracias por el codigo, me sirvio bastante para mi trabajo, saludos desde chile 😀

      Responder

    Deja un Comentario