      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
⮢    ࠢ묨 , ஬ ,  
祭 - 㭪樨   - ࠢ쭮  ᫮-
ଥ.    ਡ   ࠢ쭮 ᫮ -
: ஢,  祭  㭪権   ⮩  ᫮-
ଥ   ,  栬.
