Как ускорить этот цикл в Python? - PullRequest
0 голосов
/ 22 июня 2019

У меня есть этот код, который состоит из пяти вложенных циклов, в каждом из которых по 100 итераций, и он все еще не завершился через 5 часов. Я новичок в Python, поэтому я просто написал самый простой код. Может кто-нибудь сказать, как я могу уменьшить время выполнения в Python по крайней мере до 10 секунд?

def func(c1, a2, b2, c2, a3):
    val = (((c1+c2-a2+10-a3)/2) - ((3/2)*((((c1-a2)*(c1-a2))/(c1+b2-a2)) + (((c2-a3)*(c2-a3))/(c2+10-b2-a3)))))
    print("Value of function: {}".format(val))
    return val

for c1 in np.arange(0,10,0.1):
    print("in c1 loop")
    for a2 in np.arange(0,10,0.1):
        print("in a2 loop")
        for b2 in np.arange(0,10,0.1):
            print("in b2 loop")
            for c2 in np.arange(0,10,0.1):
                print("in c2 loop")
                for a3 in np.arange(0,10,0.1):
                    print("in a3 loop")
                    iter = iter + 1
                    print("Iteration: {}".format(iter))
                    if (a2<c1 and a3<c2 and b2<c2 and a2<b2 and a3>c1):
                        print("in condition")
                        val = func(c1, a2, b2, c2, a3)
                        if val == 0:
                            count = count + 1
                            print("Success")
                            induV = [c1, a2, b2, c2, a3, val]
                            valIsZero.append(induV)
print(count)
print(valIsZero)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...