- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
int r_k ( char *text, char *point, int d, int q ){
int n = strlen( text);
int m = strlen(point );
int h = (int) pow(d , m - 1 ) % q ;
int i;
int p = 0;
int t = 0;
int j ;
for(i = 0 ;i < m ; i++ ){
p = ( (d*p) + point[i]) % q;
t = ( (d*t) + text[i]) % q;
}
for(i = 0; i <= (n - m) ; i++ ){
if(p == t ){
for(j = 0 ; j < m ; j++)
if( text[i + j] != point[j])
break;
if ( j == m )
return i;
}
t = ( ( (d * (t - text[i] * h) ) + (text[i + m])) % q ) + q ;
}
return 0;
}
Даже " Касперский" сказал что это говно и молча удалил.
Комментарии (0) RSS
Добавить комментарий