Ich habe zwei Listen aus Zahlen (Integer); Beide haben 2 Millionen einzigartige Elemente.Python - 2 Listen, und Suche nach maximal Produkt aus 2 Listen
I Nummer ein finden möchten aus der Liste 1 und b aus der Liste 2, dass -
1)a*b should be maximized.
2)a*b has to be smaller than certain limit.
hier ist, was ich kam mit:
maxpq = 0
nums = sorted(nums, reverse=True)
nums2 = sorted(nums2, reverse=True)
for p in nums:
n = p*dropwhile(lambda q: p*q>sqr, nums2).next()
if n>maxpq:
maxpq=n
print maxpq
irgendwelche Vorschläge? edit: meine Methode ist zu langsam. Es würde mehr als einen Tag dauern.
tut, was Sie Arbeit? Wenn nicht, was ist daran falsch? – Aesthete
Es ist zu langsam. : D Liste 1 hat 2000000 Elemente, was bedeutet, dass von meinem Code 2000000 Vergleiche gemacht werden müssen - die Geschwindigkeit des Vergleichs auf meiner Efeu-Brücke ist etwa 1 ~ 2 Vergleich (s)/Sek. das wird nicht gut gehen .. – thkang
Das solltest du wohl in deiner Frage erwähnen, weil es im Moment ziemlich vage ist. – Aesthete