Untitled

mail@pastecode.io avatar
unknown
python
2 years ago
1.6 kB
3
Indexable
Never

#Datos aleatorios para que furule el codigo.
M=6
MasterList=[[9, 5, 2, 8, 9, 9],[3, 3, 5, 1, 4, 5, 1, 2],[1, 2, 9, 5, 4, 7, 3],[7, 5, 8, 8, 4],[5, 1, 4, 2]]
BestResult=[0]
ListaCombinaciones=[]
numerodecombinaciones=[0]
#Esta funcion coje cada combinacion, hace calculos con ellas, y guarda el maximo resultado en BestResult.
def DoCalc(lista):
        k=0
        for numero in lista:
            k+=(numero*numero)
        
        if k%M>BestResult[0]:
            BestResult[0]=k%M


def EnsenarCombinaciones(lista):
    dummylist=[]
    for item in lista:
        dummylist.append(item)
    ListaCombinaciones.append(dummylist)
    numerodecombinaciones[0]+=1
            




#Esta parte inicia una lista con la que trabajar
SolutionList2=[]
for listt in MasterList:
    SolutionList2.append(listt[0])




#En esta funcion esta la chicha, mira aqui para entender el codigo.
def Iter2(MasterList,i=0):
    j=0
       
    if i==len(MasterList)-1:    #Si estamos en la ultima fila:
        while j<len(MasterList[i]):
            SolutionList2[i]=MasterList[i][j]
            #DoCalc(SolutionList2)
            EnsenarCombinaciones(SolutionList2)
            j+=1


    else:
        while j<len(MasterList[i]): #En el resto de casos
            SolutionList2[i]=MasterList[i][j]
            Iter2(MasterList,i+1)
            j+=1





#Esto imprime el resultado en pantalla, el resultado es BestResult, que no te interesa. 
Iter2(MasterList)
print(numerodecombinaciones)
print(ListaCombinaciones)