/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package fractal; public class automata { public static char convert(String d){ char r='x'; if(d.equals("000")) r = '0'; else if(d.equals("001")) r = '1'; else if(d.equals("010")) r = '1'; else if(d.equals("011")) r = '1'; else if(d.equals("100")) r = '0'; else if(d.equals("101")) r = '1'; else if(d.equals("110")) r = '1'; else if(d.equals("111")) r = '0'; return r; } public static void main(String arg[]) { String SRED = "\u001B[37m"; String ERED = "\u001B[31m"; int t,index,aux1,aux2,aux3; String cad = "10010100101001010101010101010101010101010101000010100101010010001001001011011100101000"; //cad = raw_input(">> ") t =cad.length(); index = t-1; //print "longitud : ",t String r = ""; for (int j=0;j<40;j++){ aux1 = index; // este debe ser longitud -1 , al iniciar aux2 = index -index; // este debe ser 0 al iniciar aux3 = index - (index-1); // este debe ser 1 al iniciar int cnt = 1; r=""; char[] cadx=cad.toCharArray(); for (int i=0;i<cad.length();i++){ if (aux3==t){ aux3=0;} char l = cadx[aux1]; char m = cadx[aux2]; char n = cadx[aux3]; //System.out.println(aux1+"-"+aux2+"-"+""+aux3); String n1 = l+""+m+""+n; if (cnt==1){ aux1 = 0; aux2 = 1; aux3 = 2; } else { aux1 = aux1 +1; aux2 = aux2 +1; aux3 = aux3 +1; } cnt = cnt+1; // System.out.println(n1 + " - - " + convert(n1) ); r += ""+convert(n1); } cad = r; for(char c:r.toCharArray()) { if(c=='0'){ System.out.print(SRED+""+"█"+ERED); } else { System.out.print("█"); } } System.out.println(""); //System.out.println(r); } //print r } }
Funciona de la misma forma que el algoritmo anterior solo que este esta en java, hay ciertas caracteristicas muy diferentes de python, como son la declaracion de variables y la sintaxis de los for, pero la estructura del algoritmo es la misma.