JPaniagua13 / Quine-McCluskey1

0 stars 0 forks source link

Función que agrupa a los mintérminos que difieren en un solo bit. #8

Open JPaniagua13 opened 2 years ago

JPaniagua13 commented 2 years ago

Esta función consiste en crear agrupamientos con los emparejamientos entre mintérminos que tengan un solo bit cambiante.

Shiofi commented 2 years ago

Entradas

    numBits: número de bits de la expresión booleana. 
                  Ejemplo: ABC || BC'D -> numBits es 4
    minTer1 y minTer2: las cadenas de minterminos a comparar. 
                  Ejemplo: minTer1-> '1100' & minTer2 -> '1111'

Salidas

    Si difieren en una cifra retorna true. De lo contrario false. (Si difieren en X's retorna false)
                  Ejemplo: '1101' y '1111' -> True
                                '1100' y '1111' -> False
                                '1XX1' y '10X1' -> False

Código

def difierenUnaCifra(numBits, minTer1, minTer2):

    cifrasDiferidas = 0

    for i in range(0, numBits):
        if (minTer1[i] != minTer2[i]) and (minTer1[i] == 'X'): #Pueden distinguir en 1's pero no en X's
            return False
        elif minTer1[i] != minTer2[i]: # Compare si difieren en una cifra
            cifrasDiferidas += 1
        else:
            continue
    if cifrasDiferidas > 1: #Si difieren en mas de una cifra entonces no
        return False
    else:
        return True