Существует три целых числа x
, y
и z
(каждый из них> = 1) и заданное верхнее граничное число n
<10 ^ 6. Кроме того, n = x + y + z
и output = cos(x) + cos(y) + cos(z)
.
Упражнение состоит в максимизации output
.
Я написал для этого простой скрипт, но сложность времени - O (n ^ 3). Есть ли способ упростить это?
from math import cos
n = 50
x = 1
y = 1
z = 1
total = cos(x) + cos(y) + cos(z)
for x in xrange(n):
for y in xrange(n):
for z in xrange(n):
if x + y + z == n:
temp = cos(x) + cos(y) + cos(z)
if temp > total: total = temp
print round(total, 9)