Здравствуйте, я написал код в Python, используя mpmath
, произвольной точности математике модуль:скорость Улучшение моего mpmath кода
from __future__ import division
from numpy import arctan, sin, absolute, log10
from mpmath import *
import time
imax = 1000001
x = mpf(0)
y = mpf(0)
z = mpf(0)
t = mpf(0)
u = mpf(0)
i = 1
mp.prec = 128
start_time = time.time()
while i < 1000001:
i += 1
x = mpf(x + 1)
y = mpf(y + x * x)
z = mpf(z + sin(y))
t = mpf(t + absolute(z))
u = mpf(u + log10(t))
print("--- %s seconds ---" % (time.time() - start_time))
print x
print y
print z
print t
print u
потребовалось около 87 секунд, чтобы распечатать результаты. Как я могу улучшить этот код? Мой друг в Фортране написал подобную программу, и для распечатки результатов потребовалось всего 3,14 секунды.
Hi. Существует веб-сайт SE для обзора кода, который более подходит для такого типа вопросов: https://codereview.stackexchange.com – dietbacon
Fortran примерно так же быстро, как и Pi – rolfl
Также вопрос очень плохо написан. Вы должны хотя бы объяснить, что ваша цель с кодом, вместо того, чтобы нас угадывать. – dietbacon