Я не уверен на 100%, что такое инвариант тройного степенного суммирования.
Примечание: n всегда является неотрицательным значением.
Псевдокод:
triplePower(n)
i=0
tot=0
while i <= n LI1
j = 0
while j < i LI2
k = 0
while k < i LI3
tot = tot + i
k++
j++
i++
Я знаю, что это грязно и может быть сделано гораздо проще, но этоэто то, что я должен делать (в основном для практики анализа алгоритмов).
Я должен придумать три инварианта цикла;LI1, LI2 и LI3.Я думаю, что для LI1 инвариант имеет какое-то отношение к tot = (i ^ 2 (i + 1) ^ 2) / 4 (уравнение для суммы кубов от 0 до i)Я не знаю, что делать для LI2 или LI3.Цикл в LI2 делает i ^ 3, а LI3 делает i ^ 2, но я не совсем уверен, как определить их как инварианты цикла.
Было бы легче определить инварианты, если бы у меня было 3 отдельных суммарных переменныхв каждом из тел цикла while?
Спасибо за любую помощь, которую вы можете оказать.
Также есть порядок роста этой функции: Θ (n ^ 3)?