Título: Ayuda en mi codigo Publicado por: RockAqp en 3 Abril 2012, 18:46 pm hola a todos quiero que me ayuden en este codigo
la verdad es que no se mucho de java pero me han dejado y tengo muchas dudas me han pedido hacer un codigo como el algoritmo de clausula de kleene osea si el lenguaje:a,b deve imprimir a,b,aa,ab,ba,bb,aaa.... etc hasta el infinito lo que hace es una combinatoria al ingresar una palabra como hago para realizar ese algoritmo o alguien tiene un metodo mas corto import java.util.Vector; import java.util.Scanner; public class kleene { private void generateR(String source, String partial,Vector out) { String newPartial=new String(partial); String newSource; if (source.length()==0) { out.addElement(newPartial); return; } for(int i=0;i<source.length();i++) { newPartial=partial.concat(source.substring(i,i+1)); newSource=source.substring(0,i); if (i<(source.length()+1)) newSource=newSource.concat(source.substring(i+1,source.length())); generateR(newSource, newPartial, out); } } public Vector generate(String source) { Vector out=new Vector(); String partial=new String(); generateR(source, partial, out); return out; } public static void main(String[] args) { Scanner read = new Scanner(System.in); String pal = read.next(); kleene a= new kleene(); Vector v=a.generate(pal.toString()); for(int i=0;i<v.size();i++) { System.out.print((String)v.elementAt(i)); System.out.print(", "); } } } Título: Re: Ayuda en mi codigo Publicado por: RockAqp en 4 Abril 2012, 21:10 pm Bueno ya lo resolvi despues de tanto ver el codigo
aunque aun se puede perfeccionar import java.util.Scanner; import java.util.Vector; public class klene { public Vector iterar(String[] tem,Vector v,int y) { tem = (String[])v.toArray(new String[v.size()]); //tem[tem.length+1]=null; String[] tem1=tem; int x=tem.length; int i=y; if(v.size()<20) { for( i=y;i<x;i++) { //int y=0; int c=0; do { String cad = tem1[c]; //tem[x+c]= tem1+cad; v.addElement(tem1+cad); c++; }while(c<x); y=i; } iterar(tem,v,y); } return v; } public static void main(String[] args) { System.out.println("Escriba el Lenguaje(Separado x comas)"); Scanner read = new Scanner(System.in); String pal = read.next(); String[] arrayLen = pal.split(","); Vector v=new Vector(); for(int i=0;i<arrayLen.length;i++) v.addElement(arrayLen); klene a= new klene(); v=a.iterar(arrayLen,v,0); /*for (int i = 0; i < salida.length; i++) { System.out.println(salida); } // Vector v=a.generate(pal.toString()); ¨*/ for(int i=0;i<v.size();i++) { System.out.print((String)v.elementAt(i)); System.out.print(", "); } // System.out.print(arrayLen.length); } } |