[so] [tema3] Problema checker
Grigore Silviu Cătălin
grigore.silviu.catalin at gmail.com
Mon Apr 11 19:06:18 EEST 2011
> for (i = 0; i < num_frames; i++) {
> for (j = 0; j < num_frames; j++) {
> w_size_t offset = i * p_sz + offset_array[j];
> tmp = read_byte_from_file(map.ram_handle, offset);
> if (tmp == MAGIC)
> match_count++;
> }
> }
O sa incerc sa fiu mai clar. Sa presupunem ca avem offset[0] = offset[1].
Pentru i = 0 si j = 0 se va citi valoarea MAGIC de la adresa offset_array[0].
Pentru i = 0 si j = 1 se va citi de la adresa offset_array[1] care este
aceeasi adresa cu offset[0]. Se va gasi din nou valoarea MAGIC, lucru perfect
normal pentru pagina 0, deoarece acolo s-a scris.
Problema este ca pentru pagina 0 se numara de doua ori valoarea MAGIC desi
este citita de la aceeasi adresa offset[0], atat pentru j = 0, cat si pentru
j = 1.
Cred ca se poate rezolva foarte simplu cu un
if (!(i != j && offset_array[i] == offset_array[j])) dupa al doilea for.
More information about the so
mailing list