#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)