Скажем, у вас есть два списка: L1 и L2 одинаковой длины N. Определим prodSum как:
def prodSum(L1, L2) :
ans = 0
for elem1, elem2 in zip(L1, L2) :
ans += elem1 * elem2
return ans
Существует ли эффективный алгоритм для поиска, предполагая, что L1 сортируется, число перестановок L2 такое, что prodSum (L1, L2) < некоторое заданное значение?
Если это упростит проблему, вы можете предположить, что L1 и L2 - оба списка целых чисел из [1, 2,..., N].
Изменить: ответ Managu убедил меня, что это невозможно без предположения, что L1 и L2 являются списками целых чисел из [1, 2,..., N]. Меня все равно будут интересовать решения, которые предполагают это ограничение.