@Rushpil

Как оптимизировать программу нахождения 'Erdos number'?

Нужно оптимизировать программу. Написал программу для нахождения 'Erdos number'. Но задача не проходит по памяти и по времени,подскажите пожалуйста,где можно оптимизировать код ?
co_act = dict()
find_co_act = input()
with open(r"C:\Users\Maxim\Procopov\Publics.txt", encoding='utf-8') as file:
    for l in file:
        s = l.strip().split("/")[1:]
        n = len(s)
        for i in range(n):
            if s[i % n] in co_act:
                co_act[s[i % n]].update({s[(j + i) % n] for j in range(1, n)})
            else:
                co_act[s[i % n]] = {s[(j + i) % n] for j in range(1, n)}
if not (find_co_act  in co_act):
    print("Unknown")
    exit()
numb = dict().fromkeys(act.keys(), None)
numb["Erdos, Pal"] = 0
q = ["Erdos, Pal"]
while q:
    a = q.pop(0)
    for i in co_act[a]:
        if numb[i] is None:
            numb[i] = numb[a] + 1
            if i == find_co_act :
                print(numb[i])
                exit()
            q.append(i)
print("Infinity")
  • Вопрос задан
  • 60 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы