• Viernes 8 de Noviembre de 2024, 14:39

Autor Tema:  código java de permutaciones  (Leído 9018 veces)

minerva86

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
código java de permutaciones
« en: Lunes 9 de Marzo de 2009, 00:46 »
0
Hola que tal quisiera implementar un contador en este codigo ojala me puedan ayudar
solo quiero que muestre el num de combinaciones posibles  es todo aqui se los dejo

package permutar;

/**
 *
 * @author Administrador
 */
public class Permutar {


   public static void main ( String args [])
   {
        System.out.println("El numero base es");
       String p ="342";
       

      int pr = getFactorial(p.length());
      String[] ne = permutar(p,pr);

      mostrar( ne );
   }

   public static String[] permutar(String cadena,int p)
   {
      String[] per=new String[p];
      int l = cadena.length();
      int d=p/l;
      String[] aux = permutacion(cadena);
      int pos =0;

      if(p==1||l==1)
      {
         per[0] = cadena;
         return per;
      }

      for(int i=0;i<aux.length;i++)
      {
         String[] auxiliar = permutar(aux.substring(1),getFactorial(l-1));
         for(int j=0;j<auxiliar.length;j++)
         {
            per[pos]=aux.charAt(0)+auxiliar[j];
            pos++;
         }
      }
      return per;

   }
   public static String[] permutacion(String cadena)
   {
      int n = cadena.length();
      String temporal="";
      String[] vector = new String[n];
      vector[0]=cadena;
      for(int i=1;i<n;i++)
      {
         for(int j=0;j<n;j++)
         {
            if(j==n-1)
                  temporal = cadena.charAt(j)+temporal;
            else temporal += cadena.charAt(j);
         }
         cadena=temporal;
         vector=temporal;
         temporal="";
      }
      return vector;
   }
   public static int getFactorial (int n)
   {
       
      int result;
      if(n==1||n==0)
         return 1;

      result = getFactorial(n-1)*n;
       
      return result;
   }
   public static void mostrar (String[] vector)
   {
       
      for(int i= 0; i< vector.length;i++)
      {
             
           
         System.out.println(vector);

           
      }
   }
}
 :hitcomp: