es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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?

Tags:  ,

Answer

  1. Avatar for 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:

    def ParidadImpar(Byte):
      resultado = 0
      for i in range(len(Byte)):
        if Byte[i] == '0':
          resultado += 1
      if resultado % 2 == 0:
        print("\n" + "Esta secuencia es incorrecta y debe ser corregida.", "\n")
        return False
      elif resultado % 2 != 0:
        print("\n" + "Esta secuencia es correcta." "\n")
        return True
    

Comments are closed.