Autor
|
Tema: Ayuda en mi codigo (Leído 2,015 veces)
|
RockAqp
Desconectado
Mensajes: 30
|
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(", "); } } }
|
|
|
En línea
|
|
|
|
RockAqp
Desconectado
Mensajes: 30
|
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); } }
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Ayuda con Codigo
Programación Visual Basic
|
Mitsu_POWA
|
1
|
2,005
|
26 Julio 2005, 00:25 am
por byebye
|
|
|
Ayuda con codigo en C (no me ejecuta un for y necesito ayuda)
« 1 2 3 »
Programación C/C++
|
Søra
|
22
|
11,585
|
22 Mayo 2010, 00:22 am
por Littlehorse
|
|
|
¿Cuál es la diferencia entre código objeto, código máquina y código binario?
Programación General
|
Aikanáro Anário
|
9
|
29,021
|
23 Diciembre 2010, 15:19 pm
por pucheto
|
|
|
ayuda codigo
Programación C/C++
|
kunai
|
3
|
2,507
|
1 Junio 2011, 12:56 pm
por Akai
|
|
|
ayuda con un codigo en c
Programación C/C++
|
@TGGG
|
1
|
2,366
|
26 Marzo 2021, 12:15 pm
por K-YreX
|
|