Monoids рдФрд░ рдЙрдирдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ: рдкреЗрдбрд╝реЛрдВ рдореЗрдВ рдореЛрдиреЛрдЗрдбрд▓ рдХрдореНрдкреНрдпреВрдЯрд┐рдВрдЧ

рдЕрднрд┐рд╡рд╛рджрди, рд╣рдмреНрд░рд╣рд╛рдмреНрд░ред рдЖрдЬ рдореИрдВ рдЕрдкрдиреА рд╕рд╛рдорд╛рдиреНрдп рд╢реИрд▓реА рдореЗрдВ, рд╕рдореБрджрд╛рдп рдХреЛ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдкрд░ рдПрдХ рдЫреЛрдЯрд╛ рд╢реИрдХреНрд╖рд┐рдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдХреЗрд╡рд▓ рдЗрд╕ рд╕рдордп рдпрд╣ рдЕрдзрд┐рдХ рд╡реНрдпрд╛рдкрдХ рд╣реЛрдЧрд╛, рдФрд░ рдЗрд╕рдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдФрд░ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХрддрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рд╕рдмрд╕реЗ рд╡рд┐рд╡рд┐рдз рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рджреВрд░ рддрдХ рдлреИрд▓реЗрдЧреАред рд╕рдмрд╕реЗ рд╕реБрдВрджрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧ, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рдореИрдВ рд╕реАрдзреЗ рд▓реЗрдЦ рдореЗрдВ рджрд┐рдЦрд╛рдКрдВрдЧрд╛ рдФрд░ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛ред



рд╣рдореЗрдВ рдЕрдореВрд░реНрдд рд╕реЛрдЪ, рдХреБрдЫ рд╕рдВрддреБрд▓рд┐рдд рдЦреЛрдЬ рд╡реГрдХреНрд╖ рдХреЗ рдЬреНрдЮрд╛рди (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрд╛рд░реНрдЯреЗрд╢рд┐рдпрди рд╡реГрдХреНрд╖ рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ) рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рд╕рд░рд▓ рд╕реА # рдХреЛрдб рдХреЛ рдкрдврд╝рдиреЗ рдХреА рдХреНрд╖рдорддрд╛, рдФрд░ рдкреНрд░рд╛рдкреНрдд рдЬреНрдЮрд╛рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЗрдЪреНрдЫрд╛ред



рдЗрд╕рд▓рд┐рдП, рдЖрдЬ рдПрдЬреЗрдВрдбрд╛ рдореЗрдВ рдкреЗрдбрд╝реЛрдВ рдореЗрдВ рдХреИрд╢рд┐рдВрдЧ рдХрдореНрдкреНрдпреВрдЯреЗрд╢рди рдХреЗ рд▓рд┐рдП рдореЛрдиреЙрдпрдб рдФрд░ рдЙрдирдХреЗ рдореБрдЦреНрдп рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╣реИрдВред



рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдореЛрдиреЙрдпрдб



рдХрд┐рд╕реА рднреА рдЪреАрдЬрд╝ рдХреА рднреАрдбрд╝, рд╡рд╕реНрддреБрдУрдВ рдХреА рдПрдХ рднреАрдбрд╝ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдЬрд┐рд╕реЗ рд╣рдо рд╣реЗрд░рдлреЗрд░ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред рдЪрд▓реЛ рдЗрд╕реЗ рдПрдо рдХрд╣рддреЗ рд╣реИрдВ ред рдЗрд╕ рд╕реЗрдЯ рдкрд░, рд╣рдо рдПрдХ рдмрд╛рдЗрдирд░реА рдСрдкрд░реЗрд╢рди рдкреЗрд╢ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реИ рдЬреЛ рд╕реЗрдЯ рдХреЗ рддрддреНрд╡реЛрдВ рдХреА рдПрдХ рдЬреЛрдбрд╝реА рдХреЗ рд╕рд╛рде рдПрдХ рдирдП рддрддреНрд╡ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдмрд╛рдж, рд╣рдо рдЗрд╕ рдЕрдореВрд░реНрдд рдСрдкрд░реЗрд╢рди рдХреЛ "will" рдХреЗ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реВрдкрд┐рдд рдХрд░реЗрдВрдЧреЗ рдФрд░ рднрд╛рд╡ рд░реВрдк рдореЗрдВ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд▓рд┐рдЦреЗрдВрдЧреЗ: рдпрджрд┐ a рдФрд░ b рдПрдХ рд╕реЗрдЯ рдХреЗ рддрддреНрд╡ рд╣реИрдВ, рддреЛ c = a is b рднреА рдЗрд╕ рд╕реЗрдЯ рдХрд╛ рдХреБрдЫ рддрддреНрд╡ рд╣реИред



рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рджреБрдирд┐рдпрд╛ рдореЗрдВ рдореМрдЬреВрдж рд╕рднреА рд▓рд╛рдЗрдиреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рдФрд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕рдВрдШрдирди рдСрдкрд░реЗрд╢рди рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ, рдЬрд┐рд╕реЗ рдкрд╛рд░рдВрдкрд░рд┐рдХ рд░реВрдк рд╕реЗ "," рдХреЗ рд░реВрдк рдореЗрдВ рдЧрдгрд┐рдд рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдЕрдзрд┐рдХрд╛рдВрд╢ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ "+": "John"



тЧж "Doe"



= "JohnDoe"



ред рдпрд╣рд╛рдБ рд╕реЗрдЯ M рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИ, рдФрд░ тЧж рдСрдкрд░реЗрд╢рди a рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред

рдпрд╛ рдПрдХ рдФрд░ рдЙрджрд╛рд╣рд░рдг fst рдлрд╝рдВрдХреНрд╢рди рд╣реИ, рдЬрд┐рд╕реЗ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдЯреБрдкрд▓реНрд╕ рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрд╕рдХреЗ рджреЛ рддрд░реНрдХреЛрдВ рдореЗрдВ рд╕реЗ, рдкрд░рд┐рдгрд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд╣ рдкрд╣рд▓реА рдмрд╛рд░ рд▓реМрдЯреАред рддреЛ, fst (5, 2) = 5 ; fst ( "foo"



, "bar"



) = "foo"



ред рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдХреМрди рд╕рд╛ рдЗрд╕ рджреНрд╡рд┐рдЖрдзрд╛рд░реА рдСрдкрд░реЗрд╢рди рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдХрд┐рд╕реА рднреА рдЪреБрдирдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреА рдкрд╕рдВрдж рд╣реИред



рдЗрд╕рдХреЗ рдмрд╛рдж, рд╣рдо рдЕрдкрдиреЗ рдСрдкрд░реЗрд╢рди "ред" рдкрд░ рдПрдХ рд╕рд╣рдпреЛрдЧреАрддрд╛ рдмрд╛рдзрд╛ рдбрд╛рд▓рддреЗ рд╣реИрдВред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ: рдпрджрд┐ "a" рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдЕрдиреБрдХреНрд░рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдкрд░рд┐рдгрд╛рдо "тКЧ" рдХреЗ рдЖрд╡реЗрджрди рдХреЗ рдЖрджреЗрд╢ рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛ рд╕рдорд╛рди рд░рд╣рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЕрдзрд┐рдХ рд╕рдЦреНрддреА рд╕реЗ, рдХрд┐рд╕реА рднреА рддреАрди рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рдП , рдмреА рдФрд░ рд╕реА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:

( рдП ) рдмреА ) = рд╕реА = рдП b ( рдмреА ) рд╕реА )

рдпрд╣ рджреЗрдЦрдирд╛ рдЖрд╕рд╛рди рд╣реИ рдХрд┐ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╛ рд╕рдВрдпреЛрдЬрди рд╕рд╛рд╣рдЪрд░реНрдп рд╣реИ: рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЕрдиреБрдХреНрд░рдо рдореЗрдВ рдХреМрди рд╕рд╛ рдЧреНрд▓реВрдЗрдВрдЧ рдкрд╣рд▓реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдЬреЛ рдмрд╛рдж рдореЗрдВ, рд╣рдо рдЕрднреА рднреА рдЕрдиреБрдХреНрд░рдо рдореЗрдВ рд╕рднреА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреА рдЖрдо gluing рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред рдпрд╣реА рдмрд╛рдд рдлреЗрд╕реНрдЯ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐:

fst ( fst ( рдП , рдмреА ), рд╕реА ) = рдП

fst ( рдП , рдПрдлрдПрд╕рдЯреА ( рдмреА , рд╕реА )) = рдП

рдХрд┐рд╕реА рднреА рдХреНрд░рдо рдореЗрдВ рдПрдХ рдЕрдиреБрдХреНрд░рдо рдореЗрдВ fst рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдЕрднреА рднреА рдЕрдкрдиреЗ рдкреНрд░рдореБрдЦ рддрддреНрд╡ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░реЗрдЧреАред



рдФрд░ рдЖрдЦрд┐рд░реА рдЪреАрдЬ рдЬреЛ рд╣рдореЗрдВ рдЪрд╛рд╣рд┐рдП: рд╕реЗрдЯ рдПрдо рдореЗрдВ рдСрдкрд░реЗрд╢рди рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ, рдПрдХ рддрдЯрд╕реНрде рддрддреНрд╡ рдпрд╛ рдСрдкрд░реЗрд╢рди рдХреА рдЗрдХрд╛рдИ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдПрдХ рдРрд╕реА рд╡рд╕реНрддреБ рд╣реИ рдЬрд┐рд╕реЗ рд╕реЗрдЯ рдХреЗ рдХрд┐рд╕реА рднреА рддрддреНрд╡ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдмрд╛рдж рд╡рд╛рд▓реЗ рдХреЛ рдирд╣реАрдВ рдмрджрд▓реЗрдЧрд╛ред рдФрдкрдЪрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ, рдпрджрд┐ рдИ рдПрдХ рддрдЯрд╕реНрде рддрддреНрд╡ рд╣реИ, рддреЛ рд╕реЗрдЯ рд╕реЗ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП,

a a e = e e a = a

рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд╕рд╛рде рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рддрдЯрд╕реНрде рддрддреНрд╡ рдЦрд╛рд▓реА рд░реЗрдЦрд╛ рд╣реИ ""



: рдЬрд┐рд╕ рддрд░рдл рдЖрдк рдЗрд╕реЗ рдХрд┐рд╕ рд░реЗрдЦрд╛ рд╕реЗ рдЪрд┐рдкрдХрд╛рддреЗ рд╣реИрдВ, рд╡рд╣ рд░реЗрдЦрд╛ рдирд╣реАрдВ рдмрджрд▓реЗрдЧреАред рд▓реЗрдХрд┐рди рдЗрд╕ рд╕рдВрдмрдВрдз рдореЗрдВ рдлреЗрд╕реНрдЯ рд╣рдореЗрдВ рдПрдХ рддрд░рдХреАрдм рджрд┐рдЦрд╛рдПрдЧрд╛ : рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рддрдЯрд╕реНрде рддрддреНрд╡ рдХреЗ рд╕рд╛рде рдЖрдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, fst ( e , a ) = e рд╣рдореЗрд╢рд╛, рдФрд░ рдпрджрд┐ then e рд╣реИ , рддреЛ рд╣рдо рддрдЯрд╕реНрдерддрд╛ рдЧреБрдг рдЦреЛ рджреЗрддреЗ рд╣реИрдВред рдЖрдк рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдПрдХ рддрддреНрд╡ рдХреЗ рд╕реЗрдЯ рдкрд░ fst рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕ рддрд░рд╣ рдХреА рдмреЛрд░рд┐рдпрдд рдХреА рдЬрд░реВрд░рдд рдХрд┐рд╕реЗ рд╣реИ? :)



рдкреНрд░рддреНрдпреЗрдХ рдРрд╕реЗ рдЯреНрд░рд┐рдкрд▓ <M, тКЧ, e> рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдПрдХ рдореЛрдиреЙрдпрдб рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛ред рд╣рдо рдЗрд╕ рдЬреНрдЮрд╛рди рдХреЛ рдХреЛрдб рдореЗрдВ рдареАрдХ рдХрд░рддреЗ рд╣реИрдВ:

 public interface IMonoid<T> { T Zero { get; } T Append(T a, T b); }
      
      





рдореЛрдиреЛрдЗрдбреНрд╕ рдХреЗ рдЕрдзрд┐рдХ рдЙрджрд╛рд╣рд░рдг, рд╕рд╛рде рд╣реА рдЬрд╣рд╛рдВ рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рдХрдЯ рдХреЗ рдиреАрдЪреЗ рдЭреВрда рдмреЛрд▓рддреЗ рд╣реИрдВред





рдЙрджрд╛рд╣рд░рдг





рдЖрдЧреЗ рдмрдврд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рдкрд╛рдардХ рдХреЛ рдпрд╣ рд╕рдордЭрд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдХрд┐ рджреБрдирд┐рдпрд╛ рдореЗрдВ рдЕрдВрдзреЗрд░рд╛ рд╣реИ, рдЬреЛ рд╡рд┐рднрд┐рдиреНрди рдореЛрдиреЛрдбреНрд╕ рдХреЛ рдЕрд╕реНрдкрд╖реНрдЯ рдХрд░рддрд╛ рд╣реИред рд╣рдо рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рда рдореЗрдВ рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рджреВрд╕рд░реЛрдВ рдХреЛ рдЙрдирдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝ рд╕рдХрддрд╛ рд╣реИред рдореИрдВ рдПрдХ рд╕рд░рд▓ рд╕реВрдЪреА рдмрдирд╛рдКрдВрдЧрд╛, рдкреНрд░рддреНрдпреЗрдХ рдореЛрдиреЙрдЗрдб рдХреЗ рд▓рд┐рдП, рдкреНрд░рд╢реНрди рдореЗрдВ рд╕реЗрдЯ, рд╕рдВрдпреЛрдЬрди рд╕рдВрдЪрд╛рд▓рди рдФрд░ рддрдЯрд╕реНрде рддрддреНрд╡ рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрддрд╛ рд╣реВрдВред рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдЖрдк рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХреА рд╕рдВрдмрджреНрдзрддрд╛ рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдордВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдореЗрд░реЗ рдкрд╛рд╕ рдмрд╕ рдпрд╣рд╛рдВ рдкрд░реНрдпрд╛рдкреНрдд рд╕реНрдерд╛рди рдирд╣реАрдВ рд╣реИ :) рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВ рдереЛрдбрд╝рд╛ рдзреЛрдЦрд╛ рдЦрд╛рдКрдВрдЧрд╛ рдФрд░ рд╕реВрдЪреА рдореЗрдВ рдХреБрдЫ рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдФрд░ рдЕрд╕рд╛рдзрд╛рд░рдг рдореЛрдиреЙрдпрдб рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдмрд╛рдж рдХреЗ рд╕рднреА рдЕрдзреНрдпрд╛рдп рдЙрдирдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдкрд┐рдд рд╣реЛрдВрдЧреЗред



рддреЛ, рд▓реЛрдХрдкреНрд░рд┐рдп рдореБрджреНрд░рд╛рдПрдВ:



рдЕрдм рдЗрд╕рдХреЗ рд▓рд┐рдП (!) рдЪрд▓рд┐рдП рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЕрднреНрдпрд╛рд╕ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдкреНрд░рддреАрдХреНрд╖рд┐рдд рдЕрднреНрдпрд╛рд╕ рдХреА рд╢реБрд░реБрдЖрдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВ рдЗрд╕ рд╕реВрдЪреА рд╕реЗ рд╕реА # рд╕рд░рд▓ monoids рдХреЗ рдПрдХ рдЬреЛрдбрд╝реЗ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдореЗрдВ рд▓рд┐рдЦреВрдВрдЧрд╛, рдЬрд┐рд╕реЗ рд╣рдо рдЕрдЧрд▓реЗ рдЕрдзреНрдпрд╛рдп рдореЗрдВ рдХрд╛рдо рдХрд░реЗрдВрдЧреЗред

рд╣рдо рдПрдХрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рднреА monoids рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдВрдЧреЗред рдХрд┐рд╕реА рдЕрдЬреНрдЮрд╛рдд рдЕрдЬреНрдЮрд╛рдд рдкреНрд░рдХрд╛рд░ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЛ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдмрд╛рдж рдореЗрдВ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдЗрд╕рдХреА рд░рдЪрдирд╛ рдХреЛ рдПрдХ рдЕрд▓рдЧ рд╕реНрдЯреЗрдЯрд┐рдХ рдХреНрд▓рд╛рд╕ рдореЗрдВ рд░рдЦрд╛ред


 public static class Singleton<T> where T : new() { private static readonly T _instance = new T(); public static T Instance { get { return _instance; } } } public class AddMonoid : IMonoid<int> { public AddMonoid() {} public int Zero { get { return 0; } } public int Append(int a, int b) { return a + b; } } public class FunctionMonoid<T> : IMonoid<Func<T, T>> { public FunctionMonoid() {} public Func<T, T> Zero { get { return x => x; } } public Func<T, T> Append(Func<T, T> f, Func<T, T> g) { return x => g(f(x)); } } public class GCDMonoid : IMonoid<int> { public GCDMonoid() {} private int gcd(int a, int b) { return b == 0 ? a : gcd(b, a % b); } public int Zero { get { return 0; } } public int Append(int a, int b) { return gcd(a, b); } }
      
      







рдЬрд╣рд╛рдБ рдХрдВрдкреНрдпреВрдЯрд░ рд╡рд┐рдЬреНрдЮрд╛рди рдореЗрдВ рд░рд╕реНрд╕рд┐рдпрд╛рдБ





рдЗрд╕ рдХреНрд╖рдг рд╕реЗ рд╣рдо рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рддреЗ рд╣реИрдВред



рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ рд░реЛрдк рдирд╛рдордХ рдПрдХ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдкрд░рд┐рднрд╛рд╖рд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рджреБрд░реНрд▓рдн рд░реВрд╕реА рднрд╛рд╖рд╛ рдХреЗ рд╕реНрд░реЛрдд, рдЖрдЧреЗ рдХреА рд╣рд▓рдЪрд▓ рдХреЗ рдмрд┐рдирд╛, рдЗрд╕реЗ рдПрдХ рд░рд╕реНрд╕реА рдХреА рддрд░рд╣ рдЕрдиреБрд╡рд╛рдж рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдореИрдВ рдЗрд╕ рдкрд░рдВрдкрд░рд╛ рд╕реЗ рдкреАрдЫреЗ рдирд╣реАрдВ рд╣рдЯреВрдВрдЧрд╛ред рдЗрд╕рд▓рд┐рдП, рд░рд╕реНрд╕реА рдХреЛ рдкрд╣рд▓реА рдмрд╛рд░ 1995 рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рдмрд╕реНрдЯреНрд░рд┐рдВрдЧ рдФрд░ рдорд░реНрдЬрд┐рдВрдЧ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХрд╛ рдмрд╣реБрдд рддреЗрдЬрд╝ рд╕рдВрдЪрд╛рд▓рдиред рдРрд╕реЗ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП, рдЗрд╕ рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЬрд╛рд░реА рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрд╛рд╡рд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВред



рдПрдХ рдордирдорд╛рдирд╛ рд╕рдВрддреБрд▓рд┐рдд рдмрд╛рдЗрдирд░реА рдЯреНрд░реА рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВред рд╣рдо рдЗрд╕ рдкреЗрдбрд╝ рдХреА рдкрддреНрддрд┐рдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд╢рдмреНрдж рд▓рдЯрдХрд╛рдПрдВрдЧреЗ - рдЕрд░реНрдерд╛рдд рд╡рд░реНрдгреЛрдВ рдХреА рд╕рд░рдгрд┐рдпрд╛рдБред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдкреЗрдбрд╝ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рддрд░рд╣:



рдРрд╕реА рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рд░рд╕реНрд╕реА рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛ред



рдЗрдВрдбреЗрдХреНрд╕ рдПрдХреНрд╕реЗрд╕


рдХрд╛рд░реНрдЯреЗрд╢рд┐рдпрди рдкреЗрдбрд╝ рдкрд░ рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦреЛрдВ рд╕реЗ , рд╣рдореЗрдВ рдпрд╛рдж рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдкреЗрдбрд╝ рдореЗрдВ рдпрд╣ рдХреИрд╕реЗ рд╕рдВрднрд╡ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реВрдЪрдХрд╛рдВрдХ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддреАрдХ рдХреНрд╡реЗрд░реА рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП - рдпрд╣ рдордзреНрдпрд╡рд░реНрддреА рдХреЛрдиреЗ рдореЗрдВ рдЙрдкрдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рдмрдЯреНрд░реА рд╕реЗ рдирд┐рд▓рдВрдмрд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рдХреБрд▓ рд▓рдВрдмрд╛рдИред рдЗрд╕ рдкреЗрдбрд╝ рдХреЗ рд▓рд┐рдП, рдПрдХ рд╕рдорд╛рди рдпреЛрдЬрдирд╛ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдЧреА:



рдЕрдм, рдХреЗрде рдСрд░реНрдбрд┐рдирд▓ рдЖрдБрдХрдбрд╝реЛрдВ рдХреЗ рдкрд░рд┐рдЪрд┐рдд рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рдЗрдЪреНрдЫрд┐рдд рд╕рдВрдЦреНрдпрд╛ рдХреЗ рддрд╣рдд рд╡рд░реНрдг рд╡рд╛рд▓реЗ рд╕рд░рдгреА рдкрд░ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рд╕рд░рдгреА рдХреА рд╕реНрдореГрддрд┐ рдореЗрдВ рдкреНрд░рддреНрдпрдХреНрд╖ рдЕрдиреБрдХреНрд░рдордг рджреНрд╡рд╛рд░рд╛ рд╡рд╛рдВрдЫрд┐рдд рдЪрд░рд┐рддреНрд░ рд╡рд╛рдкрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдПрд░реЗ рдХреЛ рдкреЗрдбрд╝ рдХреА рдкрддреНрддрд┐рдпреЛрдВ рдкрд░ рдХреЗрд╡рд▓ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдкрд╛рддреНрд░реЛрдВ рдХреЗ рдмрдЬрд╛рдп рдмрдбрд╝реА рд▓рд╛рдЗрдиреЛрдВ рдкрд░ рд╕реНрдореГрддрд┐ рдЕрдиреБрдХреВрд▓рди рдФрд░ рдЫреЛрдЯреЗ рд▓реЛрдЧреЛрдВ рдкрд░ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдХрд╛рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдирд┐рд▓рдВрдмрд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред



рдПрдХ рд╕рд╛рде рдЪрд┐рдкрдХрд╛рдиреЗ


рджреЛ рд░рд╕реНрд╕рд┐рдпреЛрдВ рдХреЛ рдЧреЛрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдПрдХ рдирдпрд╛ рд░реВрдЯ рд╡рд░реНрдЯреЗрдХреНрд╕ рдмрдирд╛рдиреЗ рдФрд░ рдмреЗрдЯреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рджреЛ рдбреЗрдЯрд╛ рдкреЗрдбрд╝реЛрдВ рдХреЛ рдирд┐рд▓рдВрдмрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рдЪреВрдВрдХрд┐ рд╕реНрд░реЛрдд рдХреЗ рдкреЗрдбрд╝ рд╕рдВрддреБрд▓рд┐рдд рдереЗ, рдЗрд╕рд▓рд┐рдП рдирдИ рд░рд╕реНрд╕реА рднреА рд╕рдВрддреБрд▓рд┐рдд рд╣реЛрдЧреАред рд╡реЗ рдЕрдХреНрд╕рд░ рдпрд╣ рднреА рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рд╕рд░реЗрд╕ рд╕реЗ рдЬреЛрдбрд╝рд╛ рд╣реБрдЖ рд░рд╕реНрд╕рд┐рдпрд╛рдВ тАЛтАЛрдмрд╣реБрдд рдЫреЛрдЯреА рд╣реИрдВ, рдХреНрдпрд╛ рдпрд╣ рдкрд░рд┐рдгрд╛рдореА рд░рд╕реНрд╕реА рдореЗрдВ рдХреБрдЫ рдкрддреНрддреА рдХреЗ рдЦрдВрдбреЛрдВ рдХреЛ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред



рдЕрдиреБрд░реЛрдз рдЕрдиреБрд░реЛрдз


рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдПрдХ рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдХреЗрде рдСрд░реНрдбрд┐рдирд▓ рдЖрдБрдХрдбрд╝реЛрдВ рдХреЗ рд╕рдорд╛рди рдПрдХ рд╕рд░рд▓ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рдпрд╣ рд░рд╕реНрд╕реА рдЯреА рдореЗрдВ рд▓рдВрдмрд╛рдИ рд▓реЗрди рдХреЗ рдПрдХ рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рд╢реБрд░реВ рдЪрд░рд┐рддреНрд░ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ ред



рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рджреЛ рдЪрд░рдо рдорд╛рдорд▓реЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред

рдпрджрд┐ start = 0



, рдФрд░ len = T.Left.Size



, рддреЛ рдЗрд╕рдХрд╛ рдЙрддреНрддрд░ T.Left



рдХрд╛ рд╕рдВрдкреВрд░реНрдг рдЙрдкрд╢реАрд░реНрд╖рдХ рд╣реИред рдЗрд╕реА рддрд░рд╣, рдпрджрд┐ start = T.Left.Size



, рдФрд░ len = T.Right.Size



, рддреЛ рдЗрд╕рдХрд╛ рдЙрддреНрддрд░ T.Right



рдХрд╛ рд╕рдВрдкреВрд░реНрдг T.Right



ред рдКрдкрд░ рджрд┐рдП рдЧрдП рдЖрдВрдХрдбрд╝реЗ рдореЗрдВ, рджреВрд╕рд░реЗ рдорд╛рдорд▓реЗ рдХрд╛ рдПрд╣рд╕рд╛рд╕ рд╣реЛрддрд╛ рд╣реИ рдпрджрд┐ рдЖрдк Substring( start : 18, len : 37)



рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ Substring( start : 18, len : 37)



, рддреЛ рдлрд╝рдВрдХреНрд╢рди рддреБрд░рдВрдд " , "



рдХреЗ рдЬрд░реВрд░реА рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде рд╕рд╣реА рд╕рдмрдЯреНрд░реА рд╡рд╛рдкрд╕ рдХрд░ рджреЗрдЧрд╛ " , "



ред



рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдорд╛рдорд▓рд╛ рддрдм рд╕рдВрднрд╡ рд╣реИ рдЬрдм рд╡рд╛рдВрдЫрд┐рдд рд╡рд┐рдХрд▓реНрдк рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмрд╛рдПрдВ рд╕рдмрдЯреНрд░реА рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИ, рдпрд╛рдиреА, start < T.Left.Size



рдФрд░ start + len тЙд T.Left.Size



ред рдлрд┐рд░ рдШрдЯрд┐рдпрд╛ рдЦреЛрдЬ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкреБрди: рдмрд╛рдПрдВ рд╕рдмрдЯреНрд░реА рдХреЗ рд▓рд┐рдП рдкреБрди: рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╕рдордорд┐рдд рдорд╛рдорд▓рд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд╣реА start тЙе T.Left.Size



рдореЗрдВ рдПрдХ рд╡рд┐рдХрд▓реНрдк рд╣реИ, рдЕрд░реНрдерд╛рддреН start тЙе T.Left.Size



рдФрд░ start + len тЙд T.Left.Size + T.Right.Size



ред рдлрд┐рд░ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдЦреЛрдЬ рд╕рд╣реА рд╕рдмрдЯреНрд░реА рдкрд░ рдЬрд╛рддреА рд╣реИ, рдмрд╕ start



рд╕реЗ рдмрд╛рдПрдВ рд╕рдмрдЯреНрд░реА рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдШрдЯрд╛рдирд╛ рдпрд╛рдж рд░рдЦреЗрдВ - рдЖрдЦрд┐рд░рдХрд╛рд░, рд╕рд╣реА рдЙрдкрд░реА рдореЗрдВ рдЕрдиреБрдХреНрд░рдордг рд╢реВрдиреНрдп рд╕реЗ рд╢реБрд░реВ рд╣реЛрдЧрд╛, рдпрд╣ рдЦреБрдж рдХреЛ рдПрдХ рд╕реНрд╡рддрдВрддреНрд░ рдкреЗрдбрд╝ рдорд╛рдирддрд╛ рд╣реИред

рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдо Substring( start : 18, len : 18)



рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ Substring( start : 18, len : 18)



ред рдлрд┐рд░, рдкрд╣рд▓реЗ рдЪрд░рдг рдореЗрдВ, рдлрд╝рдВрдХреНрд╢рди рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рджрд╛рдИрдВ рдУрд░ рдкреБрдирд░рд╛рд╡рд░реНрддреА рд░реВрдк рд╕реЗ рдиреАрдЪреЗ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рд╕рд╣реА рд╕рдмрдЯреНрд░реА рдкрд░ Substring( start : 0, len : 18)



рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ Substring( start : 0, len : 18)



ред рдФрд░ рд╡рд╣, рдмрджрд▓реЗ рдореЗрдВ, рдкрд╣рд▓реЗ рдорд╛рдорд▓реЗ рдХреЗ рдЕрдиреБрд╕рд╛рд░, " , "



рдЕрдиреБрд░реВрдк, рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдкрдиреЗ рдмрд╛рдПрдВ рд╕рдмрдЯреНрд░реА рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧрд╛ред



рдФрд░ рдЕрдВрдд рдореЗрдВ, рд╕рдмрд╕реЗ рдореБрд╢реНрдХрд┐рд▓ рдорд╛рдорд▓рд╛ - рд╡рд╛рдВрдЫрд┐рдд рд╡рд┐рдХрд▓реНрдк рдмрд╛рдПрдВ рдФрд░ рджрд╛рдПрдВ рд╕рдмрдЯреНрд░реА рдХреЗ рдПрдХ рдЯреБрдХрдбрд╝реЗ рдХреЛ рдУрд╡рд░рд▓реИрдк рдХрд░рддрд╛ рд╣реИред

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдореЗрдВ рдЙрд╕ рдЯреБрдХрдбрд╝реЗ рдХрд╛ рдЪрдпрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдХреЗрд╡рд▓ рдмрд╛рдПрдВ рд╕рдмрдЯреНрд░реА рдореЗрдВ рдЬрд╛рддрд╛ рд╣реИ, рдлрд┐рд░ рд╡рд╣ рдЯреБрдХрдбрд╝рд╛ рдЬреЛ рджрд╛рдИрдВ рдУрд░ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЙрдиреНрд╣реЗрдВ рдорд░реНрдЬ рдХрд░рддрд╛ рд╣реИред рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рджреЛ рд░рд╕реНрд╕рд┐рдпреЛрдВ рдХреЛ рдПрдХ рд╕рд╛рде рдХреИрд╕реЗ рдорд┐рд▓рд╛рдпрд╛ рдЬрд╛рдПред

рд╡рд╛рдВрдЫрд┐рдд рдЯреБрдХрдбрд╝реЛрдВ рдХреЗ рд╕реВрдЪрдХрд╛рдВрдХ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░рдирд╛ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИред рдмрд╛рдПрдВ рд╕рдмрдЯреНрд░реА рдХреЗ рд▓рд┐рдП рдкреБрдирд░рд╛рд╡рд░реНрддреА рдХреЙрд▓:

Substring( start : start, len : T.Left.Size - start)





рджрд╛рдИрдВ рдУрд░:

Substring( start : 0, len : len - (T.Left.Size - start))



ред

рдлрд┐рд░ рд╕реЗ, рд╣рдореЗрдВ start



рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд╢реВрдиреНрдп рд╕реЗ рджрд╛рдПрдВ рдЙрдкрдкреНрд░рдХрд╛рд░ рдореЗрдВ рдкрд╛рд╕ рдХрд░рдирд╛ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рдкрд░ рдлрд╝рдВрдХреНрд╢рди рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред

рдпрджрд┐ рдпреЗ рд╕рдВрдХреЗрдд рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред


рдЕрдВрдд рдореЗрдВ, рдкреБрдирд░рд╛рд╡рд░реНрддреА рдХреЙрд▓ рдЙрди рдкрддреНрддрд┐рдпреЛрдВ рддрдХ рдкрд╣реБрдВрдЪрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рд╕реЗрдЧрдореЗрдВрдЯ рдЕрдиреБрд░реЛрдз рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЦрдВрдб рдХреЗ рд╕рд╛рде рд╕рд╛рдорд╛рдиреНрдп рд░реИрдЦрд┐рдХ рддрд░реАрдХреЗ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдЕрдзрд┐рдХрддрдо рдкреНрд░рджрд░реНрд╢рди рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИред рдСрдкрд░реЗрд╢рди рдХреА рдХреБрд▓ рдЬрдЯрд┐рд▓рддрд╛ рд╣реЗ (рд▓реЙрдЧ рдПрди)ред



рдЕрдиреНрдп


рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╣рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХреЗрд╡рд▓ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рддрддреНрд╡реЛрдВ рдХреЗ рдХрд┐рд╕реА рднреА рд╡рд┐рд╢рд╛рд▓ рдЕрдиреБрдХреНрд░рдо рдХреЛ рдПрдХ рд╕рдорд╛рди рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╣ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдкрддреНрддреА рдЦрдВрдбреЛрдВ, рдФрд░ рд╡реЙрдпрд▓рд╛ рдХреЗ рд▓рд┐рдП рдЗрд╖реНрдЯрддрдо рд▓рдВрдмрд╛рдИ рдЪреБрдирдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ! - рд╣рдореЗрдВ рдХреЛрд▓реЛрд╕рд▓ рд▓рдВрдмрд╛рдИ рдХреЗ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдЕрдиреБрдХреНрд░рдореЛрдВ рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдорд┐рд▓рддреА рд╣реИред рд╕рдЪ рд╣реИ, рдЖрдк рдХрд╣рддреЗ рд╣реИрдВ, рдЕрдм рддрдХ, рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рд╕рдВрдХреНрд░рдордг рдХреЗ рд▓рд┐рдП рдПрдХ рдареЛрд╕ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЗрд╡рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╕рдВрдЪрд╛рд▓рди рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдХреБрдЫ рдирд╣реАрдВ, рдпрд╣ рдареАрдХ рд╣реИ :)



рд╕рдВрд░рдЪрдирд╛ рдХреА рдкрд╕рдВрдж рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред рдЖрдк рдПрдХ рдордирдорд╛рдирд╛ рд╕реЗрд▓реНрдл-рдмреИрд▓реЗрдВрд╕рд┐рдВрдЧ рдмрд╛рдЗрдирд░реА рдЯреНрд░реА рдЪреБрди рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдкрддреНрддрд┐рдпреЛрдВ рдореЗрдВ рдЕрдкрдирд╛ рдбреЗрдЯрд╛ рд╕реНрдЯреЛрд░ рдХрд░рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 2-3 рдЯреНрд░реА рдпрд╛ рдмреА-рдЯреНрд░реА ред рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рд╕реЗрдЯ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдмрдирд╛рдП рдЧрдП рдХрдИ рдЦреЛрдЬ рдкреЗрдбрд╝, рд▓рд╛рд▓-рдХрд╛рд▓реЗ рдкреЗрдбрд╝ рдФрд░ рдПрдХ рдХрд╛рд░реНрдЯреЗрд╢рд┐рдпрди рд╡реГрдХреНрд╖ рд╕рд╣рд┐рдд рдкреНрд░рддреНрдпреЗрдХ рд╢реАрд░реНрд╖ рдкрд░ рдЕрдкрдирд╛ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреЗ рд╣реИрдВред рдЙрди рдкрд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ-рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЕрд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╣реИ, рдЗрд╕рд╕реЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рджреМрд░рд╛рди рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрди рд╣реЛрдЧрд╛ рдФрд░ рдХреБрдЫ рдЬрдЯрд┐рд▓ рдХреЛрдб рд╣реЛрдЧрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕ рд▓реЗрдЦ рдХрд╛ рдореБрдЦреНрдп рдХрд╛рд░реНрдп, рдореЛрдиреЛрдЗрдбреНрд╕ рдХреЗ рд╕рд╛рде рдкреЗрдбрд╝реЛрдВ рдХреЗ рдорд╛рдирдХреАрдХрд░рдг, рдкрд╣рд▓реЗ рдФрд░ рджреВрд╕рд░реЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рджреЛрдиреЛрдВ рдкреЗрдбрд╝реЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд╕рд╛рдиреА рд╕реЗ рдЙрдкрдпреБрдХреНрдд рд╣реИред рдЗрд╕рд▓рд┐рдП рдХрд╣рд╛рдиреА рдХреЗ рдХреНрд░рдо рдореЗрдВ, рдореИрдВ рдХрднреА-рдХрднреА рдХрд╛рд░реНрдЯреЗрд╢рд┐рдпрди рдкреЗрдбрд╝ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓реЗрдЦ рдХреЗ рдкрд╛рда рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░реВрдВрдЧрд╛, рдФрд░ рдХрднреА-рдХрднреА рдлрд┐рдВрдЧрд░ рдЯреНрд░реА рдХреЛ , рдЕрдкрдиреА рдкреНрд░рд╕реНрддреБрддрд┐ рдХреЛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдХреБрдЫ рд╕рдВрддреБрд▓рд┐рдд рдкреЗрдбрд╝реЛрдВ рдХреА рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛рдУрдВ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рд╛рде рдЗрд╕реЗ рдЕрд╡реНрдпрд╡рд╕реНрдерд┐рдд рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЬреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╢рд╛рдирджрд╛рд░ рд╣реЛрдЧрд╛ред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдкрд╛рдардХ рдХрд┐рд╕реА рднреА рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдордЭреЗрдВрдЧреЗ рдФрд░ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдВрдЧреЗред




рдкрд░рд┐рд╢реЛрдзрди, рдпрд╛ рдПрдХ рдкреЗрдбрд╝ рдХреЛ рдХреИрд╕реЗ рдорд╛рдкрдирд╛ рд╣реИ





рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдпрд╛рдж рд╣реЛрдЧрд╛ рдХрд┐ рдЙрдк-рдЦрдВрдбреЛрдВ рдкрд░ рдХрдИ рдкреНрд░рд╢реНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдордиреЗ рдХрд╛рд░реНрдЯреЗрд╢рд┐рдпрди рдЯреНрд░реА рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдерд╛ред рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдореИрдВ рдЖрдкрдХреЛ рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЗ рд╕рд╛рд░ рдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛рддрд╛ рд╣реВрдВ: рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдПрдиреЛрдЯреЗрд╢рди рдХреЛ рдкреЗрдбрд╝ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рд╢реАрд░реНрд╖ рдкрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ - рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдЬреЛ рдЙрд╕ рд╢реАрд░реНрд╖ рдкрд░ рдПрдХ рд░реВрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдмрдЯреНрд░реА рдХреЗ рд▓рд┐рдП рд╕рдмрд╕рд┐рд▓реЗрд╢рди рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдзрд┐рдд рдореВрд▓реНрдп рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╕рдмрдЯреНрд░реА рддрддреНрд╡реЛрдВ рдХрд╛ рдпреЛрдЧ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд╕рдмрдЯреНрд░реА рддрддреНрд╡реЛрдВ рдХреА рдЕрдзрд┐рдХрддрдо, рд╕рдмрд╕рд┐рд▓реЗрд╢рди рдкрд░ рдмреВрд▓рд┐рдпрди рдзреНрд╡рдЬ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдпрд╛ рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐, рдФрд░ рдЗрд╕реА рддрд░рд╣ред рдЬрдм рдХреЛрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдХ рд╕рдм-рд╕реЗрдХреНрд╢рди рдкрд░ рдПрдХ рдЕрдиреБрд░реЛрдз рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рддреЛ рд╣рдореЗрдВ рдЗрд╕реЗ рд╣рд░ рдмрд╛рд░ O- (N) рдХреЗ рд░реВрдк рдореЗрдВ рдЧрдгрдирд╛ рдирд╣реАрдВ рдХрд░рдиреА рдереА, рдЬреЛ рд╣рдо рджреЗрдЦ рд░рд╣реЗ рдереЗ, рдХреНрдпреЛрдВрдХрд┐ рдХреБрдЫ рдЙрдкрдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЙрддреНрддрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреИрд╢ рдХрд┐рдП рдЧрдП рдереЗ, рдФрд░ рдпрд╣ рдХреЗрд╡рд▓ рдЙрдиреНрд╣реЗрдВ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдирд╛ рдерд╛ред



рдХрд╛рд░реНрдЯреЗрд╢рд┐рдпрди рдЯреНрд░реА рдореЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рд╢реАрд░реНрд╖ рдкрд░ рдиреНрдпрд╛рдп рдХреЛ рдмрд╣рд╛рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА "рдмреНрд▓реИрдХ рд╡рд░реНрдХ" рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╕реНрдкреНрд▓рд┐рдЯ рдлрд╝рдВрдХреНрд╢рди рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд╣рдореЗрдВ рдХреЗрд╡рд▓ рдкреЗрдбрд╝ рд╕реЗ рд╡рд╛рдВрдЫрд┐рдд рдЙрдк-рдЦрдВрдб рдХреЛ рдХрд╛рдЯрдирд╛ рдерд╛ рдФрд░ рдЕрдиреБрд░реЛрдз рдХреЗ рдЬрд╡рд╛рдм рдХреЗ рд░реВрдк рдореЗрдВ рдЬрдбрд╝ рдореЗрдВ рдЧрдгрдирд╛ рдореВрд▓реНрдп рд▓реЗрдирд╛ рдерд╛ред рд▓реЗрдХрд┐рди рдЖрдк рдЕрдиреНрдпрдерд╛ рдХрд░ рд╕рдХрддреЗ рдереЗред рдПрдХ рд░рд╕реНрд╕реА рдореЗрдВ рдПрдХ рд╡рд┐рдХрд▓реНрдк рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдпрд╛рдж рд╣реИ? рд╡рд╣ рдкреБрдирд░рд╛рд╡рд░реНрддреА рд░реВрдк рд╕реЗ рдКрдкрд░ рд╕реЗ рдКрдкрд░ рдХреА рдУрд░ рдЙрддрд░рддрд╛ рд╣реИ, рд╡рд╛рдВрдЫрд┐рдд рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреА рдмрд╛рдИрдВ рдФрд░ рджрд╛рдИрдВ рд╕реАрдорд╛ рдХреЛ рд╕реНрдерд╛рдиреАрдп рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рд░рд╛рд╕реНрддреЗ рдореЗрдВ рдорд┐рд▓рдиреЗ рд╡рд╛рд▓реА рд╣рд░ рдЪреАрдЬрд╝ рдХреЛ рд╡рд┐рд▓реАрди рдХрд░ рджреЗрддрд╛ рд╣реИред рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдпрд╣рд╛рдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред



рдПрдиреЛрдЯреЗрд╢рди рдХреЗ рд╕рд╛рде рдлрд┐рд░ рд╕реЗ рдирд┐рд╣рд┐рдд рдХрд╛рд░реНрдЯреЗрд╢рд┐рдпрди рдХреЗ рдкреЗрдбрд╝ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ - рдЙрдкрд╢реАрд░реНрд╖рдХ рдХреЗ рдпреЛрдЧ - рдХреЛрдиреЗ рдкрд░, рдФрд░ рдЗрд╕реЗ рд╕рдмрд╕рд┐рд▓реЗрд╢рди рдкрд░ рдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдХреНрд╡реЗрд░реА рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ [4; 8]



[4; 8]



ред



рдкрд░рд┐рдгрд╛рдо рдХреЛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ режред

1 рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдореЗрдВ, рд╣рдо рдмрд╛рдПрдВ рдЙрдкрд╢реНрд░реЗрдгреА рдореЗрдВ рдЙрддрд░рддреЗ рд╣реИрдВ [0; 9]ред рдкрд░рд┐рдгрд╛рдо 0 рд░рд╣рддрд╛ рд╣реИред

рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ 2 рдкрд░, рд╣рдо рд╕рд╣реА рдЙрдкрд╢реНрд░реЗрдгреА рдореЗрдВ рдЙрддрд░рддреЗ рд╣реИрдВ [5]; 9]ред рдкрд░рд┐рдгрд╛рдо рдореВрд▓ рдореЗрдВ рдореВрд▓реНрдп рд╕реЗ рдмрдврд╝рддрд╛ рд╣реИ - 42ред

рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ 3 рдкрд░, рд╣рдо рд╕рд╣реА рдЙрдкрд╢реНрд░реЗрдгреА рдореЗрдВ рдЙрддрд░рддреЗ рд╣реИрдВ [8; 9]ред рдкрд░рд┐рдгрд╛рдо рдмрд╛рдПрдВ рд╕рдмрдЯреНрд░реА рдХреЗ рдпреЛрдЧ рд╕реЗ рдмрдврд╝рд╛ рд╣реИ [5; рем] рдЬрдбрд╝ рдореЗрдВ рдорд╛рди рдФрд░ рекреи + реирей + рей = рем in рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ 4 рдкрд░, рд╣рдо рдмрд╛рдПрдВ рдЙрдкрд╢реНрд░реЗрдгреА рдореЗрдВ рдЙрддрд░рддреЗ рд╣реИрдВ [8]; 8]ред рдкрд░рд┐рдгрд╛рдо 68 рд░рд╣рддрд╛ рд╣реИред

рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ 5 рдкрд░, рд╣рдо рдкрд░рд┐рдгрд╛рдо рдХреЗ рд▓рд┐рдП (29) рдХреЗ рдореВрд▓ рдореЗрдВ рдорд╛рди рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рд╣рдореЗрдВ рдХреБрд▓ 97 рдорд┐рд▓рддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдЙрддреНрддрд░ рд╣реИред



рдкреНрд░рддреНрдпреЗрдХ рд╢реАрд░реНрд╖ рдкрд░ рдорд╛рдорд▓реЛрдВ рдХреЗ рдПрдХ рдкрд░рд┐рдЪрд┐рдд рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдпрд╣ рдпреЛрдЬрдирд╛ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ: рдЕрдиреБрд░реЛрдзрд┐рдд рдЦрдВрдб рдореЗрд░реЗ рдмрд╛рдПрдВ рдмреЗрдЯреЗ, рджрд╛рдПрдВ рдмреЗрдЯреЗ рдФрд░ рдЦреБрдж рдХреЗ рдЕрдиреБрд░реВрдк рдЦрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ? рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рд╣рдо рдпрд╛ рддреЛ рдПрдХ рдпрд╛ рджреЛ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдмрд╛рдИрдВ рдФрд░ рджрд╛рдИрдВ рдУрд░ рдЙрдк-рдЦрдВрдбреЛрдВ рдореЗрдВ рдореВрд▓реНрдпреЛрдВ рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ (рдКрдкрд░ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рджреЛ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдХреЙрд▓ рдХреА рдХрднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рдереА)ред рдХреЗрд╡рд▓ рдЕрдм рдорд╛рдорд▓реЛрдВ рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдореЗрдВ рдЕрднреА рднреА рд░реВрдЯ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдбреЗрдЯрд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред



рдЖрдк рдЖрд╕рд╛рдиреА рд╕реЗ рдЗрд╕рдХреА рдкрддреНрддрд┐рдпреЛрдВ рдореЗрдВ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рдПрдХ рд░рд╕реНрд╕реА рднрдВрдбрд╛рд░рдг рдЦрдВрдбреЛрдВ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рд╕рдмрд╕реЗ рдКрдкрд░ - рдЙрдк-рдЦрдВрдбреЛрдВ рдкрд░ рд░рдХрдо рдХреЗ рдЕрдиреБрд░реВрдк рдПрдиреЛрдЯреЗрд╢рдиред рдлрд┐рд░ рдХрд┐рд╕реА рднреА рд╕рдмрд╕рд┐рд▓реЗрд╢рди рдкрд░ рд░рд╛рд╢рд┐ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рдкрд┐рдЫрд▓реЗ рдкреИрд░рд╛рдЧреНрд░рд╛рдл рд╕реЗ рд╕рдмрд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреА рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рд╕рдорд╛рди рд╣реЛрдЧрд╛, рдХреЗрд╡рд▓ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдпрд╣ рдЗрд╕ рд░рд╛рд╢рд┐ рдХреЛ рдЬрдорд╛ рдХрд░реЗрдЧрд╛, рдФрд░ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рд╕реЗ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧрд╛ - рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдЙрддреНрддрд░ рдЬреЛрдбрд╝реЗрдВ рдФрд░ рдЙрдЪреНрдЪрддрд░ рдкрд╛рд╕ рдХрд░реЗрдВред рдпреЛрдЬрдирд╛ рдХреА рд╕рд░рд▓рддрд╛ рд╕рдВрджреЗрд╣ рд╕реЗ рдкрд░реЗ рд╣реИ, рдореИрдВ рд╕рд┐рд░реНрдл рдпрд╣ рд╕рдордЭрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рд╣рдореЗрд╢рд╛ рд╕рд╣реА рдЙрддреНрддрд░ рдХреНрдпреЛрдВ рджреЗрдЧрд╛ред



рдФрд░ рдЗрд╕реЗ рд╕рдордЭрдирд╛ рднреА рдЖрд╕рд╛рди рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╣рдо рдПрдХ рд╣реА рдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рдХрд┐ рд╣рдо рдмрд╕ рд░реИрдЦрд┐рдХ рд░реВрдк рд╕реЗ рд╕рдмрд╕рд┐рд▓реЗрд╢рди рдХреА рд╕рднреА рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓реЗ рдЧрдП, рд╣рдо рдЕрдм рдХреЗрд╡рд▓ рдПрдХ) рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рдкреВрд░реЗ рдмреНрд▓реЙрдХ рдХреЛ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддреЗ рд╣реИрдВ; рдЦ) рдЬрд░реВрд░реА рдирд╣реАрдВ рдХрд┐ рдмрд╛рдПрдВ рд╕реЗ рджрд╛рдПрдВред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЖрдк рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

рд▓рд╛рдЗрди рдкрд╛рд╕: (C l + C l + 1 + ... + C r )

рдЯреНрд░реА рдЕрдиреБрд░реЛрдз: (C l + (((C l + 1 + ... + C i ) + (C i + 1 + ... + C j )) + (C j + 1 + ... + C r-1 ) + ... + рд╕реА рдЖрд░ ))

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╣рдо рдмрд╕ рдХреЛрд╖реНрдардХреЛрдВ рдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рдХреНрд░рдо рдореЗрдВ рд░рдЦрддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕рд╕реЗ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдкрд░рд┐рдгрд╛рдо рдореЗрдВ рдмрджрд▓рд╛рд╡ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ "+" рдПрдХ рд╕рд╣рдпреЛрдЧреА рдСрдкрд░реЗрд╢рди рд╣реИ! рдУрд╣, рдореИрдВ рдкрд╣рд▓реЗ рдкреИрд░рд╛рдЧреНрд░рд╛рдл рд╕реЗ рдПрдХ рдкрд░рд┐рдЪрд┐рдд рд╢рдмреНрдж рдорд┐рд▓рд╛ :) рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рдЕрд╡рдзрд╛рд░рдгрд╛ рдпрд╣рд╛рдВ рдЖрдВрдХреА рдЬрд╛ рд░рд╣реА рд╣реИ ...



рдЙрдкрд╛рдп


рд╣рдо рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХрд╣рддреЗ рд╣реИрдВ рдЬреЛ рдкреЗрдбрд╝ рдореЗрдВ рдПрдХ рдкреЗрдбрд╝ рдХреЗ рдорд╛рдк рдореЗрдВ рдирд┐рд╣рд┐рдд рддрддреНрд╡реЛрдВ рдХреЗ рд╕реЗрдЯ рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рддрд╛ рд╣реИред рдЖрдорддреМрд░ рдкрд░, рдПрдХ рдкреЗрдбрд╝ рдХрд╛ рдорд╛рдк рдареАрдХ рд╡рд╣ рдСрдкрд░реЗрд╢рди рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╣рдо рдмрд╛рдж рдореЗрдВ рдкреНрд░рд╢реНрди рдХрд░реЗрдВрдЧреЗредрдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдЙрджрд╛рд╣рд░рдг рджрд┐рдП рд╣реИрдВ: рддрддреНрд╡реЛрдВ рдХрд╛ рдпреЛрдЧ, рддрддреНрд╡реЛрдВ рдХреА рдЕрдзрд┐рдХрддрдо, рддрддреНрд╡реЛрдВ рдкрд░ рдПрдХ рдзреНрд╡рдЬ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐, рдФрд░ рдЗрд╕реА рддрд░рд╣ред рдПрдХ рдФрд░ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдЙрдкрд╛рдпреЛрдВ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡рд░реНрдЧреЛрдВ рдХреА рд░рд╛рд╢рд┐ рдпрд╛ рд╡рд░реНрдгреЛрдВ рдХреА рдЖрд╡реГрддреНрддрд┐ рдХрд╛ рд╣рд┐рд╕реНрдЯреЛрдЧреНрд░рд╛рдоред



рдХреЛрдИ рднреА рдЙрдкрд╛рдп, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рдЬреНрдЮрд╛рдд рддрдХрдиреАрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдП рд░рд╕реНрд╕реА рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдХреИрд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдлрд┐рд░ рдЙрдкрд░реЛрдХреНрдд рд╡рд░реНрдгрд┐рдд рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрд┐рд╕реА рднреА рд╕рдмрд╕рд┐рд▓реЗрд╢рди рдкрд░ рдорд╛рдк рдЕрдиреБрд░реЛрдз рдЖрд╕рд╛рдиреА рд╕реЗ рд▓рдШреБрдЧрдгрдХ рд╕рдордп рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рдорд╛рдк рдлрд╝рдВрдХреНрд╢рди рд╕рд╛рд╣рдЪрд░реНрдп рд╣реИ ред рдЗрд╕ рдЧреБрдг рдХреЛ рдкреЗрдбрд╝ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рдорд╛рдк рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреА рдкреВрд░реА рддрд░рд╣ рд╕реЗ рддрд╛рд░реНрдХрд┐рдХ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВред



рд╣рдореЗрдВ рдПрдХ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдорд┐рд▓рддреА рд╣реИ: рдПрдХ рд░рд╕реНрд╕реА, рдЬреЛ рдХрд┐рд╕реА рднреА рдЙрдк-рдЦрдВрдб рдкрд░ рдорд╛рдк рдХреЗ рдореВрд▓реНрдп рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рдХреНрд╡реЗрд░реА рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд░рд╕реНрд╕рд┐рдпреЛрдВ рдХреЛ рдЪрдордХрд╛рдиреЗ рдФрд░ рдХрд╛рдЯрдиреЗ рдХреЗ рдмрд╛рдж рднреА рд╢рд╛рдорд┐рд▓ рд╣реИред рдПрдХреНрд╕реЗрд╕ рдЯрд╛рдЗрдо рд▓реЙрдЧрд░рд┐рджрдорд┐рдХ рд░рд╣рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдкреЗрдбрд╝ рдЕрдкрдиреЗ рдЖрдк рд╕рдВрддреБрд▓рд┐рдд рд╣реЛрддрд╛ рд╣реИ! рддрддреНрд╡реЛрдВ рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╕рдордп, рдирдП рдЙрдкрдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдХреИрд╢реНрдб рдорд╛рдк рдорд╛рди рдкреБрдирд░реНрдЧрдгрд┐рдд рд╣реЛрддреЗ рд╣реИрдВ, рдЕрдЫреВрддреЗ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╡реЗ рд╕рдорд╛рди рд░рд╣рддреЗ рд╣реИрдВред рдФрд░ рдпрд╣ рд╕рдм O (log N) рдХреЗ рд▓рд┐рдП рд╣реИред рдмрд╣реБрдд рдЦреВрдмред



рдЕрдм, рдЖрдЗрдП рдереЛрдбрд╝рд╛ рдорд╛рдкрдиреЗ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЛ рдЫреЛрдЯрд╛ рдХрд░реЗрдВред рдЖрдЗрдП рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдХрд┐рд╕реА рдкреЗрдбрд╝ рдХреЗ рдХреЗрд╡рд▓ рдПрдХ рдареЛрд╕ рддрддреНрд╡ рдХреЛ рдХреИрд╕реЗ рдорд╛рдкреЗрдВред рдЕрдм рдЙрдкрд╢реАрд░реНрд╖рдХ рдХрд╛ рдПрдХ рдЙрдкрд╛рдп рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ? рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИредрдпрд╣ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рджреЛ рдЙрдкрд╛рдпреЛрдВ рдХреЛ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ рддрд╛рдХрд┐ рджреВрд╕рд░реЗ рдХреЗ рдорд╛рдк рдХреЗ рд╕рд╛рде рдПрдХ рддрддреНрд╡ рдХреЗ рдорд╛рдк рдХрд╛ рд╕рдВрдпреЛрдЬрди рдЙрдирдореЗрдВ рд╕реЗ рджреЛ рдХреЗ рд╕реЗрдЯ рдХрд╛ рдорд╛рдк рджреЗред рдЙрд╕реА рд╕рдордп, рдпрд╣ рд╕рдВрдпреЛрдЬрди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕рд╛рд╣рдЪрд░реНрдп рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдЕрдиреНрдпрдерд╛ рд╣рдорд╛рд░реЗ рдХреНрд╡реЗрд░реА рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рдЧрд▓рдд рдЙрддреНрддрд░ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдВрдЧреЗред рдпреЗ рд╡рд┐рдЪрд╛рд░ рд╣рдореЗрдВ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рдирд┐рд╖реНрдХрд░реНрд╖ рддрдХ рд▓реЗ рдЬрд╛рддреЗ рд╣реИрдВ: рдорд╛рдк рдХрд┐рд╕реА рднреА рдХрд╛рд░реНрдп рдХрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдо рдореЛрдиреЛрдб рдХреЗ рддрддреНрд╡ рд╣реИрдВ ред



"рдЕрдзрд┐рдХрддрдо" рдорд╛рдк x рдХрд╛ рдПрдХ рдкреНрд░рд╛рдердорд┐рдХ рдХрд╛рд░реНрдп рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдореЛрдиреЙрдЗрдб <рд╕рдВрдЦреНрдпрд╛, рдЕрдзрд┐рдХрддрдо, -тИЮ> рдХреЗ рдкрд░рд┐рдгрд╛рдо рд╣реИрдВред

"рд╡рд░реНрдЧреЛрдВ рдХрд╛ рдпреЛрдЧ" рдорд╛рдк рдПрдХ рдкреНрд░рд╛рдердорд┐рдХ рдХрд╛рд░реНрдп x 2 рд╣реИ рдЬрд┐рд╕рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдореЛрдиреЙрдЗрдб <рд╕рдВрдЦреНрдпрд╛, +, 0> рдореЗрдВ рд╣реИред

рдЙрдкрд╛рдп "рдлрд╝реНрд░реАрдХреНрд╡реЗрдВрд╕реА рд╣рд┐рд╕реНрдЯреЛрдЧреНрд░рд╛рдо" - рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдлрд╝рдВрдХреНрд╢рди "рдПрдХ рджрд┐рдП рдЧрдП рдкреНрд░рддреАрдХ рдХреЗ рд▓рд┐рдП 100%"рдореЛрдиреЛрдб рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рдХреЗ рд╕рд╛рде <рд╣рд┐рд╕реНрдЯреЛрдЧреНрд░рд╛рдореНрд╕, рд╣рд┐рд╕реНрдЯреЛрдЧреНрд░рд╛рдореНрд╕ рдХреЛ рд╡рд░реНрдгреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП рд╕рдВрдпреЛрдЬрди рдХрд░рддреЗ рд╣реИрдВ, рдПрдХ рдЦрд╛рд▓реА рд╣рд┐рд╕реНрдЯреЛрдЧреНрд░рд╛рдо>ред рдкрд╛рдардХ, рдПрдХ рдЕрднреНрдпрд╛рд╕ рдХреЗ рд░реВрдк рдореЗрдВ, рдЖрд╡реГрддреНрддрд┐ рд╣рд┐рд╕реНрдЯреЛрдЧреНрд░рд╛рдо рдХреЗ рд╕рдВрдпреЛрдЬрди рдХреЗ рдПрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд╛рд╣рдЪрд░реНрдп рд╕рдВрдЪрд╛рд▓рди рдкрд░ рд╕реЛрдЪрдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред



рдореИрдВ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛ рдХрд┐ рд╣рдордиреЗ рдпрд╣рд╛рдВ рдХреЛрдб рдореЗрдВ рдХреНрдпрд╛ рд╣рд╛рд╕рд┐рд▓ рдХрд┐рдпрд╛ред рдЕрдм рд╕реЗ, рд╣рд╛рд╕реНрдХреЗрд▓ рдкрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рд╕реА # рдореЗрдВ рд╕рдорд╛рди рд╡рд┐рдЪрд╛рд░реЛрдВ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдмреЗрд╣рдж рдмрджрд╕реВрд░рдд рдФрд░ рдмрд╣реБрд░реВрдкреА рджрд┐рдЦрддрд╛ рд╣реИ: рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреЗрдбрд╝ рдХреЛ рджреЛ рдХреЗ рдмрдЬрд╛рдп рддреАрди рд╡рд┐рд╢рд┐рд╖реНрдЯ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдорд╛рдирдХреАрдХреГрдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛!

рдореИрдВ рд╕рдВрддреБрд▓рди рдХреЗ рдмрд┐рдирд╛ рдПрдХ рд╕рд░рд▓ рджреНрд╡рд┐рдЖрдзрд╛рд░реА рдкреЗрдбрд╝ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рджреВрдВрдЧрд╛ рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ / gluing / рдХрд╛рдЯрдиреЗред рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХреИрд╕реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрд╣ рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрддреБрд▓рд┐рдд рдкреЗрдбрд╝ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рд▓реЗрдЦ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдХрд╣рд╛, рдореЗрд░рд╛ рд▓рдХреНрд╖реНрдп рдирд╣реАрдВ рд╣реИред рдкрд╛рдардХ рдЖрд╕рд╛рдиреА рд╕реЗ рд╡рд░реНрдЧ рдХреЗ рд╕реНрдерд╛рди рдкрд░ рдХрд▓реНрдкрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ Tree



, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП FingerTree



ред рдпрд╛ рдХреБрдЫ рдЬрдЯрд┐рд▓ рд╣реИ ImplicitTreap



, рдЬрд┐рд╕рдореЗрдВ "рдиреНрдпрд╛рдп рдмрд╣рд╛рд▓ рдХрд░рдиреЗ" рдХреЗ рд╕рдВрдмрдВрдзрд┐рдд рдХрд╛рд░реНрдп рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдбреЗрдЯрд╛ рдХреЛ рдкреЗрдбрд╝ рдХреЗ рдХреЛрдиреЗ рдореЗрдВ рднреА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдкреЗрдбрд╝ рдХреЗ рд╡рдВрд╢рдЬ рднреА рдкрддрд▓реЗ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

 //  ,   . public interface IMeasured<V> { V Measure { get; } } //  :      public class IdentityMeasure<T> : IMeasured<T> { public readonly T Data; public IdentityMeasure(T data) { Data = data; } public T Measure { get { return Data; } } } // T -      // V -      // M - ,         public class Tree<T, M, V> : IMeasured<V> where M: IMonoid<V>, new() where T: IMeasured<V> { public readonly T Data; //    public readonly Tree<T, M, V> Left; public readonly Tree<T, M, V> Right; private readonly V _measure; public V Measure { get { return _measure; } } public Tree(T data) //   { Left = Right = null; Data = data; _measure = data.Measure; } public Tree(Tree<T, M, V> left, Tree<T, M, V> right) //   { Left = left; Right = right; Data = default(T); _measure = Singleton<M>.Instance.Append(left.Measure, right.Measure); } } //  ,      public class SumTree : Tree<IdentityMeasure<int>, AddMonoid, int> { public SumTree(int data) //   : base(new IdentityMeasure<int>(data)) {} public SumTree(SumTree left, SumTree right) //   : base(left, right) {} } //  ,      public class PriorityTree : Tree<IdentityMeasure<double>, MaxMonoid, double> { public PriorityTree(double data) //   : base(new IdentityMeasure<double>(data)) {} public PriorityTree(PriorityTree left, PriorityTree right) //   : base(left, right) {} }
      
      







рдЗрд╕ рдЦрдВрдб рдореЗрдВ рд╣рдорд╛рд░реЗ рд╕рднреА рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреА рдкрд░рд┐рдгрддрд┐ рдЙрдк-рдЯреНрд░рд┐рдо рдЙрдкрд╛рдп рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рддрд░реАрдХрд╛ рд╣реЛрдЧрд╛ред

 //  . //      : Size = 1 + left.Size + right.Size; public readonly int Size = 1; public V MeasureOn(int start, int length) { if (start == 0 && length == Left.Size) return Left.Measure; if (start == Left.Size && length == Right.Size) return Right.Measure; if (start + length <= Left.Size) return Left.MeasureOn(start, length); if (start >= Left.Size) return Right.MeasureOn(start - Left.Size, length); var monoidV = Singleton<M>.Instance; var leftValue = Left.MeasureOn(start, Left.Size - start); var rightValue = Right.MeasureOn(0, length - (Left.Size - start)); return monoidV.Append(leftValue, rightValue); }
      
      







рдирдпрд╛ рдЪрд░рдг: рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХрд░рддрд╛ рд╣реИ



рд╣рдо рдЖрдЧреЗ рдЪрд▓рдХрд░ рдЙрди рдкрд░рд┐рдЪрд╛рд▓рдиреЛрдВ рдХреЗ рд╡рд░реНрдЧ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рд╣рдо рдПрдХ рдореЛрдиреЛрдб рджреНрд╡рд╛рд░рд╛ рдорд╛рдкреА рдЧрдИ рд░рд╕реНрд╕реА рдкрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЙрдк-рдЦрдВрдбреЛрдВ рдкрд░ рд╡рд┐рднрд┐рдиреНрди рдЙрдкрд╛рдпреЛрдВ рдХреЗ рдЕрдиреБрд░реЛрдз рдХреЛ рдХреИрд╕реЗ рдкреВрд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рдПред рд▓реЗрдХрд┐рди рдЕрдХреНрд╕рд░ рдЬреАрд╡рди рдореЗрдВ рди рдХреЗрд╡рд▓ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЕрд░реНрде рдХреЛ рдЬрд╛рдирдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдРрд╕реЗ рддрддреНрд╡ рднреА рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ "рд╕рдмрд╕реЗ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ" рдЗрд╕рдХреЗ рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рднрд╛рдЧ рд▓реЗрддреЗ рд╣реИрдВред



рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдорд╛рдк рдХрд┐рд╕реА рд╕реЗрдЧрдореЗрдВрдЯ рдореЗрдВ рддрддреНрд╡реЛрдВ рдХреА рдЕрдзрд┐рдХрддрдо рд╣реИ, рддреЛ рдпрд╣ рдЬрд╛рдирдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдпрд╣ рдЦрд╛рддрд╛ рдХрд┐рд╕ рд╡рд┐рд╢реЗрд╖ рддрддреНрд╡ рддрдХ рдкрд╣реБрдВрдЪрддрд╛ рд╣реИред рд╣рдорд╛рд░реА рдкреБрд░рд╛рдиреА рдЕрдЪреНрдЫреА рдЗрдВрдбреЗрдХреНрд╕ рдПрдХреНрд╕реЗрд╕ рднреА рдЙрд╕реА рдСрдкрд░реЗрд╢рдВрд╕ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддреА рд╣реИред рдпреЗ рд╕рднреА рдСрдкрд░реЗрд╢рди, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рдпрд╛рдж рдХрд░рддреЗ рд╣реИрдВ, рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рдорд╛рди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдгрд┐рдд рд╣реИрдВ - рдпрд╣ рд░реИрдЦрд┐рдХ рд░реВрдк рд╕реЗ рдкреЗрдбрд╝ рдХреЗ рдПрдХ рд╢реАрд░реНрд╖ рд╕реЗ рджреВрд╕рд░реЗ рддрдХ рдкрд╣реБрдВрдЪрддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдпрд╣ рд╡рд╛рдВрдЫрд┐рдд рдкрддреНрддреА рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪрддрд╛ред рдЗрд╕рд▓рд┐рдП, рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдмрдирд╛рдиреЗ рдХрд╛ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рддрд░реАрдХрд╛ рд╣реИред



рдПрдХ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рд╡рд┐рдзреЗрдп рдкреА, рдЕрд░реНрдерд╛рддреН, рдПрдХ рдордирдорд╛рдиреА рддрд░реНрдХ рдХрд╛ рдмреВрд▓рд┐рдпрди рдХрд╛рд░реНрдпред

рд╣рдо рд╡рд╕реНрддреБрдУрдВ рдХреА рдПрдХ рдЕрдиреБрдХреНрд░рдо рдХрд░рддреЗ рд╣реИрдВ рдПрдХ 1 ... рдПрдХ рдПрди рдХреА ред рд╡рд╕реНрддреБрдПрдВ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ рдореЛрдиреЙрдЗрдб рдХреЗ рддрддреНрд╡ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕реЗ рд▓рд╛рдЗрдиреЗрдВ рд╣реЛрдиреЗ рджреЗрдВред



рд╣рдо рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рд╣рдорд╛рд░реЗ рдЕрдиреБрдХреНрд░рдо рдХреЗ рдЙрдкрд╕рд░реНрдЧреЛрдВ рдХреА рдЧрдгрдирд╛ рдХрд░реЗрдВрдЧреЗ ред рдпрд╣ рдЗрд╕ рдирдП рдЕрдиреБрдХреНрд░рдо рд╣реИ:

рдПрдХ 1

рдПрдХ 1 тКЧ рдПрдХ 2

рдПрдХ 1 тКЧ рдПрдХ 2 тКЧ рдПрдХ 3

...

рдПрдХ 1 тКЧ рдПрдХ 2 тКЧ рдПрдХ 3 тКЧ ... тКЧ рдПрдХ рдПрди рдХреА

рдЬрд╣рд╛рдВ "тКЧ", рд╣рдо рд╕рд╣рдорддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ, - monoid рдХреЗ рдЖрдкрд░реЗрд╢рдиред рддрд╛рд░ рдХреЗ рд╕рд╛рде рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕рдорд╡рд░реНрддреА рд╣реЛрдЧрд╛ред



рдЕрдм рд╣рдо рдЗрди рд╕рднреА рдЙрдкрд╕рд░реНрдЧреЛрдВ рдкрд░ рд╡рд┐рдзреЗрдп рдореВрд▓реНрдп рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВред рд╣рдореЗрдВ рдмреВрд▓рд┐рдпрди рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдПрдХ рдХреНрд░рдо рдорд┐рд▓рддрд╛ рд╣реИред

рдФрд░ рдЕрдВрдд рдореЗрдВ, рд╣рдо рдПрдХ рд╡рд┐рдзреЗрдп рдореЛрдиреЛрдЯреЛрди рдХрд╣рддреЗ рд╣реИрдВ рдпрджрд┐ рдпрд╣ рд╣рдореЗрд╢рд╛ рд╣рдорд╛рд░реЗ рдЙрдкрд╕рд░реНрдЧреЛрдВ рдкрд░ рдЧрд▓рдд рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдХреБрдЫ рдмрд┐рдВрджреБ рдкрд░ рдЧрд▓рдд рдХреЛ рд╕рд╣реА рдкрд░ рдмрджрд▓ рджреЗрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдЕрдиреБрдХреНрд░рдо рдХреЗ рдЕрдВрдд рддрдХ рдпрд╣ рд╕рд╣реА рд░рд╣рддрд╛ рд╣реИред

рд╕реАрдзреЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ рдХрд╣реЗрдВ, рдпрджрд┐ рдЖрдк 1 рдХреЗ рд╕рд╛рде рдЭреВрдареА рдФрд░ 1 рдХреЗ рд╕рд╛рде рд╕рдЪ рдХреА рдЬрдЧрд╣ рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ рд╡рд┐рдзреЗрдп рдкрд░рд┐рдгрд╛рдореЛрдВ рдХрд╛ рдХреНрд░рдо рдЧреИрд░-рдШрдЯрддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред



рдореИрдВ рдЗрд╕ рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдореЛрдиреЛрдб рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЗ рд▓рд┐рдП рдЖрдВрдХрдбрд╝реЗ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реВрдВрдЧрд╛ред рдЪрд▓реЛ рдкреА ( рд░реЛрдВ ) = { s рд╢рд╛рдорд┐рд▓ ""



рд╕рдмрд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ}ред

рд░рд╕реНрд╕реА рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдХреИрд╢реНрдб рдорд╛рдк рдорд╛рди рд╣реЛрддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рдд, рдЙрдкрд░реА рд░реЗрдЦрд╛рдУрдВ рдХрд╛ рд╕рдВрдШрдЯрдиред



рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд▓рдЧрд╛рддрд╛рд░ рджреЛ рдЙрдкрд╕рд░реНрдЧреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ: рдПрдХ рд╡рд░реНрддрдорд╛рди рдмрд╛рдПрдВ рдмреЗрдЯреЗ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦреЗ рдмрд┐рдирд╛, рджреВрд╕рд░рд╛ - рдЗрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИред рдЗрди рдЙрдкрд╕рд░реНрдЧреЛрдВ рдкрд░ рд╡рд┐рдзреЗрдп рдХреЗ рдореВрд▓реНрдп рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЖрдк рд▓рдЧрд╛рддрд╛рд░ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреМрди рд╕рд╛ "рдХреВрдж" рд╣реБрдЖ рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рд╣рдо рд░рд╕реНрд╕реА рдХреЗ рдореВрд▓ рдореЗрдВ рдереЗ, рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдкреА ( " "



) = рдЧрд▓рдд
, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдХреВрджрдирд╛ рд╕рд╣реА рд╕рдмрдЯреНрд░реА рдореЗрдВ рд╣реБрдЖ, рдЬрд╣рд╛рдВ рд╣рдо рдиреАрдЪреЗ рдЧрдП рдереЗред рд▓реЗрдХрд┐рди рдЕрдЧрд▓реЗ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдкрд░, рдмрд╛рдИрдВ рдЙрдкрд╕рд░реНрдЧ рдкреА рдкрд░ рдорд╛рди( " , "



) = рд╕рд╣реА рд╣реИ
, рдЗрд╕рд▓рд┐рдП, рдмрд╛рдПрдВ рд╕рдмрдЯреНрд░реА рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рдЬрд╛рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред



рд╡рдВрд╢ рдХреЗ рджреМрд░рд╛рди, рдЖрдкрдХреЛ рд▓рдЧрд╛рддрд╛рд░ рдЙрдкрд╕рд░реНрдЧ рдХреЗ рд╕рд╣реА рдореВрд▓реНрдп рдХреЛ рдмрдирд╛рдП рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЗрд╕реЗ рд╡рд░реНрддрдорд╛рди рдмрд╛рдПрдВ рдмреЗрдЯреЗ рдХреА рдорд╛рдк рдХреЗ рд╕рд╛рде рд╕рд╣реА рд╕рдмрдЯреНрд░реА рдореЗрдВ рд╡рдВрд╢ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЪрдордХрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред



рдЕрдВрдд рдореЗрдВ, рд▓реЙрдЧрд░рд┐рджрдорд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдЪрд░рдгреЛрдВ рдореЗрдВ, рд╣рдо рдЙрд╕ рд╢реАрдЯ рдкрд░ рдкрд╣реБрдВрдЪрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдХреВрдж рд╣реБрдЖ рдерд╛ред рд▓реАрдл рд╕реЗрдЧрдореЗрдВрдЯ рдХреЗ рдЕрдВрджрд░, рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рд╕рдЯреАрдХ рдХреВрдж рд╕реНрдерд╛рди рдХреА рддрд▓рд╛рд╢ рдХрд░рдирд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдПрдХ рдЕрдиреБрдХреНрд░рдорд┐рдХ рдЪреЗрдХ рджреНрд╡рд╛рд░рд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рдЗрддрдирд╛ рддреБрдЪреНрдЫ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ: рд╡рд┐рдзреЗрдп рдХреЗ рдмрджрд▓реЗ рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ "рдПрдХ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИ", рд╡рд┐рдзреЗрдп "рдПрдХ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЛ рд╕рдВрддреБрд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ"ред рдпрд╣ рдиреАрд░рд╕ рднреА рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреА рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдкреНрд░рдпрд╛рд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред



рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "рд╡рд░реНрдЧреЛрдВ рдХрд╛ рдпреЛрдЧ" рдФрд░ "256 рд╕реЗ рдЕрдзрд┐рдХ" рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЬрдВрдк рдХреА рд╕рдЯреАрдХ рд╕реНрдерд┐рддрд┐ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╢реАрдЯ рдореЗрдВ рд╕реЗрдЧрдореЗрдВрдЯ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╡рд░реНрдЧреЛрдВ рдХреА рдЕрд▓рдЧ рд╕реЗ рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред



рд╡реИрд╕реЗредрдпрджрд┐ рдЖрдк рд╢рдмреНрджреЛрдВ рдХреЗ рд╕рд╛рде рдЦрдВрдбреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╢реАрдЯ рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд░реНрдг рд╣реИрдВ, рддреЛ рдЗрд╕ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЖрдк рд╡рд┐рднрд╛рдЬрди рдСрдкрд░реЗрд╢рди рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ред рдпрд╣ рдПрдХ рдореЛрдиреЛрдЯреЛрди рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдкреЗрдбрд╝ рдХреЛ рдХрд╛рдЯ рджреЗрддрд╛ рд╣реИ рджреЛ рдореЗрдВ рд╡рд┐рдзреЗрдп: рдмрд╛рдПрдВ рдкрд░рд┐рдгрд╛рдо рдореЗрдВ, рд╡рд┐рдзреЗрдп рд╕рдВрдкрддреНрддрд┐ рдЕрднреА рддрдХ рд╕рдВрддреБрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ, рдФрд░ рд╕рд╣реА рдореЗрдВ, рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдВрддреБрд╖реНрдЯ рд╣реИред рд╕рдЯреАрдХ рд╡рд┐рднрд╛рдЬрди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдПрдХ рдЕрднреНрдпрд╛рд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рдардХ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд╡рд┐рд╡реЗрдХ рдХреЗ рд╕рд╛рде рдЫреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ :)

рд╡реИрд╕реЗ, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рдпрд╣ рдЕрднреА рднреА рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред

, . , . .




рд▓реЗрдХрд┐рди рдЕрдм рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрдВрдбреЗрдХреНрд╕ I рдХреЗ рддрд╣рдд рдПрдХ рддрддреНрд╡ рддрдХ рдкрд╣реБрдВрдЪ рдХреЗрд╡рд▓ рдореЛрдиреЛрдЯреЛрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреЗрдбрд╝ рдореЗрдВ рдПрдХ рдЦреЛрдЬ рд╣реИ "рдкреВрд░реНрд╡рд╕рд░реНрдЧ рд▓рдВрдмрд╛рдИ> i "ред рдЙрдкрд╕рд░реНрдЧ рдХреА рд▓рдВрдмрд╛рдИ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрд╛рдп рд╣реИ, рд╣рдордиреЗ рдЗрд╕реЗ рдПрдХ рдорд╛рдк рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрдм рд╣рдордиреЗ рдЙрдкрдкреНрд░рдХрд╛рд░ рдХреЗ рдЖрдХрд╛рд░реЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ред рдЗрд╕ рдЙрдкрд╛рдп рдХреЗ рд▓рд┐рдП, рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдХрд╛рд░реНрдп рдкрд╣рдЪрд╛рди рдЗрдХрд╛рдИ рд╣реИ, рдФрд░ рдорд╛рди рдореЛрдиреЙрдЗрдб <, +, 0> рдореЗрдВ рд╣реИрдВред рд╕реНрдерд┐рддрд┐ рд╕рдВрдЦреНрдпрд╛ i - рдпрд╣ рдареАрдХ рд╡рд╣реА рд╕реНрдерд┐рддрд┐ рд╣реИ рдЬрд╣рд╛рдБ рдЕрдиреБрдХреНрд░рдо рдЙрдкрд╕рд░реНрдЧ рдХреА рд▓рдВрдмрд╛рдИ i рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛрдиреЗ рд▓рдЧрддреА рд╣реИ ред



рдЪрдпрдирд┐рдд рдЙрджрд╛рд╣рд░рдг





рдЗрд╕рд▓рд┐рдП, рд╣рдордиреЗ рд╕рднреА рдореБрдЦреНрдп рдлрд╛рдпрджреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХреА рдХрд┐ рдЗрд╕ рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЛ рд░рд╕реНрд╕реА рдХреЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХреБрдЫ рдореЛрдиреЙрдпрдб рдХреЗ рд╕рд╛рде рд╣рдореЗрдВ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рдо "рдФрд╕рдд рджрд░реНрдЬреЗ рдХрд╛" рдореВрд▓реНрдпреЛрдВ рдХреЗ рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рдЕрдиреБрдХреНрд░рдо рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдПрдХ рдХреЗ рдмрд╛рдж рдПрдХ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдЕрдиреБрдХреНрд░рдореЛрдВ рдХреЗ рдХрд┐рд╕реА рднреА рд╕рдмрд╕реЗрдкреНрд╢рди рдХреЗ рд▓рд┐рдП, рдорд╛рдк рдХреЗ рдореВрд▓реНрдп рдХреЛ рдкрд╣рдЪрд╛рди рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рд╣рдо рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдХреБрдЫ рдореЛрдиреЛрдЯреЛрди рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдкрд░рд┐рдгрд╛рдореА рд░рд╕реНрд╕реА рдХреЛ рдХрд╛рдЯрдХрд░ рдЙрдкрд▓рдмреНрдзрд┐ рдХреА рд╕рд╣реА рд╕реНрдерд┐рддрд┐ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ рдпрд╣ рд╕рдм рдПрдХ рд▓рдШреБрдЧрдгрдХ рд╕рдордп рдореЗрдВ, рдЬреЛ рд╣рдореЗрдВ рдЕрд╕реАрдорд┐рдд рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдХреА рдЧреБрдВрдЬрд╛рдЗрд╢ рджреЗрддрд╛ рд╣реИред рдореИрдВ рдЕрдм рдЗрд╕ рдЕрд╕реАрдорд┐рдд рджрд╛рдпрд░реЗ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ, рдЬрд┐рд╕рдореЗрдВ рдЖрдкрдХреЛ рддреАрди рдирд╣реАрдВ рдмрд▓реНрдХрд┐ рдЧреИрд░-рдорд╛рдирдХ, рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рдФрд░ рджрд┐рд▓рдЪрд╕реНрдк рдореЛрдиреЙрдпрдб рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреЗред



рдЙрджрд╛рд╣рд░рдг рдирдВрдмрд░ 1: рдЖрдВрдХрдбрд╝реЗ




рдЗрд╕ рдмрд╛рд░ рд╣рдо рдмреЛрд░рд┐рдВрдЧ рдирдВрдмрд░реЛрдВ, рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдпрд╛ рдмрд▓реНрд╕ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХреБрдЫ рдЕрдзрд┐рдХ рдЙрдмрд╛рдК рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рдХрд░реАрдм рдзреНрдпрд╛рди рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рд╣реЛрдЧрд╛ ... рдирдореВрдиреЗред



рдПрдХ рдирдореВрдирд╛, рдЕрд░реНрдерд╛рддреН, рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЖрдмрд╛рджреА рд╕реЗ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕реЗрдЯ, рдФрд╕рдд рджрд░реНрдЬреЗ рдХрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╣рд░ рдХреЛрдИ рдирдореВрдиреЗ рдХреА рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдЬрд╛рдирддрд╛ рд╣реИ:

рдПрди - рдирдореВрдирд╛ рдЖрдХрд╛рд░ред

рдПрдо рдирдореВрдиреЗ рдХрд╛ рдФрд╕рдд рдореВрд▓реНрдп рд╣реИред

V рдирдореВрдиреЗ рдХрд╛ рд╡рд┐рдЪрд░рдг рд╣реИ, рдЕрд░реНрдерд╛рддреН, рдФрд╕рдд рдирдореВрдиреЗ рд╕реЗ рд╡рд┐рдЪрд▓рди рдХреЗ рд╡рд░реНрдЧреЛрдВ рдХрд╛ рдФрд╕рдд рдореВрд▓реНрдп рд╣реИред

рд╣рдо рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд рд╡рд┐рдЪрд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рддреН , рдорддрд▓рдм рд╕реЗ рдЪреБрдХрддрд╛ рд╡рд┐рдЪрд▓рди рдХрд╛ рдпреЛрдЧ рд╣реИред рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рдпрд╣ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХреЗ рдЗрд╕ рдкреНрд░рд╛рдердорд┐рдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдмрд╕ рдкрд░ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдПрди рдХреА ред






рдореИрдВрдиреЗ рдиреАрдЪреЗ рджрд┐рдП рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдореЗрдВ рдХрд╣рд╛ рдХрд┐ рдирдореВрдирд╛ "рдФрд╕рдд рджрд░реНрдЬреЗ рдХрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред" рд╣рд╛рдВ, рдореИрдВрдиреЗ рдЧрд▓рддреА рд╕реЗ рдЗрд╕ рд╢рдмреНрдж рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдерд╛ :) рдирдореВрдирд╛ рдХреЗ рдЗрди рддреАрди рдмреБрдирд┐рдпрд╛рджреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдЗрд╕рдХреЗ рдЙрдкрд╛рдп рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рд╕реНрдЯреЙрдк-рд╕реНрдЯреЙрдк-рд╕реНрдЯреЙрдк, рдЖрдк рдХрд╣рддреЗ рд╣реИрдВ, рддреАрди рд╢рд┐рдерд┐рд▓ рдпреБрдЧреНрдорд┐рдд рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХрд╛ рдПрдХ рд╣реА рд╕реЗрдЯ рдХреНрдпрд╛ рд╣реИ - рдПрдХ рдореЛрдиреЛрдЗрдб рдХрд╛ рдПрдХ рддрддреНрд╡? рдпрд╣ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдореЛрдиреЙрдпрдб рд╣реИ? рдХрд┐рд╕реА рднреА рддрд░рд╣ рдирдореВрдиреЛрдВ рдХреЛ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ? рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдХреНрдпрд╛?



рдпрд╣ рд╕рдм рдЦреВрдмрд╕реВрд░рддреА рд╕реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рд╣реА рдЬрдирд╕рдВрдЦреНрдпрд╛ рд╕реЗ рджреЛ рдирдореВрдиреЗ A рдФрд░ B рд╣реИрдВ ред рдЖрдк рдЗрди рдирдореВрдиреЛрдВ рдХреЛ рдПрдХ рд╕рд╛рде рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рдПрдХ рд╕рдВрдпреБрдХреНрдд рдирдореВрдирд╛ рдПрдХреНрд╕ рдмрдирд╛рддреЗ рд╣реИрдВ , рдЬрд┐рд╕рдХрд╛ рдЖрдХрд╛рд░ рдореВрд▓ рд▓реЛрдЧреЛрдВ рдХреЗ рдЖрдХрд╛рд░ рдХрд╛ рдпреЛрдЧ рд╣реИред рдлрд┐рд░, рдЬреИрд╕рд╛ рдХрд┐ 1979 рдореЗрдВ рдЯреЛрдиреА рдЪреИрди рдиреЗ рджрд┐рдЦрд╛рдпрд╛ рдерд╛, рдПрдХ рдирдП рдирдореВрдиреЗ рдХреЗ рдФрд╕рдд рдФрд░ рдмрд┐рдирд╛ рдмрд┐рдХреЗ рд╣реБрдП рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЧрдгрдирд╛ рдирд┐рдореНрди рд╕реВрддреНрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ:









рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдирдореВрдиреЛрдВ рдХреЛ рдПрдХ рд╕рд╛рде рдорд┐рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕ рдХреНрд░рдо рдореЗрдВ рдЕрдВрддрд┐рдо рдирдореВрдиреЗ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╕рдорд╛рди рд╣реЛрдВрдЧреАред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдирдореВрдиреЗ рдХрд╛ рд╡рд┐рд▓рдп рд╕рд╛рд╣рдЪрд░реНрдп рд╣реИред

рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрдкрдЪрд╛рд░рд┐рдХрддрд╛ рдмрдиреА рд╣реБрдИ рд╣реИ рдХрд┐ рдЦрд╛рд▓реА рдирдореВрдиреЗ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдХреНрдпрд╛ рд╣реИрдВред рдЗрд╕рдХрд╛ рдЖрдХрд╛рд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ 0 рд╣реИ, рд╡реНрдпрд╕рди рдХреА рд╡рдЬрд╣ рд╕реЗ рдФрд╕рдд рднреА 0 рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рд╡рд┐рдЪрд░рдг рд╕рдВрддреЛрд╖рдЬрдирдХ рдврдВрдЧ рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╣рдореЗрдВ рдЗрд╕ рдмрд╛рдд рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ - рд╣рдорд╛рд░реЗ рдкреЗрдбрд╝реЛрдВ рдореЗрдВ рд╣рдо рдЦрд╛рд▓реА рдирдореВрдиреЗ рдХреЗ рд╡рд┐рдЪрд░рдг рдХреЛ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдирд╣реАрдВ рдЫреВрдПрдВрдЧреЗред



рдореБрдЭреЗ рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдФрд░ рд╕рдм рдХреБрдЫ рдЬреЛ рдХрд┐ pastie.org рдкрд░ рд╣реИ , рд╕реЗ рдореЛрдиреЙрдЗрдб рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдбрд╛рд▓рдиреА рдереА , рдХреНрдпреЛрдВрдХрд┐ рд▓реЗрдЦ рдХреЗ рдЖрдХрд╛рд░ рдкрд░ рд╣реИрдмреНрд░рд╛рд╣рдм рдХрд╛ рдкреНрд░рддрд┐рдмрдВрдз рдХреБрдЫ рд╣рдж рддрдХ рддрдирд╛рд╡ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ :)



рдЖрдк рдЖрд╕рд╛рдиреА рд╕реЗ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдЪрд░ рдХреА рдзрд╛рд░рд╛ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕ рдкрд░ "рд╡рд┐рдВрдбреЛ" рдЖрдХрд╛рд░ K рдЪрд▓рддрд╛ рд╣реИред, рдпрд╛рдиреАред рд╣рдореЗрдВ рд▓рдЧрд╛рддрд╛рд░ рдЕрдВрддрд┐рдо K рд░рд╛рд╢рд┐рдпреЛрдВ рдХреЗ рд╡рд┐рдЪрд░рдг рдФрд░ рдЕрдкреЗрдХреНрд╖рд╛ рдХреЛ рдЬрд╛рдирдирд╛ рд╣реЛрдЧрд╛ ред рдПрдХ рдкреЗрдбрд╝ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддрддреНрд╡реЛрдВ рдХреЛ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдЗрд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдПрдХ рдХрддрд╛рд░ рдореЗрдВ, рдФрд░ рдЧрдгрдирд╛ рдХрд┐рдП рдЧрдП рдорд╛рди рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдореЗрдВ рд╣рдореЗрд╢рд╛ рдкреЗрдбрд╝ рдХреА рдЬрдбрд╝ рдкрд░ рдЭреВрда рдмреЛрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рд╕реМрдВрджрд░реНрдпред



рдЙрджрд╛рд╣рд░рдг рдирдВрдмрд░ 2: рдЫрд╡рд┐рдпреЛрдВ рдХреА рдЕрд▓реНрдлрд╛ рд░рдЪрдирд╛




рджреЛ рдкрд╛рд░рднрд╛рд╕реА рдЪрд┐рддреНрд░ рд╣реИрдВ (рдЕрд▓реНрдлрд╛ рдЪреИрдирд▓ рдХреЗ рд╕рд╛рде)ред рд╣рдо рджреЛ рдЪрд┐рддреНрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдУрд╡рд░рд▓реЗ рдСрдкрд░реЗрдЯрд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ , рдЬрд┐рд╕реЗ рдЕрд▓реНрдлрд╛ рд░рдЪрдирд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ ред рдлрд╝реЛрдЯреЛрд╢реЙрдк рдореЗрдВ рдкрд╛рд░рднрд╛рд╕реА рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдЦреЗрд▓рдиреЗ рд╡рд╛рд▓реЗ рд╣рд░ рдХреЛрдИ рдЗрд╕рдХреА рдХрд╛рд░реНрд░рд╡рд╛рдИ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИред


рдЫрд╡рд┐рдпреЛрдВ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдкрд┐рдХреНрд╕реЗрд▓ рдХреЗ рд▓рд┐рдП рджреЛ рдкреИрд░рд╛рдореАрдЯрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВ: рд░рдВрдЧ рд╕реА рдФрд░ рдЕрд▓реНрдлрд╛ рдЪреИрдирд▓ ╬▒ ред рдЗрди рдореВрд▓реНрдпреЛрдВ рдХреА рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдФрд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реВрддреНрд░реЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рд╕реБрдкрд░рд┐рдореНрдкреЛрдЬрд░ рдСрдкрд░реЗрдЯрд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддрдереНрдпреЛрдВ рдХреЛ рдЧрдгрд┐рддреАрдп рд░реВрдк рд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:



рдЗрди рддрдереНрдпреЛрдВ рдФрд░ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реВрддреНрд░реЛрдВ рдХреЗ рдкреНрд░рдорд╛рдг рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЖрдкрдХреЛ рдЗрд╕реА рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рд▓реЗрдЦ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рддрд╛ рд╣реВрдБ ред



рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЕрд▓реНрдлрд╛ рд░рдЪрдирд╛ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреА рдкрд╛рд░рджрд░реНрд╢реА рдЫрд╡рд┐рдпрд╛рдВ рдПрдХ рдореЛрдиреЙрдЗрдб рдмрдирд╛рддреА рд╣реИрдВред рдпрд╣ рд╣рдореЗрдВ рдЙрдЪрд┐рдд рдкреЗрдбрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд╡рд┐рд╢рд╛рд▓ рд╕реЗрдЯреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рджреЗрддрд╛ рд╣реИ, рдЬреЛ рдПрдХ-рджреВрд╕рд░реЗ рдкрд░ рдЖрд░реЛрдкрд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред



рдЙрджрд╛рд╣рд░рдг 3: рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐


рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд▓реЗрдЦ рдкрд░ рд╣рд╛рдмрд░рд╛рдм рджреНрд╡рд╛рд░рд╛ рд▓рдЧрд╛рдИ рдЧрдИ рдорд╛рддреНрд░рд╛ рдореБрдЭреЗ рд╕рдордЭрджрд╛рд░реА рд╕реЗ рдЦрддреНрдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддреА рд╣реИ рдФрд░ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдкрд╣рдЪрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдорд┐рдд рдСрдЯреЛрдореЗрдЯрд╛ рдХреЗ рд╕рдВрдХреНрд░рдордг рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдореЛрдиреЛрдб, рдЕрд░реНрдерд╛рддреН рддреАрд╕рд░реЗ рд╕реБрдВрджрд░ рдореЛрдиреЛрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрди рдХрд░рддреА рд╣реИред рдПрдХ рд░рд╕реНрд╕реА рдкрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдЖрдкрдХреЛ рдПрдХ рд╡реГрджреНрдзрд┐рд╢реАрд▓ рд▓реЗрд╕рд░ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓рддреА рд╣реИ - рдПрдХ рд╕рдВрд░рдЪрдирд╛ рдЬреЛ рдЖрдкрдХреЛ рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рддреНрд╡рд░рд┐рдд рд╕рдВрд╢реЛрдзрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ, рдФрд░ рдХрд┐рд╕реА рднреА рд╕рдордп рддреНрд╡рд░рд┐рдд рдЙрддреНрддрд░ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╣рд╛рдВ рдПрдХ рджреА рдЧрдИ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдЖрдЧреЗ рдХреА рд░реЗрдЦрд╛ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИред рдЖрдЧреЗ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЖрдкрдХреЛ рдбреИрди рдкрд┐рдкреЛрдиреА рдХреЗ рдореВрд▓ рд▓реЗрдЦ рдХреЗ рдЕрдиреБрд╡рд╛рдж рдФрд░ рдПрдХ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рд▓реЗрдЦ, рдпреВрдЬреАрди рдХрд┐рд░рдЪрд┐рд╡ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рддрд╛ рд╣реВрдВред рд╕реАрдбрд┐рдВрдЧ рдЪрд┐рддреНрд░:









рдЗрд╕ рдмреАрдЪ, рдЖрдк рд╕рднреА рдХрд╛ рдзреНрдпрд╛рди рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред



All Articles