lunes, 28 de enero de 2013

Algoritomo de la regla 110 en JAVA

Por peticion de unos compa~eros esta vez publico el codigo de la regla 110, en JAVA.

/*

 * 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.

viernes, 25 de enero de 2013

Algoritmo de la regla 110 ITSC

Bueno este es el codigo del algoritmo de la regla 110 expuesta en la clase de graficacion 6A del ITSC, el codigo a continuacion es codigo python, pero obivamente muy facil de pasar a otro lenguaje de programacion como java.

el codigo es el siguiente :

def convert(d):
    if(d=="000"): r = '0';
    elif(d=="001"): r = '1';
    elif(d=="010"): r = '1';
    elif(d=="011"): r = '1';
    elif(d=="100"): r = '0';
    elif(d=="101"): r = '1';
    elif(d=="110"): r = '1';
    elif(d=="111"): r = '0';
    return r;
print convert("001")

#cad = "101011100101000"
cad = raw_input(">> ")
t =len(cad)
index = t-1
print "longitud : ",t
r = ""
for j in range(40):
    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
    cnt = 1
    r=""
    for i in range(t):
        if aux3==t:
           aux3=0
        l = cad[aux1]
        m = cad[aux2]
        n = cad[aux3]
    
        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
        r += convert(n1)
    cad = r
    print r


Cabe destacar varias cosas de este algoritmo.

1.- la funcion convert recive como parametro los 3 valores binarios que se leen de la cadena inicia, y como resultado dan un solo caracter sea 0 o 1, dependiendo de los 3 valores.

2.- el for de recorrido de la cadena binaria revisa de (len a len-1) contando los valores de 3 en tres empezando con (len 0 1) , (0 1 2), (1 2 3) hasta (3 len-2 len-1).

3.- hay un for principal que revisa la cadena inicial, y convierte la cadena inicial procesada en la siguiente cadena a procesar.

martes, 22 de enero de 2013

Aqui de Nuevo despues de mucho tiempo

Visito este blog una vez mas para recordar los momentos en que publicaba continuamente, ahora por cuestiones de tiempo/espacio mi tiempo esta muy reducido y poco a poco hago los esfuerzos necesarios para poder hacer publicaciones.

han pasado muchas cosas desde mi ultimo post, en mi vida, mi trabajo, la escuela, tantas aventuras por la que he pasado, pero poco a poco todo lo mudo a otros blogs. 

Reusando este BLOG

Claramente cree este blog lo iva a usar para resolver problemas y claro que para eso lo usare, sean los mios o los problemas de otras personas, esta vez publicare los problemas que resuelva en mis materias de la universidad, asi podre usar este blog como referencia para darselas a mis compañeros.

Tambien publicare resolucion de todo tipo de problemas que no tenga nada que ver con neopathic, es decir, resolvere problemas que me pidan, con el lenguaje que me pidan mis compañeros, y si a mi seme ocurre algun post para poner aqui, aqui lo pondre.

lunes, 8 de octubre de 2012

Busco socio para proyecto de IA



Que tal compa~eros del ITSC les hago una invitacion para aquellos que quieran participar en un proyecto de inteligencia artificial, el concepto es simple y la logica es la minima, solo busco alguna persona que le sea posible y que tenga las ganas de participar y aprender.

Si lo armamos y podemos vender una sola copia del software seremos beneficiados grandemente , el proyecto como lo menciono es simple y como es progresivo, habra mucha oportunidad.

La intencion es tener un software de sustentabilidad artificial para mostrar y si es posible vender.

Conocimientos en si de Inteligencia Artificial no son requeridos, mas bien conocimientos de programacion C, Python o Java si podrian ayudar...

Incluso si no conoce ningun lenguaje de programacion y le gustari aprender tambien puede acercarse.

Interesados enviar mail a lindosekai@gmail.com  Let's ROCK Mexico

martes, 2 de octubre de 2012

Que hago Ahora ??? Google Maps


Apenas fue anoche que empeze a trabajar con las apis de google y ya quiero solucionar todos mis problemas con ellas :D Empeze con Google Maps , ahora acabo de instalar las Google data libraries para python ;). bueno en lo que estoy trabajando ahora :


<<html>
<head>
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">

google.load('visualization', '1.0', {'packages':['corechart']});

google.setOnLoadCallback(dibujaGrafica);

function dibujaGrafica() {

var data = new google.visualization.DataTable();

data.addColumn('string', 'Dia de la Semanda');
data.addColumn('number', 'Visitas');
data.addRows([
['Lunes', 50],
['Martes', 61],
['Miercoles', 55],
['Jueves', 70],
['Viernes', 42],
['Sabado', 67],
['Domingo', 52]
]);

var opciones = {'title':'Visitas de Pharalax en una Semana',
'width':800,
'height':600};

var chart = new google.visualization.PieChart(document.getElementById('chart_div'));
chart.draw(data, opciones);
}
</script>
</head>

<body>
<div id="chart_div"></div>
</body>
</html>
Bueno pronto algo de la Google data Library

sábado, 29 de septiembre de 2012

UrlParse en python



Hojeando un poco el libro Core Python Aplications programming me encontre con esta familiar funcion : urlparse.urlparse que en si lo unico que hace es separar una url en basicamente 4 partes : scheme, netloc, path y query.

scheme es el protocolo con el que se esta tratando, sea http, ftp ... etc.
netloc es el hosting o dominio de la direccion (url)
path es la direccion relativa al dominio, las carpetas y el archivo final
query son los parametros con los que viaja la url

ejemplo :

import urlparse
myurl = "http://fiesta.com/archivos/busqueda.php?lugar=playa&hora=tarde";
parsedurl = urlparse.urlparse(myurl)

print parsedurl.scheme  # http
print parsedurl.netloc  # www.fiesta.com
print parsedurl.path    # /archivos/busqueda.php
print parsedurl.query   # lugar=playa&hora=tarde