트리플 파워 합계에서 불변량이 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++
나는 그 혼란을 알고 훨씬 쉬운 방법으로 수행 할 수 있지만, 이것은 내가 (주로 알고리즘 분석 연습) 할 것으로 예상하고있는 무슨이다.
나는 3 개의 루프 불변량을 생각해 내야한다. LI1, LI2 및 LI3.
나는 불변량이 tot = (i^2 (i + 1)^2)/4와 어떤 관계가 있다고 생각하고있다. (합계 큐브 0에서 i까지의 방정식)
나는 ' LI2 또는 LI3을 위해 무엇을해야 할지를 알고 있습니다. LI2의 루프는 i^3을 만들고 LI3은 i^2를 만듭니다. 그러나 루프 불변량으로 정의하는 방법을 완전히 모르겠습니다.
각각의 while 루프 본문에 3 개의 별도 총 변수가 있으면 invariant를 쉽게 정의 할 수 있습니까?
도움을 주셔서 감사합니다.
또한이 함수의 성장 순서는 다음과 같습니다. Θ (n^3)?
늦은 응답에 대해 죄송합니다. 사실 내 상황을 더 잘 이해하게 되었기 때문에 실제로 질문을 조금 변경해야했습니다. –