JPaniagua13 / Quine-McCluskey1

0 stars 0 forks source link

Componer la función que agrupa mintérminos según el número de 1’s #6

Open JPaniagua13 opened 2 years ago

dafta31 commented 2 years ago

Entradas

- numBits: numero de bits de la expresion booleana. Ejemplo: ABC || BC'D -> numBits es 4
- minTerm: diccionario con minterminos sin agrupar. 
Ejemplo: {1:'0001', 2:'0010', 3:'0011', 7:'0111', 8:'1000', 15:'1111'}

Salidas

- una lista de listas con los minterminos en decimal. El indice equivale al num de 1's del grupo
    Ejemplo: [[], [1, 2, 8], [3], [7], [15]]

El índice de la lista indica también el número de 1's del diccionario

Ejemplo

def agruparPorUnos(numBits, minTerSinAgrupar):
    minTerAgrupados = list()

    for i in range(0, numBits+1):     #i es el numero de 1's a buscar.
        lista = list()            #Cree un diccionario vacio
        for key in minTerSinAgrupar:    #Itere por el diccionario desagrupado en busqueda
                                        #de un mintermino con i numero de 1's
            if minTerSinAgrupar[key].count('1') == i:    
                lista.append(key) # Si coincide anadalo al diccionario

        minTerAgrupados.append(lista)  #Agregue el diccionario a la lista
    return minTerAgrupados