Pagini recente » Diferente pentru zalgorithm intre reviziile 45 si 30 | Diferente pentru zalgorithm intre reviziile 45 si 23 | Diferente pentru zalgorithm intre reviziile 45 si 43 | Diferente pentru zalgorithm intre reviziile 42 si 43 | Diferente pentru zalgorithm intre reviziile 14 si 15
Diferente pentru
zalgorithm intre reviziile
#14 si
#15
Nu exista diferente intre titluri.
Diferente intre continut:
=> **Z[i] = Z[i2];**
Fie stringul S :
!zalgorithm?A.bmp!
(nu prea are relevanta sa contina si caracatere)
Fie St = 7, Dr = 12 si i = 10; acum voi muta zBox-ul la inceput =>
lungAlpha = 6; lungBeta = 3;
St2 = 0; Dr2 = 5; i2 = 3;
Eu am calculat Z[i2] si stiu ca e < lungBeta => **Z[i] = Z[i2]**, e adevarat pentru ca Zbox e la fel cu Zbox2;
** **Cazul 2.b) Z[i2] > lungBeta** => **Z[i] = lungBeta**;
!zalgorithm?B2.bmp!
Acum voi face o modificare, i-ul va fi 11 nu 10 (pentru a fi mai clar pe exemplu)=>
St = 7, Dr = 12, I = 11; => St2 = 0; Dr2 = 5; i2 = 4;
Eu stiu acum ca Z[i2] > lungBeta; deci secventa [4..5] e la fel cu [0..1] si e la fel cu [11..12]
Avand in vedere ca Z[i2] > lungBeta => si caracterul 6 e la fel cu caracterul 2;
Doar ca se poate face o observatie din care rezulta ca **Z[i] = lungBeta**; Pentru a demonstra ca e asa voi presupune ca contrariul => Z[i] > lungBeta => S(13 = S(6) (care e = S(2)) daca acest lucru ar fi adevarat atunci Zbox-ul nu ar fi secventa [7..12] ci ar fi secventa [7..13] => Presupunerea initiala e **falsa** => **Z(i) = lungBeta**;
** **Cazul 2.c) Z[i2] = lungBeta** => **Z[i] = lungBeta + compara()**;
!zalgorithm?C.bmp!
Acum Z(i2) == lungBeta, de aici rezulta urmatoarele observatii :
S(2) != S(6)
S(6) != S(13)
Doar ca asta nu inseamna ca S(2) != S(13)(s-ar putea sa fie la fel; trebuie verificate) => **Z(i) = lungBeta + compara(lungBeta, Dr + 1)**;
Compara(i, j) = e o functie care primeste 2 indici si incepe sa compare caracaterele incepand cu cei 2 indici pana cand gaseste 2 caractere diferite.
Nu exista diferente intre securitate.
Topicul de forum nu a fost schimbat.