Jaki jest niezmiennik pętli i jaka drukowana wartość y wynika z tego warunku?

0

Jaki jest niezmiennik takiej pętli oraz jaka drukowana wartość y wynika z tego warunku?

1 : x <− 0 ;
2 : y <− 0 ;
3 : while x < n do
4 : x <− x+1;
5 : y <− y+x ;
6 : end while
7 : write y

Rozpisałem sobie to i wyszło mi, że y = n!, lecz to chyba będzie właśnie ta drukowana wartość y. A co jest niezmiennikiem w tej pętli?

0

wyszło mi, że y = n!

Mi tam wyszło, że dla n = 5, y =15. Raczej 15 to nie jest 5!
y za każdym razem jest sumą ciągu arytmetycznego o a1 = 1, an = x i r = 1.

Edit:
Właściwie to powinno być a1=0 (albowiem tyle wynosi y przed pętlą). Tak czy siak y jest sumą liczb z przedziału <0,x>.

0

Ojjj, coś pomyliłem zadania. Odpowiedz mi wyszła, że y= (n-1)*n/2. I to właśnie nazywamy niezmiennikiem pętli?

0

Niezmiennik pętli jest spełniony przed wejściem do pętli, w każdym kroku jej działania i po wyjściu z pętli. Twoje wyrażenie jest spełnione tylko na wyjściu. @Serechiel podał Ci niezmiennik przecież.

1 użytkowników online, w tym zalogowanych: 0, gości: 1