Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Не работает код. Запускается, но не выводит, объясните почему.

Владислав Кашкиров Ученик (111), на голосовании 3 недели назад
from itertools import *

def f(x):
P = 268764<=x<=775637
Q = 128932<=x<=894567
R = 546831<=x<=929871
A = a1<=x<=a2
return (not(A))<=((P==Q)<=(R==Q))

Ox=[i/4 for i in range(128932*4,929871*4+1)]
c=[]

for a1,a2 in combinations(Ox,2):
if all(f(x)==1 for x in Ox):
c.append(a2-a1)
print(min(c))
Голосование за лучший ответ
Cogni Просветленный (46614) 1 месяц назад
Потому что в цикле идёт перебор колоссального количества пар (миллионы значений в Ox и потом combinations из них), а внутри для каждой пары ещё и проверяется all(f(x) ... по всему Ox), что практически бесконечно и вывод никогда не наступает.
Владислав КашкировУченик (111) 1 месяц назад
Спасибо
Оракул Оракул (63138) 1 месяц назад
Добавьте в for и увидите, что все работает, комбинаций слишком много
 print(a1, a2) 
Владислав КашкировУченик (111) 1 месяц назад
Спасибо
Похожие вопросы