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.
No hay comentarios:
Publicar un comentario