miércoles, 8 de mayo de 2013

Entrada # 5

Teoría de la Información Y Métodos de Codificación

Código Hamming

Lo que llevo de Código
from random import randint
pal = '10101100'
def paridad():
global pal
caparidad = list(pal)
contador = ({})
c = 0
for i in range(len(pal)):
var = 2 ** i
if var > len(pal):
break
else:
c = c + 1
contador["P"+str(c)] = var
j = 2 ** 0
lista1 = sorted(contador.items(), key=lambda x: x[1]) #Ordenamos el diccionario y lo convertimos a lista de listas
for i, j in lista1:
caparidad.insert(j-1, "*")
return caparidad, lista1
def obtfilas(usados, cadpad):
filas = ({})
for i, j in usados:
filas[i] = ''
cadena = list()
c1 = 1
c2 = 0
c = 0
bandera = 0
for k in range(len(cadpad)):
if j == k + 1: #Para agregar el primer elemento
cadena.append(cadpad[k])
bandera = 1
c = c + 1
d = 1
elif bandera == 0:
cadena.append(" ")
c = c + 1
while c < len(cadpad):
if c1 < j:
#print "Uno" #Conocer por cual paso
cadena.append(cadpad[c])
c1 += 1
c2 = 0
c += 1
elif c2 < j:
for l in range(j):
#print "Dos" #Conocer por cual paso
cadena.append(" ")
c2 += 1
c1 = 0
c += j
#if c > len(cadpad):
# c = (c - j) + 1
cadena = cadena[:len(cadpad)]
print "Cadena: ",cadena
filas[i] = cadena
return filas
def sumatoria(llave, valor):
lista = list(valor)
resu = 2
suma = 0
for j in lista:
if j != "*" and j != " ":
suma = suma + int(j)
if suma % 2 == 0:
resu = 0
else:
resu = 1
return suma, resu
def main():
global pal
print list(pal)
cadparidad, usados = paridad()
print usados, "\n", cadparidad
Datos = obtfilas(usados, cadparidad)
print Datos
for i in Datos.keys():
suma, res = sumatoria(i, Datos[i])
print i, suma, res
main()
view raw Hamming.py hosted with ❤ by GitHub

Referencias:

No hay comentarios:

Publicar un comentario