Contar ceros usando un bucle for
Este es un programa que funciona y encuentra si el byte aleatorio dado (con el último bit siempre siendo 0) tiene un número par o impar de ceros (incluyendo el último bit), si el número de ceros es impar, entonces devuelve Verdadero e imprime “Esta secuencia es correcta.” y si es par, devuelve falso e imprime “Esta secuencia es incorrecta y debe corregirse.”.
importar aleatorio
def secuencia_binaria_aleatoria(n):
bit = “”
para i en rango(0, n, 1):
bit_aleatorio = str(aleatorio.randint(0, 1))
bit += bit_aleatorio
return bit
byte_de_prueba = secuencia_binaria_aleatoria(7) + ” | 0″
def paridad_impar(Byte):
resultado = Byte.count(‘0’)
#La línea anterior está usando count (), me gustaría encontrar una manera de reemplazarlo usando un bucle for, aunque eso pueda ser ineficiente.
si resultado % 2 == 0:
imprimir(“\n” + “Esta secuencia es incorrecta y debe corregirse.”, “\n”)
volver Falso
elif resultado % 2! = 0:
imprimir(“\n” + “Esta secuencia es correcta.” “\n”)
return Verdadero
#se puede usar else en lugar de elif anteriormente
imprimir(“Byte de prueba aleatorio dado: ” + byte_de_prueba)
imprimir(paridad_impar(byte_de_prueba))
Salida:
Byte de prueba aleatorio dado: 1011010 | 0
Esta secuencia es incorrecta y debe corregirse.
Falso
¿Cómo puedo contar los ceros usando un bucle for en este caso?
davy.ai
Se puede utilizar un bucle for para contar el número de ceros en el byte dado. Aquí hay un ejemplo de cómo hacerlo: