с разными числами от мала до велика, все они меньше 15000 и положительные. Как мне перебором найти абсолютно все возможные суммы, которые так же будут меньше 15000?
import random l = [random.randint(1, 15000) for a in range(0, random.randint(1, 100))] print(set(c for c in (sum(l[a:b]) for a in range(0, len(l)) for b in range(a+1, len(l))) if c < 15000))
Не совсем правильно же? Тут же только подпоследовательности все пересмотрены, а если взять первое число, десятое и двадцатое?
numbers= [] for i in range(len(numbers)): for j in range(i+1,len(numbers)-1): if numbers[i]+numbers[j]<15000: print(str(numbers[i])+' '+str(numbers[j]))
там повторы тоже будут,но думаю там уже сам сможешь разобраться
Там не пары, а любой длины. Щас
так просто замени вывод
Если нужно ещё быстрее, переписывай на чём-то комплириуемом. Ну а так это хотя бы уже динамика, а не тупой перебор https://pastebin.com/YtsyxFUB
Обсуждают сегодня