Добавил:
bagiwow
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:
ѓ« ў 11. ЏаҐ¤бв ў«ҐЁҐ ¬®¦Ґбвў. •ҐиЁа®ў ЁҐ.
11.1. •ҐиЁа®ў ЁҐ б ®вЄалв®© ¤аҐб жЁҐ©
‚ ЇаҐ¤л¤г饩 Ј« ўҐ Ўл«® ҐбЄ®«мЄ® ЇаҐ¤бв ў«ҐЁ© ¤«п ¬®-
¦Ґбвў, н«Ґ¬Ґв ¬Ё Є®в®але пў«повбп жҐ«лҐ зЁб« Їа®Ё§ў®«м®© ўҐ-
«ЁзЁл. Ћ¤ Є® ў «оЎ®¬ Ё§ Ёе е®вп Ўл ®¤ Ё§ ®ЇҐа жЁ© Їа®ўҐаЄЁ
ЇаЁ ¤«Ґ¦®бвЁ, ¤®Ў ў«ҐЁп Ё г¤ «ҐЁп н«Ґ¬Ґв вॡ®ў « Є®«Ё-
зҐбвў ¤Ґ©бвўЁ©, Їа®Ї®ажЁ® «м®Ј® зЁб«г н«Ґ¬Ґв®ў ¬®¦Ґбвў . Ќ
Їа ЄвЁЄҐ нв® Ўлў Ґв б«ЁиЄ®¬ ¬®Ј®. ‘гйҐбвўгов бЇ®б®Ўл, Ї®§ў®«п-
ойЁҐ Ї®«гзЁвм ¤«п ўбҐе ваҐе гЇ®¬пгвле ®ЇҐа жЁ© ®жҐЄг C*log n.
Ћ¤Ё Ё§ в ЄЁе бЇ®б®Ў®ў ¬л а бᬮваЁ¬ ў б«Ґ¤го饩 Ј« ўҐ. ‚ нв®©
Ј« ўҐ ¬л а §ЎҐаҐ¬ бЇ®б®Ў, Є®в®алҐ е®вп Ё ЇаЁў®¤Ёв Є C*n ¤Ґ©бвўЁ-
п¬ ў ег¤иҐ¬ б«гз Ґ, ® § в® "ў б।Ґ¬" вॡгҐв § зЁвҐ«м®
¬Ґм襣® Ёе зЁб« . (Њл Ґ Ўг¤Ґ¬ гв®зпвм б«®ў "ў б।Ґ¬", е®вп
нв® Ё ¬®¦® ᤥ« вм.) ќв®в бЇ®б®Ў §лў Ґвбп еҐиЁа®ў ЁҐ¬.
Џгбвм ¬ Ґ®Ўе®¤Ё¬® ЇаҐ¤бв ў«пвм ¬®¦Ґбвў н«Ґ¬Ґв®ў вЁЇ
T, ЇаЁзҐ¬ зЁб«® н«Ґ¬Ґв®ў § ўҐ¤®¬® ¬ҐмиҐ n. ‚롥६ ҐЄ®в®аго
дгЄжЁо h, ®ЇаҐ¤Ґ«Ґго § 票пе вЁЇ T Ё ЇаЁЁ¬ ойго § зҐ-
Ёп 0..(n-1). Ѓл«® Ўл е®а®и®, зв®Ўл нв дгЄжЁп ЇаЁЁ¬ «
н«Ґ¬Ґв е Ўг¤г饣® ¬®¦Ґбвў Ї® ў®§¬®¦®бвЁ Ў®«ҐҐ а §®®Ўа §лҐ
§ 票п. •г¤иЁ© б«гз © - нв® Є®Ј¤ ҐҐ § зҐЁп ўбҐе н«Ґ¬Ґ-
в е еа Ё¬®Ј® ¬®¦Ґбвў ®¤Ё Є®ўл. ќвг дгЄжЁо Ўг¤Ґ¬ §лў вм
еҐи-дгЄжЁҐ©.
‚ўҐ¤Ґ¬ ¤ў ¬ ббЁў
val: array [0..n-1] of T;
used: array [0..n-1] of boolean;
(¬л Ї®§ў®«пҐ¬ ᥡҐ ЇЁб вм n-1 ў Є зҐб⢥ Ја Ёжл ў ®ЇаҐ¤Ґ«ҐЁЁ
вЁЇ , е®вп ў Ї бЄ «Ґ нв® Ґ а §аҐи Ґвбп). ‚ нвЁе ¬ ббЁў е Ўг¤гв
еа Ёвмбп н«Ґ¬Ґвл ¬®¦Ґбвў : ®® а ў® ¬®¦Ґбвўг ўбҐе val [i]
¤«п вҐе i, ¤«п Є®в®але used [i], ЇаЁзҐ¬ ўбҐ нвЁ val [i] а §«Ёз-
л. Џ® ў®§¬®¦®бвЁ ¬л Ўг¤Ґ¬ еа Ёвм н«Ґ¬Ґв t ¬Ґб⥠h(t),
бзЁв п нв® ¬Ґбв® "ЁбЄ®л¬" ¤«п н«Ґ¬Ґв t. Ћ¤ Є® ¬®¦Ґв б«г-
зЁвмбп в Є, зв® ®ўл© н«Ґ¬Ґв, Є®в®ал© ¬л е®вЁ¬ ¤®Ў ўЁвм, ЇаҐ-
⥤гҐв 㦥 § п⮥ ¬Ґбв® (¤«п Є®в®а®Ј® used ЁбвЁ®). ‚ н⮬
б«гз Ґ ¬л ®вл饬 Ў«Ё¦ ©иҐҐ бЇа ў бў®Ў®¤®Ґ ¬Ґбв® Ё § ЇЁиҐ¬ н«Ґ-
¬Ґв вг¤ . ("‘Їа ў " § зЁв "ў бв®а®г 㢥«ЁзҐЁп Ё¤ҐЄб®ў";
¤®©¤п ¤® Єа п, ¬л ЇҐаҐбЄ ЄЁў Ґ¬ ў з «®.) Џ® ЇаҐ¤Ї®«®¦ҐЁо,
зЁб«® н«Ґ¬Ґв®ў ўбҐЈ¤ ¬ҐмиҐ n, в Є зв® ЇгбвлҐ ¬Ґбв Ј а вЁа®-
ў ® Ўг¤гв.
”®а¬ «м® Ј®ў®ап, ў «оЎ®© ¬®¬Ґв ¤®«¦® б®Ў«о¤ вмбп в Є®Ґ
вॡ®ў ЁҐ: ¤«п «оЎ®Ј® н«Ґ¬Ґв ¬®¦Ґбвў гз бв®Є бЇа ў ®в ҐЈ®
ЁбЄ®®Ј® ¬Ґбв ¤® ҐЈ® д ЄвЁзҐбЄ®Ј® ¬Ґбв Ї®«®бвмо § Ї®«Ґ.
Ѓ« Ј®¤ ап н⮬㠯஢ҐаЄ ЇаЁ ¤«Ґ¦®бвЁ § ¤ ®Ј® н«Ґ¬Ґв
t ®бгйҐбвў«пҐвбп «ҐЈЄ®: ўбв ў h(t), ¤ўЁЈ Ґ¬бп Їа ў®, Ї®Є
Ґ ¤®©¤Ґ¬ ¤® Їгбв®Ј® ¬Ґбв Ё«Ё ¤® н«Ґ¬Ґв t. ‚ ЇҐаў®¬ б«гз Ґ
н«Ґ¬Ґв t ®вбгвбвўгҐв ў ¬®¦Ґб⢥, ў® ўв®а®¬ ЇаЁбгвбвўгҐв. …б«Ё
н«Ґ¬Ґв ®вбгвбвўгҐв, в® ҐЈ® ¬®¦® ¤®Ў ўЁвм ©¤Ґ®Ґ Їгб⮥
¬Ґбв®. …б«Ё ЇаЁбгвбвўгҐв, в® ¬®¦® ҐЈ® г¤ «Ёвм (Ї®«®¦Ёў used =
false).
11.1.1. ‚ ЇаҐ¤л¤г饬 Ў§ жҐ Ґбвм ®иЁЎЄ . Ќ ©¤ЁвҐ ҐҐ Ё
ЁбЇа ўмвҐ.
ђҐиҐЁҐ. „Ґ«® ў ⮬, зв® ЇаЁ г¤ «ҐЁЁ вॡ㥬®Ґ бў®©бвў®
"®вбгвбвўЁп Їгбв®в" ¬®¦Ґв агиЁвмбп. Џ®н⮬㠡㤥¬ ¤Ґ« вм в Є.
‘®§¤ ў ¤лаг, Ўг¤Ґ¬ ¤ўЁЈ вмбп Їа ў®, Ї®Є Ґ в®«ЄҐ¬бп ҐйҐ
®¤® Їгб⮥ ¬Ґбв® (в®Ј¤ н⮬ ¬®¦® гбЇ®Є®Ёвмбп) Ё«Ё н«Ґ-
¬Ґв, бв®пйЁ© Ґ ЁбЄ®®¬ ¬ҐбвҐ. ‚® ўв®а®¬ б«гз Ґ Ї®б¬®ваЁ¬,
Ґ 㦮 «Ё нв®в н«Ґ¬Ґв Ї®бв ўЁвм ¬Ґбв® ¤лал. …б«Ё Ґв, в®
Їа®¤®«¦ Ґ¬ Ї®ЁбЄ, Ґб«Ё ¤ , в® § влЄ Ґ¬ Ё¬ бв аго ¤лаг. ЏаЁ н⮬
®Ўа §гҐвбп ®ў п ¤ла , б Є®в®а®© ¤Ґ« Ґ¬ ўбҐ в® ¦Ґ б ¬®Ґ.
11.1.2. Ќ ЇЁб вм Їа®Ја ¬¬л Їа®ўҐаЄЁ ЇаЁ ¤«Ґ¦®бвЁ, ¤®Ў ў-
«ҐЁп Ё г¤ «ҐЁп.
ђҐиҐЁҐ.
function ЇаЁ ¤«Ґ¦Ёв (t: T): boolean;
| var i: integer;
begin
| i := h (t);
| while used [i] and (val [i] <> t) do begin
| | i := (i + 1) mod n;
| end; {not used [i] or (val [i] = t)}
| belong := used [i] and (val [i] = t);
end;
procedure ¤®Ў ўЁвм (t: T);
| var i: integer;
begin
| i := h (t);
| while used [i] and (val [i] <> t) do begin
| | i := (i + 1) mod n;
| end; {not used [i] or (val [i] = t)}
| if not used [i] then begin
| | used [i] := true;
| | val [i] := t;
| end;
end;
procedure ЁбЄ«озЁвм (t: T);
| var i, gap: integer;
begin
| i := h (t);
| while used [i] and (val [i] <> t) do begin
| | i := (i + 1) mod n;
| end; {not used [i] or (val [i] = t)}
| if used [i] and (val [i] = t) then begin
| | used [i] := false;
| | gap := i;
| | i := (i + 1) mod n;
| | while used [i] do begin
| | | if i = h (val[i]) then begin
| | | | i := (i + 1) mod n;
| | | end else if dist(h(val[i]),i) < dist(gap,i) then begin
| | | | i := (i + 1) mod n;
| | | end else begin
| | | | used [gap] := true;
| | | | val [gap] := val [i];
| | | | used [i] := false;
| | | | gap := i;
| | | | i := i + 1;
| | | end;
| | end;
| end;
end;
‡¤Ґбм dist (a, b) - Ё§¬ҐаҐ®Ґ Ї® з б®ў®© бв५ЄҐ (б«Ґў
Їа ў®) а ббв®пЁҐ ®в a ¤® b, в.Ґ.
dist (a,b) = (b - a + n) mod n.
(Њл ЇаЁЎ ўЁ«Ё n, в Є Є Є дгЄжЁп mod Їа ўЁ«м® а Ў®в Ґв в®«мЄ®
ЇаЁ Ї®«®¦ЁвҐ«м®¬ ¤Ґ«Ё¬®¬.)
11.1.3. ‘гйҐбвўгҐв ¬®Ј® ў аЁ в®ў еҐиЁа®ў Ёп. Ћ¤Ё Ё§ Ёе
в Є®ў: ®Ў аг¦Ёў, зв® ЁбЄ®®Ґ ¬Ґбв® (®Ў®§ зЁ¬ ҐЈ® i) § пв®,
Ўг¤Ґ¬ ЁбЄ вм бў®Ў®¤®Ґ Ґ б।Ё i+1, i+2,..., б।Ё r(i),
r(r(i)), r(r(r(i))),..., Ј¤Ґ r - ҐЄ®в®а®Ґ ®в®Ўа ¦ҐЁҐ 0..n-1 ў
ᥡп. Љ ЄЁҐ ЇаЁ н⮬ Ўг¤гв ва㤮бвЁ?
ЋвўҐв. (1) ЌҐ Ј а вЁагҐвбп, зв® Ґб«Ё ЇгбвлҐ ¬Ґбв Ґбвм, в®
¬л Ёе ©¤Ґ¬. (2) ЏаЁ г¤ «ҐЁЁ Ґпб®, Є Є § Ї®«пвм ¤лал. (Ќ
Їа ЄвЁЄҐ ў® ¬®ЈЁе б«гз пе г¤ «ҐЁҐ Ґ 㦮, в Є зв® в Є®© бЇ®-
б®Ў в Є¦Ґ ЇаЁ¬ҐпҐвбп. ‘зЁв Ґвбп, зв® г¤ зл© Ї®¤Ў®а r ¬®¦Ґв
ЇаҐ¤®вўа вЁвм ®Ўа §®ў ЁҐ "бЄ®Ї«ҐЁ©" § пвле п祥Є.)
11.1.4. Џгбвм ¤«п еа ҐЁп ¬®¦Ґбвў ўбҐе Їа ўЁ«мле
агббЄЁе б«®ў ў Їа®Ја ¬¬Ґ ®ад®Ја дЁЁ ЁбЇ®«м§гҐвбп еҐиЁа®ў ЁҐ.
—⮠㦮 ¤®Ў ўЁвм, зв®Ўл Є ⮬㠦Ґ 㬥вм 室Ёвм Ј«Ё©бЄЁ©
ЇҐаҐў®¤ «оЎ®Ј® Їа ўЁ«м®Ј® б«®ў ?
ђҐиҐЁҐ. Џ®¬Ё¬® ¬ ббЁў val, н«Ґ¬Ґвл Є®в®а®Ј® пў«повбп
агббЄЁ¬Ё б«®ў ¬Ё, 㦥 Ї а ««Ґ«мл© ¬ ббЁў Ёе Ј«Ё©бЄЁе ЇҐаҐ-
ў®¤®ў.
11.2. •ҐиЁа®ў ЁҐ б® бЇЁбЄ ¬Ё
Ќ еҐи-дгЄжЁо б m § 票ﬨ ¬®¦® ᬮваҐвм Є Є бЇ®б®Ў
ᢥбвЁ ў®Їа®б ® еа ҐЁЁ ®¤®Ј® Ў®«ми®Ј® ¬®¦Ґбвў Є ў®Їа®бг ®
еа ҐЁЁ ҐбЄ®«мЄЁе ¬ҐмиЁ¬. €¬Ґ®, Ґб«Ё г б Ґбвм еҐи-дгЄжЁп
б m § 票ﬨ, в® «оЎ®Ґ ¬®¦Ґбвў® а §ЎЁў Ґвбп m Ї®¤¬®¦Ґбвў
(ў®§¬®¦®, Їгбвле), ᮮ⢥вбвўгойЁе ў®§¬®¦ле § 票п¬
ени-дгЄжЁЁ. ‚®Їа®б ® Їа®ўҐаЄҐ ЇаЁ ¤«Ґ¦®бвЁ, ¤®Ў ў«ҐЁЁ Ё«Ё
г¤ «ҐЁЁ ¤«п Ў®«ми®Ј® ¬®¦Ґбвў бў®¤Ёвбп Є в Є®¬г ¦Ґ ў®Їа®бг ¤«п
®¤®Ј® Ё§ ¬ҐмиЁе (зв®Ўл г§ вм, ¤«п Є Є®Ј®, ¤® Ї®б¬®ваҐвм
§ 票Ґ еҐи-дгЄжЁЁ).
‚ ЇаЁжЁЇҐ, нвЁ ¬ҐмиЁҐ ¬®¦Ґбвў ¬®Јгв еа Ёвмбп «оЎл¬
бЇ®б®Ў®¬ (а § ®Ё ¬ «л, нв® Ґ ®зҐм ў ¦®), ® 㤮Ў® Ёе еа -
Ёвм б Ї®¬®ймо ббл«®Є, Ї®бЄ®«мЄг ¬ Ё§ўҐб⥠Ёе б㬬 ал© а §-
¬Ґа (а ўл© зЁб«г н«Ґ¬Ґв®ў еҐиЁа㥬®Ј® ¬®¦Ґбвў ). ‘«Ґ¤гой п
§ ¤ з ЇаҐ¤« Ј Ґв ॠ«Ё§®ў вм нв®в Ї« .
11.2.1. Џгбвм еҐи-дгЄжЁп ЇаЁЁ¬ Ґв § 票п 1..k. „«п Є ¦-
¤®Ј® § 票п еҐи-дгЄжЁЁ а бᬮваЁ¬ бЇЁб®Є ўбҐе н«Ґ¬Ґв®ў ¬®-
¦Ґбвў б ¤ л¬ § 票Ґ¬ еҐи-дгЄжЁЁ. Ѓг¤Ґ¬ еа Ёвм нвЁ k бЇЁб-
Є®ў б Ї®¬®ймо ЇҐаҐ¬Ґле
‘®¤Ґа¦ ЁҐ: array [1..n] of T;
‘«Ґ¤гойЁ©: array [1..n] of 1..n;
ЏҐаў‘ў®Ў: 1..n;
‚ҐаиЁ : array [1..k] of 1..n;
в Є ¦Ґ, Є Є ¬л нв® ¤Ґ« «Ё ¤«п k б⥪®ў ®Ја ЁзҐ®© б㬬 а®©
¤«Ёл. Ќ ЇЁиЁвҐ ᮮ⢥вбвўгойЁҐ Їа®Ја ¬¬л. (’ҐЇҐам б г¤ «ҐЁҐ¬
Ўг¤Ґв ¬ҐмиҐ Їа®Ў«Ґ¬.)
ђҐиҐЁҐ. ЏҐаҐ¤ з «®¬ а Ў®вл ¤® Ї®«®¦Ёвм ‚ҐаиЁ [i]=0
¤«п ўбҐе i=1..k, Ё бўп§ вм ўбҐ ¬Ґбв ў бЇЁб®Є бў®Ў®¤®Ј®
Їа®бва бвў , Ї®«®¦Ёў ЏҐаў‘ў®Ў=1 Ё ‘«Ґ¤гойЁ©[i]=i+1 ¤«п
i=1..n-1, в Є¦Ґ ‘«Ґ¤гойЁ©[n]=0.
function ЇаЁ ¤«Ґ¦Ёв (t: T): boolean;
| var i: integer;
begin
| | i := ‚ҐаиЁ [h(t)];
| i := ‚ҐаиЁ [h(t)];
| {®бв «®бм ЁбЄ вм ў бЇЁбЄҐ, зЁ п б i}
| while (i <> 0) and (‘®¤Ґа¦ ЁҐ[i] <> t) do begin
| | i := ‘«Ґ¤гойЁ©[i];
| end; {(i=0) or (‘®¤Ґа¦ ЁҐ [i] = t)}
| belong := ‘®¤Ґа¦ ЁҐ[i]=t;
end;
procedure ¤®Ў ўЁвм (t: T);
| var i: integer;
begin
| if not ЇаЁ ¤«Ґ¦Ёв(t) then begin
| | i := ЏҐаў‘ў®Ў;
| | {ЏҐаў‘ў®Ў <> 0 - бзЁв Ґ¬, зв® Ґ ЇҐаҐЇ®«пҐвбп}
| | ЏҐаў‘ў®Ў := ‘«Ґ¤гойЁ©[ЏҐаў‘ў®Ў]
| | ‘®¤Ґа¦ ЁҐ[i]:=t;
| | ‘«Ґ¤гойЁ©[i]:=‚ҐаиЁ [h(t)];
| | ‚ҐаиЁ [h(t)]:=i;
| end;
end;
procedure ЁбЄ«озЁвм (t: T);
| var i, pred: integer;
begin
| i := ‚ҐаиЁ [h(t)]; pred := 0;
| {®бв «®бм ЁбЄ вм ў бЇЁбЄҐ, зЁ п б i; pred -
| ЇаҐ¤л¤гйЁ©. Ґб«Ё ® Ґбвм, Ё 0, Ґб«Ё Ґв}
| while (i <> 0) and (‘®¤Ґа¦ ЁҐ[i] <> t) do begin
| | pred := i; i := ‘«Ґ¤гойЁ©[i];
| end; {(i=0) or (‘®¤Ґа¦ ЁҐ [i] = t)}
| if ‘®¤Ґа¦ ЁҐ[i]=t then begin
| | {н«Ґ¬Ґв Ґбвм, ¤® г¤ «Ёвм}
| | if pred = 0 then begin
| | | {н«Ґ¬Ґв ®Є § «бп ЇҐаўл¬ ў бЇЁбЄҐ}
| | | ‚ҐаиЁ [h(t)] := ‘«Ґ¤гойЁ©[i];
| | end else begin
| | | ‘«Ґ¤гойЁ©[pred] := ‘«Ґ¤гойЁ©[i]
| | end;
| | {®бв «®бм ўҐагвм i ў бЇЁб®Є бў®Ў®¤ле}
| | ‘«Ґ¤гойЁ©[i] := ЏҐаў‘ў®Ў;
| | ЏҐаў‘ў®Ў:=i;
| end;
end;
11.2.2. („«п § Є®¬ле б ⥮ਥ© ўҐа®пв®б⥩.) Џгбвм
еҐи-дгЄжЁп б m § 票ﬨ ЁбЇ®«м§гҐвбп ¤«п еа ҐЁп ¬®¦Ґбвў ,
ў Є®в®а®¬ ў ¤ л© ¬®¬Ґв n н«Ґ¬Ґв®ў. „®Є § вм, зв® ¬ ⥬ вЁ-
зҐбЄ®Ґ ®¦Ё¤ ЁҐ зЁб« ¤Ґ©бвўЁ© ў ЇаҐ¤л¤г饩 § ¤ зҐ Ґ ЇаҐў®бе®-
¤Ёв ‘*(1+n/m), Ґб«Ё ¤®Ў ў«пҐ¬л© (г¤ «пҐ¬л©, ЁбЄ®¬л©) н«Ґ¬Ґв t
ўлЎа б«гз ©®, ЇаЁзҐ¬ ўбҐ § 票п h(t) Ё¬Ґов а ўлҐ ўҐа®пв-
®бвЁ (а ўлҐ 1/m).
ђҐиҐЁҐ. …б«Ё l(i) - ¤«Ё бЇЁбЄ , ᮮ⢥вбвўго饣®
еҐи-§ 票о i, в® зЁб«® ®ЇҐа жЁҐ© Ґ ЇаҐў®б室Ёв C*(1+l(h(i)));
гб।пп, Ї®«гз Ґ¬ ЁбЄ®¬л© ®вўҐв, в Є Є Є б㬬 ўбҐе l(i) а ў
n.
ќв ®жҐЄ ®б®ў ЇаҐ¤Ї®«®¦ҐЁЁ ® а ўле ўҐа®пв®бвпе.
Ћ¤ Є® ў Є®ЄаҐв®© бЁвг жЁЁ ўбс ¬®¦Ґв Ўлвм ᮢᥬ Ґ в Є, Ё
§ 票п еҐи-дгЄжЁЁ ¬®Јгв "бЄгзЁў вмбп": ¤«п Є ¦¤®© Є®ЄаҐв®©
еҐи-дгЄжЁЁ Ґбвм "Ґг¤ злҐ" бЁвг жЁЁ, Є®Ј¤ зЁб«® ¤Ґ©бвўЁ© ®Є -
§лў Ґвбп Ў®«миЁ¬. ЏаЁс¬, §лў Ґ¬л© "гЁўҐаб «мл¬ еҐиЁа®ў Ё-
Ґ¬", Ї®§ў®«пҐв ®Ў®©вЁ нвг Їа®Ў«Ґ¬г. €¤Ґп б®бв®Ёв ў ⮬, зв® ЎҐ-
асвбп ᥬҐ©бвў® еҐи-дгЄжЁ©, ЇаЁзҐ¬ «оЎ п бЁвг жЁп ®Є §лў Ґвбп
Ґг¤ з®© «Ёим ¤«п ҐЎ®«ми®© з бвЁ нв®Ј® ᥬҐбвў .
Џгбвм H - ᥬҐ©бвў® дгЄжЁ©, Є ¦¤ п Ё§ Є®в®але ®в®Ўа ¦ Ґв
¬®¦Ґбвў® T ў ¬®¦Ґбвў® Ё§ n н«Ґ¬Ґв®ў ( ЇаЁ¬Ґа, 0..n-1). ѓ®ў®-
апв, зв® H - гЁўҐаб «м®Ґ ᥬҐ©бвў® еҐи-дгЄжЁ©, Ґб«Ё ¤«п «оЎле
¤ўге а §«Ёзле § 票© s Ё t Ё§ ¬®¦Ґбвў T ўҐа®пв®бвм б®ЎлвЁп
"h(s)=h(t)" ¤«п б«гз ©®© дгЄжЁЁ h Ё§ ᥬҐ©бвў H а ў 1/n.
(„агЈЁ¬Ё б«®ў ¬Ё, ⥠дгЄжЁЁ Ё§ H, ¤«п Є®в®але h(s)=h(t), б®б-
в ў«пов 1/n-го з бвм ўбҐе дгЄжЁ© ў H.)
‡ ¬Ґз ЁҐ. Ѓ®«ҐҐ ᨫ쮥 вॡ®ў ЁҐ Є ᥬҐ©бвўг H ¬®Ј«® Ўл
б®бв®пвм ў ⮬, зв®Ўл ¤«п «оЎле ¤ўге а §«Ёзле н«Ґ¬Ґв®ў s Ё t
¬®¦Ґбвў T § 票п h(s) Ё h(t) б«гз ©®© дгЄжЁЁ h пў«повбп
Ґ§ ўЁбЁ¬л¬Ё б«гз ©л¬Ё ўҐ«ЁзЁ ¬Ё, а ў®¬Ґа® а бЇаҐ¤Ґ«Ґл¬Ё
0..n-1.
11.2.3. Џгбвм t[1]..t[u] - Їа®Ё§ў®«м п Ї®б«Ґ¤®ў ⥫м®бвм
а §«Ёзле н«Ґ¬Ґв®ў ¬®¦Ґбвў T. ђ бᬮваЁ¬ Є®«ЁзҐбвў® ¤Ґ©бвўЁ©,
Їа®Ёб室пйЁе ЇаЁ Ї®¬ҐйҐЁЁ н«Ґ¬Ґв®ў t[1]..t[u] ў ¬®¦Ґбвў®, еҐ-
иЁа㥬®Ґ б Ї®¬®ймо дгЄжЁЁ h Ё§ гЁўҐаб «м®Ј® ᥬҐ©бвў H. „®-
Є § вм, зв® б।ҐҐ Є®«ЁзҐбвў® ¤Ґ©бвўЁ© (гб।ҐЁҐ - Ї® ўбҐ¬ h
Ё§ H) Ґ ЇаҐў®б室Ёв C*u*(1+u/n).
ђҐиҐЁҐ. ЋЎ®§ зЁ¬ зҐаҐ§ m[i] Є®«ЁзҐбвў® н«Ґ¬Ґв®ў Ї®б«Ґ¤®-
ў ⥫м®бвЁ, ¤«п Є®в®але еҐи-дгЄжЁп а ў i. (—Ёб«
m[0]..m[n-1] § ўЁбпв, Є®Ґз®, ®в ўлЎ®а еҐи-дгЄжЁЁ.) Љ®«Ё-
зҐбвў® ¤Ґ©бвўЁ©, Є®в®а®Ґ ¬л е®вЁ¬ ®жҐЁвм, б в®з®бвмо ¤® Ї®бв®-
п®Ј® ¬®¦ЁвҐ«п а ў® б㬬Ґ Єў ¤а в®ў зЁбҐ« m[0]..m[n-1]. (…б«Ё
k зЁбҐ« Ї®Ї ¤ ов ў ®¤г еҐи-п祩Єг, в® ¤«п нв®Ј® вॡгҐвбп ЇаЁ-
¬Ґа® 1+2+...+k ¤Ґ©бвўЁ©.) ќвг ¦Ґ б㬬㠪ў ¤а в®ў ¬®¦® § ЇЁб вм
Є Є зЁб«® Ї а <p,q>, ¤«п Є®в®але h[t[p]]=h[t[q]]. Џ®б«Ґ¤ҐҐ а -
ўҐбвў®, Ґб«Ё ҐЈ® а бб¬ ваЁў вм Є Є б®ЎлвЁҐ ЇаЁ дЁЄбЁа®ў ле p
Ё q, Ё¬ҐҐв ўҐа®пв®бвм 1/n ЇаЁ p<>q, Ї®н⮬г б।ҐҐ § 票Ґ
ᮮ⢥вбвўго饣® з«Ґ б㬬л а ў® 1/n, ¤«п ўбҐ© бг¬¬л Ї®«гз -
Ґ¬ ®жҐЄг Ї®ап¤Є u*u/n, в®зҐҐ u*u/n + u, Ґб«Ё гзҐбвм з«Ґл б
p=q.
ЋжҐЄ нв®© § ¤ зЁ Ї®Є §лў Ґв, зв® ў Є ¦¤л© ¤®Ў ў«пҐ¬л©
н«Ґ¬Ґв ЇаЁе®¤Ёвбп ў б।Ґ¬ C*(1+u/n) ®ЇҐа жЁ©. ‚ нв®© ®жҐЄҐ
¤а®Ўм u/n Ё¬ҐҐв б¬лб« "Є®нддЁжЁҐв § Ї®«ҐЁп" еҐи-в Ў«Ёжл.
11.2.4. „®Є § вм «®ЈЁз®Ґ г⢥তҐЁҐ ¤«п Їа®Ё§ў®«м®©
Ї®б«Ґ¤®ў ⥫м®бвЁ ®ЇҐа жЁ© ¤®Ў ў«ҐЁп, Ї®ЁбЄ Ё г¤ «ҐЁп ( Ґ
в®«мЄ® ¤«п ¤®Ў ў«ҐЁп, Є Є ў ЇаҐ¤л¤г饩 § ¤ зҐ).
“Є § ЁҐ. Ѓг¤Ґ¬ ЇаҐ¤бв ў«пвм ᥡҐ, зв® ў 室Ґ Ї®ЁбЄ , ¤®-
Ў ў«ҐЁп Ё г¤ «ҐЁп н«Ґ¬Ґв Їа®в «ЄЁў Ґвбп Ї® бЇЁбЄг бў®Ёе Є®«-
«ҐЈ б ⥬ ¦Ґ еҐи-§ 票Ґ¬, Ї®Є Ґ ©¤Ґв бў®ҐЈ® ¤ў®©ЁЄ Ё«Ё
Ґ ¤®©¤Ґв ¤® Є®ж бЇЁбЄ . Ѓг¤Ґ¬ §лў вм i-j-бв®«Є®ўҐЁҐ¬
бв®«Є®ўҐЁҐ t[i] б t[j]. ЋЎйҐҐ зЁб«® ¤Ґ©бвўЁ© ЇаЁ¬Ґа® а ў®
зЁб«г ўбҐе бв®«Є®ўҐЁ© Ї«об зЁб«® н«Ґ¬Ґв®ў. ЏаЁ t[i]<>t[j] ўҐ-
а®пв®бвм i-j-бв®«Є®ўҐЁп а ў 1/n. Ћбв «®бм Їа®б«Ґ¤Ёвм §
бв®«Є®ўҐЁп¬Ё ¬Ґ¦¤г а ўл¬Ё н«Ґ¬Ґв ¬Ё. ”ЁЄбЁа㥬 ҐЄ®в®а®Ґ
§ 票Ґ x Ё§ ¬®¦Ґбвў T Ё Ї®б¬®ваЁ¬ бўп§ лҐ б Ё¬ ®ЇҐа -
жЁЁ. ЋЁ Ё¤гв Ї® жЁЄ«г: ¤®Ў ў«ҐЁҐ - Їа®ўҐаЄЁ - г¤ «ҐЁҐ - ¤®-
Ў ў«ҐЁҐ - Їа®ўҐаЄЁ - г¤ «ҐЁҐ - ... ‘в®«Є®ўҐЁп ¬Ґ¦¤г Ё¬Ё
Їа®Ёб室пв ¬Ґ¦¤г ¤®Ў ў«пҐ¬л¬ н«Ґ¬Ґв®¬ Ё б«Ґ¤гойЁ¬Ё § Ё¬ Їа®-
ўҐаЄ ¬Ё (¤® г¤ «ҐЁп ўЄ«озЁвҐ«м®), Ї®н⮬㠮ЎйҐҐ Ёе зЁб«® Ґ
ЇаҐў®б室Ёв зЁб« н«Ґ¬Ґв®ў, а ўле x.
’ҐЇҐам ЇаЁўҐ¤Ґ¬ ЇаЁ¬Ґал гЁўҐаб «мле ᥬҐ©бвў. ЋзҐўЁ¤®,
¤«п «оЎле Є®Ґзле ¬®¦Ґбвў A Ё B ᥬҐ©бвў® ўбҐе дгЄжЁ©, ®в®Ў-
а ¦ ойЁе A ў B, пў«пҐвбп гЁўҐаб «мл¬. Ћ¤ Є® нв®в ЇаЁ¬Ґа б
Їа ЄвЁзҐбЄ®© в®зЄЁ §аҐЁп ЎҐбЇ®«Ґ§Ґ: ¤«п § Ї®¬Ё Ёп б«гз ©®©
дгЄжЁЁ Ё§ нв®Ј® ᥬҐ©б⢠㦥 ¬ ббЁў, зЁб«® н«Ґ¬Ґв®ў ў Є®в®-
஬ а ў® зЁб«г н«Ґ¬Ґв®ў ў ¬®¦Ґб⢥ A. (Ђ Ґб«Ё ¬л ¬®¦Ґ¬ ᥡҐ
Ї®§ў®«Ёвм в Є®© ¬ ббЁў, в® ЁЄ Є®Ј® еҐиЁа®ў Ёп ¬ Ґ вॡгҐв-
бп!)
Ѓ®«ҐҐ Їа ЄвЁзлҐ ЇаЁ¬Ґал гЁўҐаб «мле ᥬҐ©бвў ¬®Јгв Ўлвм
Ї®бв஥л б Ї®¬®ймо Ґб«®¦ле «ЈҐЎа ЁзҐбЄЁе Є®бвагЄжЁ©. —ҐаҐ§
Z[p] ¬л ®Ў®§ з Ґ¬ ¬®¦Ґбвў® ўлзҐв®ў Ї® Їа®б⮬㠬®¤г«о p, в.Ґ.
{0,1,...,p-1}; аЁд¬ҐвЁзҐбЄЁҐ ®ЇҐа жЁЁ ў н⮬ ¬®¦Ґб⢥ ўлЇ®«п-
овбп Ї® ¬®¤г«о p. “ЁўҐаб «м®Ґ ᥬҐ©бвў® ®Ўа §го⠢ᥠ«ЁҐ©лҐ
дгЄжЁ® «л Z[p] ў б⥯ҐЁ n б® § 票ﬨ ў Z[p]. Ѓ®«ҐҐ Ї®¤-
а®Ў®, Їгбвм a[1],...,a[n] - Їа®Ё§ў®«млҐ н«Ґ¬Ґвл Z[p];
а бᬮваЁ¬ ®в®Ўа ¦ҐЁҐ
h: <x[1]...x[n]> |-> a[1]x{1]+...+a{n]z[n]
Њл Ї®«гз Ґ¬ ᥬҐ©бвў® Ё§ (p ў б⥯ҐЁ n) ®в®Ўа ¦ҐЁ©, Ї а ¬ҐваЁ-
§®ў ®Ґ Ў®а ¬Ё a[1]...a[n].
11.2.5. „®Є § вм, зв® н⮠ᥬҐ©бвў® пў«пҐвбп гЁўҐаб «мл¬.
“Є § ЁҐ. Џгбвм x Ё y - а §«ЁзлҐ в®зЄЁ Їа®бва бвў Z[p] ў
б⥯ҐЁ n. Љ Є®ў ўҐа®пв®бвм в®Ј®, зв® б«гз ©л© дгЄжЁ® «
ЇаЁЁ¬ Ґв Ёе ®¤Ё Є®ўлҐ § 票п? „агЈЁ¬Ё б«®ў ¬Ё, Є Є®ў
ўҐа®пв®бвм в®Ј®, зв® ® а ўҐ г«о Ёе а §®бвЁ x-y? ЋвўҐв
¤ Ґвбп в ЄЁ¬ г⢥তҐЁҐ¬: Їгбвм u - Ґг«Ґў®© ўҐЄв®а; в®Ј¤ ўбҐ
§ 票п б«гз ©®Ј® дгЄжЁ® « Ґ¬ а ў®ўҐа®пвл.
‚ б«Ґ¤го饩 § ¤ зҐ ¬®¦Ґбвў® B={0,1} а бб¬ ваЁў Ґвбп Є Є
¬®¦Ґбвў® ўлзҐв®ў Ї® ¬®¤г«о 2.
11.2.6. ‘Ґ¬Ґ©бвў® ўбҐе «ЁҐ©ле ®в®Ўа ¦ҐЁ© Ё§ (B ў б⥯ҐЁ
m) ў (B ў б⥯ҐЁ n) пў«пҐвбп гЁўҐаб «мл¬.
ђ®¤бвўҐлҐ Ё¤ҐЁ Ґ®¦Ё¤ ® ®Є §лў овбп Ї®«Ґ§л¬Ё ў б«Ґ¤г-
о饩 бЁвг жЁЁ (а ббЄ § « „.‚ аб®®д쥢). Џгбвм ¬л е®вЁ¬ ЇЁб вм
Їа®Ја ¬¬г, Є®в®а п ®Ў аг¦Ёў « (Ў®«миЁбвў®) ®ЇҐз в®Є ў ⥪бвҐ,
® Ґ е®вЁ¬ еа Ёвм бЇЁб®Є ўбҐе Їа ўЁ«мле б«®ў®д®а¬. ЏаҐ¤« Ј -
Ґвбп Ї®бвгЇЁвм в Є: ўлЎа вм ҐЄ®в®а®Ґ N Ё Ў®а дгЄжЁ©
f[1],...,f[k], ®в®Ўа ¦ ойЁе агббЄЁҐ б«®ў ў 1..N. ‚ ¬ ббЁўҐ Ё§ N
ЎЁв®ў Ї®«®¦Ё¬ ўбҐ ЎЁвл а ўл¬Ё г«о, Єа®¬Ґ вҐе, Є®в®алҐ пў«повбп
§ 票Ґ¬ Є Є®©-в® дгЄжЁЁ Ў®а Є Є®©-в® Їа ўЁ«м®© б«®ў®-
д®а¬Ґ. ’ҐЇҐам ЇаЁЎ«Ё¦сл© вҐбв Їа ўЁ«м®бвм б«®ў®д®а¬л в -
Є®ў: Їа®ўҐаЁвм, зв® § зҐЁп ўбҐе дгЄжЁ© Ў®а нв®© б«®ў®-
д®а¬Ґ Ї®Ї ¤ ов ¬Ґбв , § пвлҐ Ґ¤ЁЁж ¬Ё.
11.1. •ҐиЁа®ў ЁҐ б ®вЄалв®© ¤аҐб жЁҐ©
‚ ЇаҐ¤л¤г饩 Ј« ўҐ Ўл«® ҐбЄ®«мЄ® ЇаҐ¤бв ў«ҐЁ© ¤«п ¬®-
¦Ґбвў, н«Ґ¬Ґв ¬Ё Є®в®але пў«повбп жҐ«лҐ зЁб« Їа®Ё§ў®«м®© ўҐ-
«ЁзЁл. Ћ¤ Є® ў «оЎ®¬ Ё§ Ёе е®вп Ўл ®¤ Ё§ ®ЇҐа жЁ© Їа®ўҐаЄЁ
ЇаЁ ¤«Ґ¦®бвЁ, ¤®Ў ў«ҐЁп Ё г¤ «ҐЁп н«Ґ¬Ґв вॡ®ў « Є®«Ё-
зҐбвў ¤Ґ©бвўЁ©, Їа®Ї®ажЁ® «м®Ј® зЁб«г н«Ґ¬Ґв®ў ¬®¦Ґбвў . Ќ
Їа ЄвЁЄҐ нв® Ўлў Ґв б«ЁиЄ®¬ ¬®Ј®. ‘гйҐбвўгов бЇ®б®Ўл, Ї®§ў®«п-
ойЁҐ Ї®«гзЁвм ¤«п ўбҐе ваҐе гЇ®¬пгвле ®ЇҐа жЁ© ®жҐЄг C*log n.
Ћ¤Ё Ё§ в ЄЁе бЇ®б®Ў®ў ¬л а бᬮваЁ¬ ў б«Ґ¤го饩 Ј« ўҐ. ‚ нв®©
Ј« ўҐ ¬л а §ЎҐаҐ¬ бЇ®б®Ў, Є®в®алҐ е®вп Ё ЇаЁў®¤Ёв Є C*n ¤Ґ©бвўЁ-
п¬ ў ег¤иҐ¬ б«гз Ґ, ® § в® "ў б।Ґ¬" вॡгҐв § зЁвҐ«м®
¬Ґм襣® Ёе зЁб« . (Њл Ґ Ўг¤Ґ¬ гв®зпвм б«®ў "ў б।Ґ¬", е®вп
нв® Ё ¬®¦® ᤥ« вм.) ќв®в бЇ®б®Ў §лў Ґвбп еҐиЁа®ў ЁҐ¬.
Џгбвм ¬ Ґ®Ўе®¤Ё¬® ЇаҐ¤бв ў«пвм ¬®¦Ґбвў н«Ґ¬Ґв®ў вЁЇ
T, ЇаЁзҐ¬ зЁб«® н«Ґ¬Ґв®ў § ўҐ¤®¬® ¬ҐмиҐ n. ‚롥६ ҐЄ®в®аго
дгЄжЁо h, ®ЇаҐ¤Ґ«Ґго § 票пе вЁЇ T Ё ЇаЁЁ¬ ойго § зҐ-
Ёп 0..(n-1). Ѓл«® Ўл е®а®и®, зв®Ўл нв дгЄжЁп ЇаЁЁ¬ «
н«Ґ¬Ґв е Ўг¤г饣® ¬®¦Ґбвў Ї® ў®§¬®¦®бвЁ Ў®«ҐҐ а §®®Ўа §лҐ
§ 票п. •г¤иЁ© б«гз © - нв® Є®Ј¤ ҐҐ § зҐЁп ўбҐе н«Ґ¬Ґ-
в е еа Ё¬®Ј® ¬®¦Ґбвў ®¤Ё Є®ўл. ќвг дгЄжЁо Ўг¤Ґ¬ §лў вм
еҐи-дгЄжЁҐ©.
‚ўҐ¤Ґ¬ ¤ў ¬ ббЁў
val: array [0..n-1] of T;
used: array [0..n-1] of boolean;
(¬л Ї®§ў®«пҐ¬ ᥡҐ ЇЁб вм n-1 ў Є зҐб⢥ Ја Ёжл ў ®ЇаҐ¤Ґ«ҐЁЁ
вЁЇ , е®вп ў Ї бЄ «Ґ нв® Ґ а §аҐи Ґвбп). ‚ нвЁе ¬ ббЁў е Ўг¤гв
еа Ёвмбп н«Ґ¬Ґвл ¬®¦Ґбвў : ®® а ў® ¬®¦Ґбвўг ўбҐе val [i]
¤«п вҐе i, ¤«п Є®в®але used [i], ЇаЁзҐ¬ ўбҐ нвЁ val [i] а §«Ёз-
л. Џ® ў®§¬®¦®бвЁ ¬л Ўг¤Ґ¬ еа Ёвм н«Ґ¬Ґв t ¬Ґб⥠h(t),
бзЁв п нв® ¬Ґбв® "ЁбЄ®л¬" ¤«п н«Ґ¬Ґв t. Ћ¤ Є® ¬®¦Ґв б«г-
зЁвмбп в Є, зв® ®ўл© н«Ґ¬Ґв, Є®в®ал© ¬л е®вЁ¬ ¤®Ў ўЁвм, ЇаҐ-
⥤гҐв 㦥 § п⮥ ¬Ґбв® (¤«п Є®в®а®Ј® used ЁбвЁ®). ‚ н⮬
б«гз Ґ ¬л ®вл饬 Ў«Ё¦ ©иҐҐ бЇа ў бў®Ў®¤®Ґ ¬Ґбв® Ё § ЇЁиҐ¬ н«Ґ-
¬Ґв вг¤ . ("‘Їа ў " § зЁв "ў бв®а®г 㢥«ЁзҐЁп Ё¤ҐЄб®ў";
¤®©¤п ¤® Єа п, ¬л ЇҐаҐбЄ ЄЁў Ґ¬ ў з «®.) Џ® ЇаҐ¤Ї®«®¦ҐЁо,
зЁб«® н«Ґ¬Ґв®ў ўбҐЈ¤ ¬ҐмиҐ n, в Є зв® ЇгбвлҐ ¬Ґбв Ј а вЁа®-
ў ® Ўг¤гв.
”®а¬ «м® Ј®ў®ап, ў «оЎ®© ¬®¬Ґв ¤®«¦® б®Ў«о¤ вмбп в Є®Ґ
вॡ®ў ЁҐ: ¤«п «оЎ®Ј® н«Ґ¬Ґв ¬®¦Ґбвў гз бв®Є бЇа ў ®в ҐЈ®
ЁбЄ®®Ј® ¬Ґбв ¤® ҐЈ® д ЄвЁзҐбЄ®Ј® ¬Ґбв Ї®«®бвмо § Ї®«Ґ.
Ѓ« Ј®¤ ап н⮬㠯஢ҐаЄ ЇаЁ ¤«Ґ¦®бвЁ § ¤ ®Ј® н«Ґ¬Ґв
t ®бгйҐбвў«пҐвбп «ҐЈЄ®: ўбв ў h(t), ¤ўЁЈ Ґ¬бп Їа ў®, Ї®Є
Ґ ¤®©¤Ґ¬ ¤® Їгбв®Ј® ¬Ґбв Ё«Ё ¤® н«Ґ¬Ґв t. ‚ ЇҐаў®¬ б«гз Ґ
н«Ґ¬Ґв t ®вбгвбвўгҐв ў ¬®¦Ґб⢥, ў® ўв®а®¬ ЇаЁбгвбвўгҐв. …б«Ё
н«Ґ¬Ґв ®вбгвбвўгҐв, в® ҐЈ® ¬®¦® ¤®Ў ўЁвм ©¤Ґ®Ґ Їгб⮥
¬Ґбв®. …б«Ё ЇаЁбгвбвўгҐв, в® ¬®¦® ҐЈ® г¤ «Ёвм (Ї®«®¦Ёў used =
false).
11.1.1. ‚ ЇаҐ¤л¤г饬 Ў§ жҐ Ґбвм ®иЁЎЄ . Ќ ©¤ЁвҐ ҐҐ Ё
ЁбЇа ўмвҐ.
ђҐиҐЁҐ. „Ґ«® ў ⮬, зв® ЇаЁ г¤ «ҐЁЁ вॡ㥬®Ґ бў®©бвў®
"®вбгвбвўЁп Їгбв®в" ¬®¦Ґв агиЁвмбп. Џ®н⮬㠡㤥¬ ¤Ґ« вм в Є.
‘®§¤ ў ¤лаг, Ўг¤Ґ¬ ¤ўЁЈ вмбп Їа ў®, Ї®Є Ґ в®«ЄҐ¬бп ҐйҐ
®¤® Їгб⮥ ¬Ґбв® (в®Ј¤ н⮬ ¬®¦® гбЇ®Є®Ёвмбп) Ё«Ё н«Ґ-
¬Ґв, бв®пйЁ© Ґ ЁбЄ®®¬ ¬ҐбвҐ. ‚® ўв®а®¬ б«гз Ґ Ї®б¬®ваЁ¬,
Ґ 㦮 «Ё нв®в н«Ґ¬Ґв Ї®бв ўЁвм ¬Ґбв® ¤лал. …б«Ё Ґв, в®
Їа®¤®«¦ Ґ¬ Ї®ЁбЄ, Ґб«Ё ¤ , в® § влЄ Ґ¬ Ё¬ бв аго ¤лаг. ЏаЁ н⮬
®Ўа §гҐвбп ®ў п ¤ла , б Є®в®а®© ¤Ґ« Ґ¬ ўбҐ в® ¦Ґ б ¬®Ґ.
11.1.2. Ќ ЇЁб вм Їа®Ја ¬¬л Їа®ўҐаЄЁ ЇаЁ ¤«Ґ¦®бвЁ, ¤®Ў ў-
«ҐЁп Ё г¤ «ҐЁп.
ђҐиҐЁҐ.
function ЇаЁ ¤«Ґ¦Ёв (t: T): boolean;
| var i: integer;
begin
| i := h (t);
| while used [i] and (val [i] <> t) do begin
| | i := (i + 1) mod n;
| end; {not used [i] or (val [i] = t)}
| belong := used [i] and (val [i] = t);
end;
procedure ¤®Ў ўЁвм (t: T);
| var i: integer;
begin
| i := h (t);
| while used [i] and (val [i] <> t) do begin
| | i := (i + 1) mod n;
| end; {not used [i] or (val [i] = t)}
| if not used [i] then begin
| | used [i] := true;
| | val [i] := t;
| end;
end;
procedure ЁбЄ«озЁвм (t: T);
| var i, gap: integer;
begin
| i := h (t);
| while used [i] and (val [i] <> t) do begin
| | i := (i + 1) mod n;
| end; {not used [i] or (val [i] = t)}
| if used [i] and (val [i] = t) then begin
| | used [i] := false;
| | gap := i;
| | i := (i + 1) mod n;
| | while used [i] do begin
| | | if i = h (val[i]) then begin
| | | | i := (i + 1) mod n;
| | | end else if dist(h(val[i]),i) < dist(gap,i) then begin
| | | | i := (i + 1) mod n;
| | | end else begin
| | | | used [gap] := true;
| | | | val [gap] := val [i];
| | | | used [i] := false;
| | | | gap := i;
| | | | i := i + 1;
| | | end;
| | end;
| end;
end;
‡¤Ґбм dist (a, b) - Ё§¬ҐаҐ®Ґ Ї® з б®ў®© бв५ЄҐ (б«Ґў
Їа ў®) а ббв®пЁҐ ®в a ¤® b, в.Ґ.
dist (a,b) = (b - a + n) mod n.
(Њл ЇаЁЎ ўЁ«Ё n, в Є Є Є дгЄжЁп mod Їа ўЁ«м® а Ў®в Ґв в®«мЄ®
ЇаЁ Ї®«®¦ЁвҐ«м®¬ ¤Ґ«Ё¬®¬.)
11.1.3. ‘гйҐбвўгҐв ¬®Ј® ў аЁ в®ў еҐиЁа®ў Ёп. Ћ¤Ё Ё§ Ёе
в Є®ў: ®Ў аг¦Ёў, зв® ЁбЄ®®Ґ ¬Ґбв® (®Ў®§ зЁ¬ ҐЈ® i) § пв®,
Ўг¤Ґ¬ ЁбЄ вм бў®Ў®¤®Ґ Ґ б।Ё i+1, i+2,..., б।Ё r(i),
r(r(i)), r(r(r(i))),..., Ј¤Ґ r - ҐЄ®в®а®Ґ ®в®Ўа ¦ҐЁҐ 0..n-1 ў
ᥡп. Љ ЄЁҐ ЇаЁ н⮬ Ўг¤гв ва㤮бвЁ?
ЋвўҐв. (1) ЌҐ Ј а вЁагҐвбп, зв® Ґб«Ё ЇгбвлҐ ¬Ґбв Ґбвм, в®
¬л Ёе ©¤Ґ¬. (2) ЏаЁ г¤ «ҐЁЁ Ґпб®, Є Є § Ї®«пвм ¤лал. (Ќ
Їа ЄвЁЄҐ ў® ¬®ЈЁе б«гз пе г¤ «ҐЁҐ Ґ 㦮, в Є зв® в Є®© бЇ®-
б®Ў в Є¦Ґ ЇаЁ¬ҐпҐвбп. ‘зЁв Ґвбп, зв® г¤ зл© Ї®¤Ў®а r ¬®¦Ґв
ЇаҐ¤®вўа вЁвм ®Ўа §®ў ЁҐ "бЄ®Ї«ҐЁ©" § пвле п祥Є.)
11.1.4. Џгбвм ¤«п еа ҐЁп ¬®¦Ґбвў ўбҐе Їа ўЁ«мле
агббЄЁе б«®ў ў Їа®Ја ¬¬Ґ ®ад®Ја дЁЁ ЁбЇ®«м§гҐвбп еҐиЁа®ў ЁҐ.
—⮠㦮 ¤®Ў ўЁвм, зв®Ўл Є ⮬㠦Ґ 㬥вм 室Ёвм Ј«Ё©бЄЁ©
ЇҐаҐў®¤ «оЎ®Ј® Їа ўЁ«м®Ј® б«®ў ?
ђҐиҐЁҐ. Џ®¬Ё¬® ¬ ббЁў val, н«Ґ¬Ґвл Є®в®а®Ј® пў«повбп
агббЄЁ¬Ё б«®ў ¬Ё, 㦥 Ї а ««Ґ«мл© ¬ ббЁў Ёе Ј«Ё©бЄЁе ЇҐаҐ-
ў®¤®ў.
11.2. •ҐиЁа®ў ЁҐ б® бЇЁбЄ ¬Ё
Ќ еҐи-дгЄжЁо б m § 票ﬨ ¬®¦® ᬮваҐвм Є Є бЇ®б®Ў
ᢥбвЁ ў®Їа®б ® еа ҐЁЁ ®¤®Ј® Ў®«ми®Ј® ¬®¦Ґбвў Є ў®Їа®бг ®
еа ҐЁЁ ҐбЄ®«мЄЁе ¬ҐмиЁ¬. €¬Ґ®, Ґб«Ё г б Ґбвм еҐи-дгЄжЁп
б m § 票ﬨ, в® «оЎ®Ґ ¬®¦Ґбвў® а §ЎЁў Ґвбп m Ї®¤¬®¦Ґбвў
(ў®§¬®¦®, Їгбвле), ᮮ⢥вбвўгойЁе ў®§¬®¦ле § 票п¬
ени-дгЄжЁЁ. ‚®Їа®б ® Їа®ўҐаЄҐ ЇаЁ ¤«Ґ¦®бвЁ, ¤®Ў ў«ҐЁЁ Ё«Ё
г¤ «ҐЁЁ ¤«п Ў®«ми®Ј® ¬®¦Ґбвў бў®¤Ёвбп Є в Є®¬г ¦Ґ ў®Їа®бг ¤«п
®¤®Ј® Ё§ ¬ҐмиЁе (зв®Ўл г§ вм, ¤«п Є Є®Ј®, ¤® Ї®б¬®ваҐвм
§ 票Ґ еҐи-дгЄжЁЁ).
‚ ЇаЁжЁЇҐ, нвЁ ¬ҐмиЁҐ ¬®¦Ґбвў ¬®Јгв еа Ёвмбп «оЎл¬
бЇ®б®Ў®¬ (а § ®Ё ¬ «л, нв® Ґ ®зҐм ў ¦®), ® 㤮Ў® Ёе еа -
Ёвм б Ї®¬®ймо ббл«®Є, Ї®бЄ®«мЄг ¬ Ё§ўҐб⥠Ёе б㬬 ал© а §-
¬Ґа (а ўл© зЁб«г н«Ґ¬Ґв®ў еҐиЁа㥬®Ј® ¬®¦Ґбвў ). ‘«Ґ¤гой п
§ ¤ з ЇаҐ¤« Ј Ґв ॠ«Ё§®ў вм нв®в Ї« .
11.2.1. Џгбвм еҐи-дгЄжЁп ЇаЁЁ¬ Ґв § 票п 1..k. „«п Є ¦-
¤®Ј® § 票п еҐи-дгЄжЁЁ а бᬮваЁ¬ бЇЁб®Є ўбҐе н«Ґ¬Ґв®ў ¬®-
¦Ґбвў б ¤ л¬ § 票Ґ¬ еҐи-дгЄжЁЁ. Ѓг¤Ґ¬ еа Ёвм нвЁ k бЇЁб-
Є®ў б Ї®¬®ймо ЇҐаҐ¬Ґле
‘®¤Ґа¦ ЁҐ: array [1..n] of T;
‘«Ґ¤гойЁ©: array [1..n] of 1..n;
ЏҐаў‘ў®Ў: 1..n;
‚ҐаиЁ : array [1..k] of 1..n;
в Є ¦Ґ, Є Є ¬л нв® ¤Ґ« «Ё ¤«п k б⥪®ў ®Ја ЁзҐ®© б㬬 а®©
¤«Ёл. Ќ ЇЁиЁвҐ ᮮ⢥вбвўгойЁҐ Їа®Ја ¬¬л. (’ҐЇҐам б г¤ «ҐЁҐ¬
Ўг¤Ґв ¬ҐмиҐ Їа®Ў«Ґ¬.)
ђҐиҐЁҐ. ЏҐаҐ¤ з «®¬ а Ў®вл ¤® Ї®«®¦Ёвм ‚ҐаиЁ [i]=0
¤«п ўбҐе i=1..k, Ё бўп§ вм ўбҐ ¬Ґбв ў бЇЁб®Є бў®Ў®¤®Ј®
Їа®бва бвў , Ї®«®¦Ёў ЏҐаў‘ў®Ў=1 Ё ‘«Ґ¤гойЁ©[i]=i+1 ¤«п
i=1..n-1, в Є¦Ґ ‘«Ґ¤гойЁ©[n]=0.
function ЇаЁ ¤«Ґ¦Ёв (t: T): boolean;
| var i: integer;
begin
| | i := ‚ҐаиЁ [h(t)];
| i := ‚ҐаиЁ [h(t)];
| {®бв «®бм ЁбЄ вм ў бЇЁбЄҐ, зЁ п б i}
| while (i <> 0) and (‘®¤Ґа¦ ЁҐ[i] <> t) do begin
| | i := ‘«Ґ¤гойЁ©[i];
| end; {(i=0) or (‘®¤Ґа¦ ЁҐ [i] = t)}
| belong := ‘®¤Ґа¦ ЁҐ[i]=t;
end;
procedure ¤®Ў ўЁвм (t: T);
| var i: integer;
begin
| if not ЇаЁ ¤«Ґ¦Ёв(t) then begin
| | i := ЏҐаў‘ў®Ў;
| | {ЏҐаў‘ў®Ў <> 0 - бзЁв Ґ¬, зв® Ґ ЇҐаҐЇ®«пҐвбп}
| | ЏҐаў‘ў®Ў := ‘«Ґ¤гойЁ©[ЏҐаў‘ў®Ў]
| | ‘®¤Ґа¦ ЁҐ[i]:=t;
| | ‘«Ґ¤гойЁ©[i]:=‚ҐаиЁ [h(t)];
| | ‚ҐаиЁ [h(t)]:=i;
| end;
end;
procedure ЁбЄ«озЁвм (t: T);
| var i, pred: integer;
begin
| i := ‚ҐаиЁ [h(t)]; pred := 0;
| {®бв «®бм ЁбЄ вм ў бЇЁбЄҐ, зЁ п б i; pred -
| ЇаҐ¤л¤гйЁ©. Ґб«Ё ® Ґбвм, Ё 0, Ґб«Ё Ґв}
| while (i <> 0) and (‘®¤Ґа¦ ЁҐ[i] <> t) do begin
| | pred := i; i := ‘«Ґ¤гойЁ©[i];
| end; {(i=0) or (‘®¤Ґа¦ ЁҐ [i] = t)}
| if ‘®¤Ґа¦ ЁҐ[i]=t then begin
| | {н«Ґ¬Ґв Ґбвм, ¤® г¤ «Ёвм}
| | if pred = 0 then begin
| | | {н«Ґ¬Ґв ®Є § «бп ЇҐаўл¬ ў бЇЁбЄҐ}
| | | ‚ҐаиЁ [h(t)] := ‘«Ґ¤гойЁ©[i];
| | end else begin
| | | ‘«Ґ¤гойЁ©[pred] := ‘«Ґ¤гойЁ©[i]
| | end;
| | {®бв «®бм ўҐагвм i ў бЇЁб®Є бў®Ў®¤ле}
| | ‘«Ґ¤гойЁ©[i] := ЏҐаў‘ў®Ў;
| | ЏҐаў‘ў®Ў:=i;
| end;
end;
11.2.2. („«п § Є®¬ле б ⥮ਥ© ўҐа®пв®б⥩.) Џгбвм
еҐи-дгЄжЁп б m § 票ﬨ ЁбЇ®«м§гҐвбп ¤«п еа ҐЁп ¬®¦Ґбвў ,
ў Є®в®а®¬ ў ¤ л© ¬®¬Ґв n н«Ґ¬Ґв®ў. „®Є § вм, зв® ¬ ⥬ вЁ-
зҐбЄ®Ґ ®¦Ё¤ ЁҐ зЁб« ¤Ґ©бвўЁ© ў ЇаҐ¤л¤г饩 § ¤ зҐ Ґ ЇаҐў®бе®-
¤Ёв ‘*(1+n/m), Ґб«Ё ¤®Ў ў«пҐ¬л© (г¤ «пҐ¬л©, ЁбЄ®¬л©) н«Ґ¬Ґв t
ўлЎа б«гз ©®, ЇаЁзҐ¬ ўбҐ § 票п h(t) Ё¬Ґов а ўлҐ ўҐа®пв-
®бвЁ (а ўлҐ 1/m).
ђҐиҐЁҐ. …б«Ё l(i) - ¤«Ё бЇЁбЄ , ᮮ⢥вбвўго饣®
еҐи-§ 票о i, в® зЁб«® ®ЇҐа жЁҐ© Ґ ЇаҐў®б室Ёв C*(1+l(h(i)));
гб।пп, Ї®«гз Ґ¬ ЁбЄ®¬л© ®вўҐв, в Є Є Є б㬬 ўбҐе l(i) а ў
n.
ќв ®жҐЄ ®б®ў ЇаҐ¤Ї®«®¦ҐЁЁ ® а ўле ўҐа®пв®бвпе.
Ћ¤ Є® ў Є®ЄаҐв®© бЁвг жЁЁ ўбс ¬®¦Ґв Ўлвм ᮢᥬ Ґ в Є, Ё
§ 票п еҐи-дгЄжЁЁ ¬®Јгв "бЄгзЁў вмбп": ¤«п Є ¦¤®© Є®ЄаҐв®©
еҐи-дгЄжЁЁ Ґбвм "Ґг¤ злҐ" бЁвг жЁЁ, Є®Ј¤ зЁб«® ¤Ґ©бвўЁ© ®Є -
§лў Ґвбп Ў®«миЁ¬. ЏаЁс¬, §лў Ґ¬л© "гЁўҐаб «мл¬ еҐиЁа®ў Ё-
Ґ¬", Ї®§ў®«пҐв ®Ў®©вЁ нвг Їа®Ў«Ґ¬г. €¤Ґп б®бв®Ёв ў ⮬, зв® ЎҐ-
асвбп ᥬҐ©бвў® еҐи-дгЄжЁ©, ЇаЁзҐ¬ «оЎ п бЁвг жЁп ®Є §лў Ґвбп
Ґг¤ з®© «Ёим ¤«п ҐЎ®«ми®© з бвЁ нв®Ј® ᥬҐбвў .
Џгбвм H - ᥬҐ©бвў® дгЄжЁ©, Є ¦¤ п Ё§ Є®в®але ®в®Ўа ¦ Ґв
¬®¦Ґбвў® T ў ¬®¦Ґбвў® Ё§ n н«Ґ¬Ґв®ў ( ЇаЁ¬Ґа, 0..n-1). ѓ®ў®-
апв, зв® H - гЁўҐаб «м®Ґ ᥬҐ©бвў® еҐи-дгЄжЁ©, Ґб«Ё ¤«п «оЎле
¤ўге а §«Ёзле § 票© s Ё t Ё§ ¬®¦Ґбвў T ўҐа®пв®бвм б®ЎлвЁп
"h(s)=h(t)" ¤«п б«гз ©®© дгЄжЁЁ h Ё§ ᥬҐ©бвў H а ў 1/n.
(„агЈЁ¬Ё б«®ў ¬Ё, ⥠дгЄжЁЁ Ё§ H, ¤«п Є®в®але h(s)=h(t), б®б-
в ў«пов 1/n-го з бвм ўбҐе дгЄжЁ© ў H.)
‡ ¬Ґз ЁҐ. Ѓ®«ҐҐ ᨫ쮥 вॡ®ў ЁҐ Є ᥬҐ©бвўг H ¬®Ј«® Ўл
б®бв®пвм ў ⮬, зв®Ўл ¤«п «оЎле ¤ўге а §«Ёзле н«Ґ¬Ґв®ў s Ё t
¬®¦Ґбвў T § 票п h(s) Ё h(t) б«гз ©®© дгЄжЁЁ h пў«повбп
Ґ§ ўЁбЁ¬л¬Ё б«гз ©л¬Ё ўҐ«ЁзЁ ¬Ё, а ў®¬Ґа® а бЇаҐ¤Ґ«Ґл¬Ё
0..n-1.
11.2.3. Џгбвм t[1]..t[u] - Їа®Ё§ў®«м п Ї®б«Ґ¤®ў ⥫м®бвм
а §«Ёзле н«Ґ¬Ґв®ў ¬®¦Ґбвў T. ђ бᬮваЁ¬ Є®«ЁзҐбвў® ¤Ґ©бвўЁ©,
Їа®Ёб室пйЁе ЇаЁ Ї®¬ҐйҐЁЁ н«Ґ¬Ґв®ў t[1]..t[u] ў ¬®¦Ґбвў®, еҐ-
иЁа㥬®Ґ б Ї®¬®ймо дгЄжЁЁ h Ё§ гЁўҐаб «м®Ј® ᥬҐ©бвў H. „®-
Є § вм, зв® б।ҐҐ Є®«ЁзҐбвў® ¤Ґ©бвўЁ© (гб।ҐЁҐ - Ї® ўбҐ¬ h
Ё§ H) Ґ ЇаҐў®б室Ёв C*u*(1+u/n).
ђҐиҐЁҐ. ЋЎ®§ зЁ¬ зҐаҐ§ m[i] Є®«ЁзҐбвў® н«Ґ¬Ґв®ў Ї®б«Ґ¤®-
ў ⥫м®бвЁ, ¤«п Є®в®але еҐи-дгЄжЁп а ў i. (—Ёб«
m[0]..m[n-1] § ўЁбпв, Є®Ґз®, ®в ўлЎ®а еҐи-дгЄжЁЁ.) Љ®«Ё-
зҐбвў® ¤Ґ©бвўЁ©, Є®в®а®Ґ ¬л е®вЁ¬ ®жҐЁвм, б в®з®бвмо ¤® Ї®бв®-
п®Ј® ¬®¦ЁвҐ«п а ў® б㬬Ґ Єў ¤а в®ў зЁбҐ« m[0]..m[n-1]. (…б«Ё
k зЁбҐ« Ї®Ї ¤ ов ў ®¤г еҐи-п祩Єг, в® ¤«п нв®Ј® вॡгҐвбп ЇаЁ-
¬Ґа® 1+2+...+k ¤Ґ©бвўЁ©.) ќвг ¦Ґ б㬬㠪ў ¤а в®ў ¬®¦® § ЇЁб вм
Є Є зЁб«® Ї а <p,q>, ¤«п Є®в®але h[t[p]]=h[t[q]]. Џ®б«Ґ¤ҐҐ а -
ўҐбвў®, Ґб«Ё ҐЈ® а бб¬ ваЁў вм Є Є б®ЎлвЁҐ ЇаЁ дЁЄбЁа®ў ле p
Ё q, Ё¬ҐҐв ўҐа®пв®бвм 1/n ЇаЁ p<>q, Ї®н⮬г б।ҐҐ § 票Ґ
ᮮ⢥вбвўго饣® з«Ґ б㬬л а ў® 1/n, ¤«п ўбҐ© бг¬¬л Ї®«гз -
Ґ¬ ®жҐЄг Ї®ап¤Є u*u/n, в®зҐҐ u*u/n + u, Ґб«Ё гзҐбвм з«Ґл б
p=q.
ЋжҐЄ нв®© § ¤ зЁ Ї®Є §лў Ґв, зв® ў Є ¦¤л© ¤®Ў ў«пҐ¬л©
н«Ґ¬Ґв ЇаЁе®¤Ёвбп ў б।Ґ¬ C*(1+u/n) ®ЇҐа жЁ©. ‚ нв®© ®жҐЄҐ
¤а®Ўм u/n Ё¬ҐҐв б¬лб« "Є®нддЁжЁҐв § Ї®«ҐЁп" еҐи-в Ў«Ёжл.
11.2.4. „®Є § вм «®ЈЁз®Ґ г⢥তҐЁҐ ¤«п Їа®Ё§ў®«м®©
Ї®б«Ґ¤®ў ⥫м®бвЁ ®ЇҐа жЁ© ¤®Ў ў«ҐЁп, Ї®ЁбЄ Ё г¤ «ҐЁп ( Ґ
в®«мЄ® ¤«п ¤®Ў ў«ҐЁп, Є Є ў ЇаҐ¤л¤г饩 § ¤ зҐ).
“Є § ЁҐ. Ѓг¤Ґ¬ ЇаҐ¤бв ў«пвм ᥡҐ, зв® ў 室Ґ Ї®ЁбЄ , ¤®-
Ў ў«ҐЁп Ё г¤ «ҐЁп н«Ґ¬Ґв Їа®в «ЄЁў Ґвбп Ї® бЇЁбЄг бў®Ёе Є®«-
«ҐЈ б ⥬ ¦Ґ еҐи-§ 票Ґ¬, Ї®Є Ґ ©¤Ґв бў®ҐЈ® ¤ў®©ЁЄ Ё«Ё
Ґ ¤®©¤Ґв ¤® Є®ж бЇЁбЄ . Ѓг¤Ґ¬ §лў вм i-j-бв®«Є®ўҐЁҐ¬
бв®«Є®ўҐЁҐ t[i] б t[j]. ЋЎйҐҐ зЁб«® ¤Ґ©бвўЁ© ЇаЁ¬Ґа® а ў®
зЁб«г ўбҐе бв®«Є®ўҐЁ© Ї«об зЁб«® н«Ґ¬Ґв®ў. ЏаЁ t[i]<>t[j] ўҐ-
а®пв®бвм i-j-бв®«Є®ўҐЁп а ў 1/n. Ћбв «®бм Їа®б«Ґ¤Ёвм §
бв®«Є®ўҐЁп¬Ё ¬Ґ¦¤г а ўл¬Ё н«Ґ¬Ґв ¬Ё. ”ЁЄбЁа㥬 ҐЄ®в®а®Ґ
§ 票Ґ x Ё§ ¬®¦Ґбвў T Ё Ї®б¬®ваЁ¬ бўп§ лҐ б Ё¬ ®ЇҐа -
жЁЁ. ЋЁ Ё¤гв Ї® жЁЄ«г: ¤®Ў ў«ҐЁҐ - Їа®ўҐаЄЁ - г¤ «ҐЁҐ - ¤®-
Ў ў«ҐЁҐ - Їа®ўҐаЄЁ - г¤ «ҐЁҐ - ... ‘в®«Є®ўҐЁп ¬Ґ¦¤г Ё¬Ё
Їа®Ёб室пв ¬Ґ¦¤г ¤®Ў ў«пҐ¬л¬ н«Ґ¬Ґв®¬ Ё б«Ґ¤гойЁ¬Ё § Ё¬ Їа®-
ўҐаЄ ¬Ё (¤® г¤ «ҐЁп ўЄ«озЁвҐ«м®), Ї®н⮬㠮ЎйҐҐ Ёе зЁб«® Ґ
ЇаҐў®б室Ёв зЁб« н«Ґ¬Ґв®ў, а ўле x.
’ҐЇҐам ЇаЁўҐ¤Ґ¬ ЇаЁ¬Ґал гЁўҐаб «мле ᥬҐ©бвў. ЋзҐўЁ¤®,
¤«п «оЎле Є®Ґзле ¬®¦Ґбвў A Ё B ᥬҐ©бвў® ўбҐе дгЄжЁ©, ®в®Ў-
а ¦ ойЁе A ў B, пў«пҐвбп гЁўҐаб «мл¬. Ћ¤ Є® нв®в ЇаЁ¬Ґа б
Їа ЄвЁзҐбЄ®© в®зЄЁ §аҐЁп ЎҐбЇ®«Ґ§Ґ: ¤«п § Ї®¬Ё Ёп б«гз ©®©
дгЄжЁЁ Ё§ нв®Ј® ᥬҐ©б⢠㦥 ¬ ббЁў, зЁб«® н«Ґ¬Ґв®ў ў Є®в®-
஬ а ў® зЁб«г н«Ґ¬Ґв®ў ў ¬®¦Ґб⢥ A. (Ђ Ґб«Ё ¬л ¬®¦Ґ¬ ᥡҐ
Ї®§ў®«Ёвм в Є®© ¬ ббЁў, в® ЁЄ Є®Ј® еҐиЁа®ў Ёп ¬ Ґ вॡгҐв-
бп!)
Ѓ®«ҐҐ Їа ЄвЁзлҐ ЇаЁ¬Ґал гЁўҐаб «мле ᥬҐ©бвў ¬®Јгв Ўлвм
Ї®бв஥л б Ї®¬®ймо Ґб«®¦ле «ЈҐЎа ЁзҐбЄЁе Є®бвагЄжЁ©. —ҐаҐ§
Z[p] ¬л ®Ў®§ з Ґ¬ ¬®¦Ґбвў® ўлзҐв®ў Ї® Їа®б⮬㠬®¤г«о p, в.Ґ.
{0,1,...,p-1}; аЁд¬ҐвЁзҐбЄЁҐ ®ЇҐа жЁЁ ў н⮬ ¬®¦Ґб⢥ ўлЇ®«п-
овбп Ї® ¬®¤г«о p. “ЁўҐаб «м®Ґ ᥬҐ©бвў® ®Ўа §го⠢ᥠ«ЁҐ©лҐ
дгЄжЁ® «л Z[p] ў б⥯ҐЁ n б® § 票ﬨ ў Z[p]. Ѓ®«ҐҐ Ї®¤-
а®Ў®, Їгбвм a[1],...,a[n] - Їа®Ё§ў®«млҐ н«Ґ¬Ґвл Z[p];
а бᬮваЁ¬ ®в®Ўа ¦ҐЁҐ
h: <x[1]...x[n]> |-> a[1]x{1]+...+a{n]z[n]
Њл Ї®«гз Ґ¬ ᥬҐ©бвў® Ё§ (p ў б⥯ҐЁ n) ®в®Ўа ¦ҐЁ©, Ї а ¬ҐваЁ-
§®ў ®Ґ Ў®а ¬Ё a[1]...a[n].
11.2.5. „®Є § вм, зв® н⮠ᥬҐ©бвў® пў«пҐвбп гЁўҐаб «мл¬.
“Є § ЁҐ. Џгбвм x Ё y - а §«ЁзлҐ в®зЄЁ Їа®бва бвў Z[p] ў
б⥯ҐЁ n. Љ Є®ў ўҐа®пв®бвм в®Ј®, зв® б«гз ©л© дгЄжЁ® «
ЇаЁЁ¬ Ґв Ёе ®¤Ё Є®ўлҐ § 票п? „агЈЁ¬Ё б«®ў ¬Ё, Є Є®ў
ўҐа®пв®бвм в®Ј®, зв® ® а ўҐ г«о Ёе а §®бвЁ x-y? ЋвўҐв
¤ Ґвбп в ЄЁ¬ г⢥তҐЁҐ¬: Їгбвм u - Ґг«Ґў®© ўҐЄв®а; в®Ј¤ ўбҐ
§ 票п б«гз ©®Ј® дгЄжЁ® « Ґ¬ а ў®ўҐа®пвл.
‚ б«Ґ¤го饩 § ¤ зҐ ¬®¦Ґбвў® B={0,1} а бб¬ ваЁў Ґвбп Є Є
¬®¦Ґбвў® ўлзҐв®ў Ї® ¬®¤г«о 2.
11.2.6. ‘Ґ¬Ґ©бвў® ўбҐе «ЁҐ©ле ®в®Ўа ¦ҐЁ© Ё§ (B ў б⥯ҐЁ
m) ў (B ў б⥯ҐЁ n) пў«пҐвбп гЁўҐаб «мл¬.
ђ®¤бвўҐлҐ Ё¤ҐЁ Ґ®¦Ё¤ ® ®Є §лў овбп Ї®«Ґ§л¬Ё ў б«Ґ¤г-
о饩 бЁвг жЁЁ (а ббЄ § « „.‚ аб®®д쥢). Џгбвм ¬л е®вЁ¬ ЇЁб вм
Їа®Ја ¬¬г, Є®в®а п ®Ў аг¦Ёў « (Ў®«миЁбвў®) ®ЇҐз в®Є ў ⥪бвҐ,
® Ґ е®вЁ¬ еа Ёвм бЇЁб®Є ўбҐе Їа ўЁ«мле б«®ў®д®а¬. ЏаҐ¤« Ј -
Ґвбп Ї®бвгЇЁвм в Є: ўлЎа вм ҐЄ®в®а®Ґ N Ё Ў®а дгЄжЁ©
f[1],...,f[k], ®в®Ўа ¦ ойЁе агббЄЁҐ б«®ў ў 1..N. ‚ ¬ ббЁўҐ Ё§ N
ЎЁв®ў Ї®«®¦Ё¬ ўбҐ ЎЁвл а ўл¬Ё г«о, Єа®¬Ґ вҐе, Є®в®алҐ пў«повбп
§ 票Ґ¬ Є Є®©-в® дгЄжЁЁ Ў®а Є Є®©-в® Їа ўЁ«м®© б«®ў®-
д®а¬Ґ. ’ҐЇҐам ЇаЁЎ«Ё¦сл© вҐбв Їа ўЁ«м®бвм б«®ў®д®а¬л в -
Є®ў: Їа®ўҐаЁвм, зв® § зҐЁп ўбҐе дгЄжЁ© Ў®а нв®© б«®ў®-
д®а¬Ґ Ї®Ї ¤ ов ¬Ґбв , § пвлҐ Ґ¤ЁЁж ¬Ё.
Соседние файлы в папке Шень