Strona 1 z 1

[Algorytmy] Niezmiennik pętli

: 10 lis 2013, o 13:49
autor: martin_bar
Cześć, mam problem z zadaniem z niezmienników.

Podaj niezmiennik pętli i udowodnij jego poprawność:

Kod: Zaznacz cały

1 <= b - warunek wstępny

i = 1;
c = 1;
while (i  <=  b ) {
    c= c * a; 
    i ++;
}
Szukałem trochę wiadomości o niezmiennikach ... stosowania ale nie jestem pewno co będzie niezmiennikiem dla mojego zadania. Rozumiem że jest to pierwszy krok indukcyjny, coś niezmiennego. Czy będzie to:
\(\displaystyle{ i \le b}\) ?

Pozdrawiam,

[Algorytmy] Niezmiennik pętli

: 10 lis 2013, o 14:05
autor: Vardamir
A czym jest zmienna \(\displaystyle{ a}\) ?

[Algorytmy] Niezmiennik pętli

: 10 lis 2013, o 14:44
autor: martin_bar
Dobre pytanie...

Nic na jej temat nie jest podane w warunku wstępnym, ani później.
A czy bez jej znajomości nie da się podać niezmiennika ?-- 10 lis 2013, o 18:16 --Nikt nie pomoże ?

[Algorytmy] Niezmiennik pętli

: 10 lis 2013, o 21:04
autor: miodzio1988
A czy bez jej znajomości nie da się podać niezmiennika ?
Bez znajomości tej stałej w ogóle problem /algorytm jest do bani zdefiniowany

[Algorytmy] Niezmiennik pętli

: 11 lis 2013, o 10:24
autor: martin_bar
A mógłby ktoś wyjaśnić mi na chłopski rozum jak określa się ten niezmennik ?

Na jakimś prostym programie typu znajdowanie największej liczby:

Kod: Zaznacz cały

do {
	cout << "Podaj kolejna liczbe: " << endl;	
	cin >> i;
		if(i>max){
			max = i;
		}
	cout << "Najwieksza podana liczba to: " << max << endl;
	} while(i != -1);
A jeżeli przyjelibyśmy a jako stałą równą np. 1 to oczywiście wtedy ta liczba będzie niezmiennikiem pętli ?

W jaki sposób możemy udawadniać niezmienniki ?

Dziękuję za odpowiedzi -- 11 lis 2013, o 19:19 --Eh nikt się na tym nie zna ? ;-/ ?