рд╣рдорд╛рд░реЗ рдкрд╛рд╕ 0 рд╕реЗ N рддрдХ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреА рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕реАрдорд╛ рд╣реИ, рд╣рдореЗрдВ рджреЛ рдХрд╛рд░реНрдп рд▓рд┐рдЦрдиреЗ рд╣реИрдВ рдЗрдВрдЯ рдЖрд╡рдВрдЯрд┐рдд () рдФрд░ рдореБрдлреНрдд (рдЗрдВрдЯ)ред рдкрд╣рд▓рд╛ рд╡реНрдпрдХреНрддрд┐ рд╕реАрдорд╛ [0, N) рд╕реЗ рдореБрдХреНрдд рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИ, рдФрд░ рджреВрд╕рд░рд╛, рддрджрдиреБрд╕рд╛рд░, рдЗрд╕рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП "рд░рд┐рдЯрд░реНрди" рд╣реЛрддрд╛ рд╣реИ (рд╣рдо рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╕рдВрдЦреНрдпрд╛ рдПрди рдХрд╛рдлреА рдЫреЛрдЯреА рд╣реИ рдХрд┐ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдЖ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡реЗ рдЖрд╡рдВрдЯрд┐рдд рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдЕрдзрд┐рдХ рд╣реИрдВ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдордп рдмрд┐рдВрджреБ)ред рдЙрд╕реА рд╕рдордп, "рдирд┐рдЪрд▓реЗ рд╕реНрддрд░" рдкрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреЗрд╡рд▓
рдбреАрдПрдЪрдЯреА рд╣реИ ред рдХреЛрдИ рддрд╛рд▓реЗ рдирд╣реАрдВ рд╣реИрдВ, рдФрд░, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрд▓реНрдЧреЛрд░рд┐рджрдо рд╕реЗ рдЧрд▓рддреА рд╕рд╣рд┐рд╖реНрдгреБрддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ - рдпрджрд┐ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рджреМрд░рд╛рди рдХреНрд▓рд╕реНрдЯрд░ рдиреЛрдбреНрд╕ рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА "рд╡рд┐рдХрд╕рд┐рдд" рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╕рд┐рд╕реНрдЯрдо рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдХрд╛рд░реНрдп рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ, рдФрд░ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рднреА рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЗ рд╕рд╛рде рдЕрд╕рдлрд▓-рд╕реБрд░рдХреНрд╖рд┐рдд рд╕реЗрд╡рд╛ рдХрд╛ рд╕рд╣реА рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЛ рдХреИрд╕реЗ рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛рдП рддрд╛рдХрд┐ рдпрд╣ рд╕рдВрднрд╡ рд╣реЛ рд╕рдХреЗ - рдмрд┐рд▓реНрд▓реА рдХреЗ рдиреАрдЪреЗ рдЖрдкрдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИред
рдПрдкреАрдЖрдИ
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЖрдЗрдП рд╣рдорд╛рд░реЗ "рдЖрд╡рдВрдЯрдирдХрд░реНрддрд╛" рдХреЗ рдПрдкреАрдЖрдИ рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░рдХреЗ рд╢реБрд░реВ рдХрд░реЗрдВред рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╡рд░реНрддрдорд╛рди рдПрдкреАрдЖрдИ рдЧрд▓рдд рд╣реИ - рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рддрд░рд┐рдд рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХреЙрд▓рд┐рдВрдЧ рдХреЛрдб рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдкреВрд▓ рддрддреНрд╡ рдХреА рд╡рд┐рд╢реЗрд╖ рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рдордЭрдиреЗ рдореЗрдВ рд╣рдореЗрд╢рд╛ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрдЧрд╛ред
рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЙрджрд╛рд╣рд░рдгред
1) рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдореИрдВ рдЖрд╡рдВрдЯрд┐рдд () рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реВрдВ, рдпрд╣ рд╕рдлрд▓ рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЙрд▓рд┐рдВрдЧ рдХреЛрдб рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИ рдЬрдм рдЖрд╡рдВрдЯрди () рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рднреЗрдЬреА рдЬрд╛рддреА рд╣реИред рд╕рдорд╕реНрдпрд╛ - рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдмрд╛рд╣рд░ рдЦрдбрд╝рд╛ рдерд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рднреА рдкрддрд╛ рдирд╣реАрдВ рд╣реИред рдореЗрд░реЗ рдкрд╛рд╕ рд╢рд╛рд░реАрд░рд┐рдХ рд░реВрдк рд╕реЗ рдХрд┐рд╕реА рддрд░рд╣ рдХреА рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд▓рд┐рдЦрдиреЗ рдФрд░ рдЗрд╕реЗ рд╣рдЯрд╛рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред рджреВрд╕рд░реА рдУрд░, рд╕рдВрд╕рд╛рдзрди рдХреЛ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдХреЛрдб рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд╛рдо рдХрд░ рдЪреБрдХрд╛ рд╣реИ, рдЗрд╕рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЛ рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдФрд░ рд╡рд╣ рдЦреБрдж рдЗрд╕реЗ рд╣рдЯрд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЙрд╕реЗ рдХреЙрд▓ рдлреНрд░реА рд╣реЛрдиреЗ рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЬреЛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред
2) рдирд┐: рд╢реБрд▓реНрдХ () рдлрд╝рдВрдХреНрд╢рди рдХреА idempotency рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдХреЙрд▓рд┐рдВрдЧ рдХреЛрдб рд▓рд┐рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рдХрд┐рд╕реА рднреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдХреЙрд▓ рдлреНрд░реА () рд╣реЛред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдЖрдмрдВрдЯрд┐рдд рд╕реЗ рдЙрддреНрддрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдЗрд╕реЗ рдирд┐рд░рдВрддрд░ рдореЗрдореЛрд░реА (RDBMS, рдХреА-рд╡реИрд▓реНрдпреВ рд╕реНрдЯреЛрд░реЗрдЬ, рдпрд╛ рд╕рд┐рд░реНрдл рдПрдХ рдкреНрд░рд┐рдВрдЯрд░ рдкрд░ рдкреНрд░рд┐рдВрдЯ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдХрд╛рдЧрдЬ рдХреЗ рдПрдХ рдЯреБрдХрдбрд╝реЗ рдХреЛ рд╕реНрдХреИрдирд░ рдореЗрдВ рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ) рдореЗрдВ рдбрд╛рд▓реЗрдВрдЧреЗред рдФрд░ рдлрд┐рд░, рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдордп рдкрд░, рдЬрдм рдХреБрдЫ рдиреЛрдб рд╕рдВрд╕рд╛рдзрди рдХреЛ рд╣рдЯрд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдореБрдлреНрдд () рдХреЙрд▓ рдХрд░реЗрдЧрд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрджрд┐ рдЗрд╕ рд╕рдордп рдлреНрд░реА рдиреЛрдб рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рддреЛ рдиреЛрдб рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рд╣рдорд╛рд░реА "рдХреЙрд▓рд┐рдВрдЧ рдкрд╛рд░реНрдЯреА" рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдХреЙрд▓ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдЧреА (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕реЗ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИред рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред рдпрд╣ рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдВ рдПрдХ рдЕрдкреНрд░рд┐рдп рдЖрд╢реНрдЪрд░реНрдп рд╣рдореЗрдВ рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реИред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдореБрдХреНрдд рдЕрднреА рднреА рд╕рдВрд╕рд╛рдзрди рдореБрдХреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдФрд░ рдЗрд╕рд╕реЗ рднреА рдЕрдзрд┐рдХ, рдХреБрдЫ рддреГрддреАрдп-рдкрдХреНрд╖ рдЖрд╡рдВрдЯрди () рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдЙрдЬрд╛рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдлрд┐рд░ рд╣рдо рд╕рдВрд╕рд╛рдзрди рдХреЛ рдлрд┐рд░ рд╕реЗ рдореБрдХреНрдд рдХрд░реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдЗрд╕ рдмрд╛рд░ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд┐рд╕реА рдФрд░ рдХрд╛ рд╕рдВрд╕рд╛рдзрди рд╣реЛрдЧрд╛ред
рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛, рдЗрди рдПрдкреАрдЖрдИ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рдХрдИ рддрд░реАрдХреЗ рд╣реИрдВред
рд╕рдмрд╕реЗ рд╕рд░рд▓ рдФрд░ рдХрд╛рдлреА рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рд╣реИ, рд╣рдо рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдЖрд╡рдВрдЯрди рдХреЗ рд▓рд┐рдП рдПрдХ рдЯреИрдЧ рд╕рдВрд▓рдЧреНрди рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ рдЖрд╡рдВрдЯрд┐рдд / рдореБрдХреНрдд рд╕рдВрдЪрд╛рд▓рди рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдЬреЛрдбрд╝реЗ рдХреЗ рд▓рд┐рдП рдЕрджреНрд╡рд┐рддреАрдп рдЪреБрдирд╛ рдЬрд╛рддрд╛ рд╣реИред
рдпрд╣реА рд╣реИ, рд╡рд┐рдзрд┐ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЛ int рдЖрд╡рдВрдЯрд┐рдд (T t) рдФрд░ рдореБрдХреНрдд (int id, T t) рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЯреА, рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдЙрд╕ рдкрд░ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рддреБрд▓реНрдпрддрд╛ рд╕рдВрдмрдВрдз рдореМрдЬреВрдж рд╣реИ, рдФрд░ рдпрд╣ рдХрд┐ рд╣рдо рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рджреЛ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдирд┐: рд╢реБрд▓реНрдХ рд╡рд┐рдзрд┐ рдХреЛ рдмреЗрд░реЛрдЬрдЧрд╛рд░ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рджреВрд╕рд░реЗ, рд╣рдо "рдлреИрдВрдЯрдо" рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рд╕рд░рд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкреЗрд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдП рдЧрдП рдереЗ, рд▓реЗрдХрд┐рди рдЬреЛ рд╣рдореЗрдВ рдкреБрд░рд╛рдиреА рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рдорд┐рд▓реА рдереА (рд╕рдорд╕реНрдпрд╛ 1 рджреЗрдЦреЗрдВ)ред рд▓реЗрдЦ рдХреЛ рди рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдордиреЗ рдЗрд╕ рдкрд░ рдзреНрдпрд╛рди рдирд╣реАрдВ рджрд┐рдпрд╛ред
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЖрдк рд▓рдЧрднрдЧ рд╣рдореЗрд╢рд╛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдмрджрд▓реА рдЧрдИ рд╕реЗрд╡рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рдореЗрд╢рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рд╣рдо рдХреБрдЫ рдХреЛ "рдЖрдЗрдбреЗрдВрдЯрд┐рдлрд╝рд╛рдпрд░" рдЖрд╡рдВрдЯрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рд╣рдо рд╣рдореЗрд╢рд╛ рдЯреИрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕ "рдХреБрдЫ" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЕрдм рдереЛрдбрд╝рд╛ рдФрд░, рдпрд╣ рд╕рдордЭрдирд╛ рдмрд╛рдХреА рд╣реИ рдХрд┐ "рдЖрдВрд╢рд┐рдХ" рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдХреИрд╕реЗ рдЖрд╡рдВрдЯрд┐рдд рдФрд░ рдореБрдХреНрдд рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ, рдпрд╣ рд╕рдордЭреЗрдЧрд╛ рдХрд┐ рд╣рдо рдХреЙрд▓рд┐рдВрдЧ рдХреЛрдб рдХреИрд╕реЗ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рдФрд░ рдХреНрдпрд╛ рдЗрд╕реЗ рд▓рд┐рдЦрдирд╛ рд╕рдВрднрд╡ рд╣реИред
рдЬрд╛рд╣рд┐рд░ рд╣реИ, рд╕рд╛рдорд╛рдиреНрдп рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдХреЙрд▓рд┐рдВрдЧ рдХреЛрдб рдХреЛ рдкрддрд╛ рдирд╣реАрдВ рдЪрд▓ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрд╡рдВрдЯрди рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдпрд╛ рдирд╣реАрдВред рддреЛ рдХреЙрд▓рд┐рдВрдЧ рдХреЛрдб рдХреЗ рд▓рд┐рдП рдкрд╣рд▓рд╛ рдирд┐рдпрдо рдкрдврд╝рд╛ рдЬрд╛рдПрдЧрд╛
тАв рдХреЙрд▓рд┐рдВрдЧ рдХреЛрдб рдХреЛ рдкрд╣рд▓реЗ рдХрд╣реАрдВ рд╕реЗ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдЖрд╡рдВрдЯрди рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣реА рдХреЙрд▓ рдХрд░реЗрдВред рдЗрд╕рдХреЗ рдХрд╛рд░рдг, рдХреЙрд▓рд┐рдВрдЧ рдХреЛрдб рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдЧрд╛, рдЬрд╣рд╛рдВ рдпрд╣ рд╡рд┐рдкрд░реАрдд рдХреНрд░рдо рдореЗрдВ рдЬрд╛рддрд╛ рд╣реИ - рд╕рднреА рдЪрдпрдирд┐рдд рдЬреЛрдбрд╝реЗ (рдЖрдИрдбреА, рдЯреА) рдкрд░ рдкреБрдирд░рд╛рд╡реГрддреНрдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЙрди рд╕рднреА рдЬреЛрдбрд╝реЛрдВ рдХреЗ рд▓рд┐рдП рдореБрдлреНрдд рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЗрд╕рдХреЗ рднрдВрдбрд╛рд░рдг рдореЗрдВ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдирд╣реАрдВ рд╣реИрдВред
рдЗрд╕реА рддрд░рд╣, рд╣рдо рдлреНрд░реА рдореЗрдердб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рди рд╕рдХрддреЗ - рдЪрд╛рд╣реЗ рдЙрд╕реЗ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдП рдпрд╛ рдирд╣реАрдВред
рджреЛ рдФрд░ рдирд┐рдпрдо рдпрд╣рд╛рдБ рд╕реЗ рдкреИрджрд╛ рд╣реБрдП рд╣реИрдВред
тАв рдирд┐рд╢реБрд▓реНрдХ рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдП рдЧрдП рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЛ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ "рдореБрдХреНрдд" рдорд╛рдирд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП (рдЬреЛ рдХрд┐ рдЕрдм рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ) рдореБрдХреНрдд рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ
тАв рдФрд░, рдлрд┐рд░ рднреА, рдирд┐: рд╢реБрд▓реНрдХ рд╡рд┐рдзрд┐ рдХреЛ (рдЕрдиреБрдореЗрдп - рдХрдИ рдмрд╛рд░) рдХрд╣рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрдм рддрдХ рдХрд┐ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдХреЙрд▓ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреВрд░рд╛ рди рд╣реЛ рдЬрд╛рдПред
рдареАрдХ рд╣реИ, рдЪрд▓реЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝реЗрдВред
рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди
рдореИрдВ рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛рддрд╛ рд╣реВрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкреНрд░рд╡реЗрд╢ рджреНрд╡рд╛рд░ рдкрд░ DHT рд╣реИред рдЬрд╛рд╡рд╛ рдореЗрдВ рд▓рд┐рдЦрдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП, рд╣рдо рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕
рд╕рдорд╡рд░реНрддреА (рдЗрд╕рдХрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИ, рд╡реИрд╕реЗ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рддреБрдЪреНрдЫ рд╣реИ, рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ рд╣реЛрдЧрд╛)ред рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ, рд╡рд┐рднрд┐рдиреНрди рдореЗрдЬрдмрд╛рдиреЛрдВ рдХрд╛ рд╕рдорд╡рд░реНрддреА рдорд╛рдирдЪрд┐рддреНрд░ рдПрдХ рд╣реА рд╕рд╛рдордЧреНрд░реА рдкрд░ "рджрд┐рдЦрддрд╛ рд╣реИ"ред
рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ, DHT рдореЗрдВ рдСрдкрд░реЗрд╢рди рдкрд░рдорд╛рдгреБ рд╣реИрдВ (рдпрд╣ DHT рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдХрдИ рддрд░реАрдХреЛрдВ рд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдорд░реНрдерд┐рдд рд╣реИ)ред
рд╣рд╛рд▓рд╛рдВрдХрд┐, DHT рдореЗрдВ рдЪреБрдиреМрддрд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рдХреЛрдИ рднреА рдкрд░рдорд╛рдгреБ рдирд╣реАрдВ рд╣реИ, рдФрд░ рд╣рдореЗрдВ рдЗрд╕ рднрд╛рдЧ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЗрд╕рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рддреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди
рдЬрд╛рд╣рд┐рд░ рд╣реИ, DHT рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдлреЙрд░реНрдо id-> t (рдпрд╛ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд) рдХреЗ рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЗ рдирдХреНрд╢реЗ рд╣реЛрдВрдЧреЗред рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╕рднреА рд╡реНрдпрд╕реНрдд рдиреЛрдбреНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдиреЗ рдХреЗ рдмрд┐рдирд╛ рдкрд╣рд▓реА рдореБрдлреНрдд рдЖрдИрдбреА рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ?
рдРрд╕рд╛ рд╕рдорд╛рдзрд╛рди рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╣реИред рдЖрдЗрдП рдмрд╛рдЗрдирд░реА рдЗрдВрдЯрд░рд╡рд▓ рдЯреНрд░реА рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВ
тАв рдкреЗрдбрд╝ рдХреА рдЬрдбрд╝ - рдЕрдВрддрд░рд╛рд▓ [0, N)
тАв рдЧреИрд░-рдкрддреНрддреА рдиреЛрдб рдПрдХреНрд╕ [рдП, рдмреА] рдХреЗ рддрд╣рдд, рджреЛ рдиреЛрдбреНрд╕ [рдП, рд╕реА) рдФрд░ [рд╕реА, рдмреА) рд╣реИрдВ, рдЬрд╣рд╛рдВ рд╕реА рдХреЛ рдЪреБрдирд╛ рдЬрд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЗрди рдЕрдВрддрд░рд╛рд▓реЛрдВ рдХреА рд▓рдВрдмрд╛рдИ рдмрд░рд╛рдмрд░ рд╣реЛ
тАв рдФрд░ рд░реВрдк рдХреЗ рдЕрдВрддрд░рд╛рд▓ [рдЖрдИрдбреА, рдЖрдИрдбреА + 1) - рдкреЗрдбрд╝ рдХреЗ рдкрддреНрддреЗ рд╣реИрдВред
рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдРрд╕реЗ рдкреЗрдбрд╝ рдореЗрдВ рдПрди рд╢реАрдЯ рд╣реЛрддреЗ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЛ рд░реВрдЯ рд╕реЗ рдПрдирдПрди (рдПрди) рд╕рдВрдХреНрд░рдордг рддрдХ рдкрд╣реБрдВрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЕрдм рдкреЗрдбрд╝ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдЧреИрд░-рдкрддреНрддреА рдиреЛрдб рдореЗрдВ рдбрд╛рд▓рддреЗ рд╣реИрдВ рдЬреЛ рдЕрдВрддрд░рд╛рд▓ рдкрд░ рдЖрд░рдХреНрд╖рд┐рдд рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИ рдЬреЛ рдЗрд╕ рдиреЛрдб рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИред рдФрд░ рдкреЗрдбрд╝ рдХреЗ рдкрддреНрддреА рдХреЗ рдиреЛрдбреНрд╕ рдореЗрдВ рд╣рдо рдПрдХ рдЯреИрдЧ рдбрд╛рд▓реЗрдВрдЧреЗ рдпрджрд┐ рд╕рдВрдмрдВрдзрд┐рдд рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд╡реНрдпрд╕реНрдд рд╣реИрдВ, рдФрд░ рдпрджрд┐ рдпрд╣ рдореБрдлрд╝реНрдд рд╣реИ рддреЛ рд╢реВрдиреНрдпред
рдЕрдм рдпрд╣ DHT рдореЗрдВ рдЗрд╕ рдкреЗрдбрд╝ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕рд╣реА рдХреНрд░рдо рдореЗрдВ рдЗрд╕рдХреЗ рдиреЛрдбреНрд╕ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдХреНрдпреЛрдВрдХрд┐, рдореИрдВ рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛рддрд╛ рд╣реВрдВ, рд╣рдорд╛рд░реЗ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рднрд▓реЗ рд╣реА рдпрд╣ рдПрдХ рдордирдорд╛рдирд╛ рдХрджрдо рдкрд░ рдмрд╛рдзрд┐рдд рд╣реЛред
рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рджреЛ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдЕрдВрддрд░рд╛рд▓ рд╕рдВрд░рдЪрдирд╛ рд╣реИ - рд╕реЗ рдФрд░, рдЬреЛ рдПрдХ рдЖрдзреЗ-рдЦреБрд▓реЗ рдЕрдВрддрд░рд╛рд▓ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ (рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рд╢рд╛рдорд┐рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИ)ред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдРрд╕реА рд╕рдВрд░рдЪрдирд╛ рдПрдХ рдкреЗрдбрд╝ рдХреЗ рдиреЛрдб рдХреЛ рдПрдиреНрдХреЛрдб рдХрд░рддреА рд╣реИред рдпрд╣ рднреА рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рддреБрдЪреНрдЫ рдХреНрд╖рдг рдкрд░ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП - рдкреЗрдбрд╝ рдореЗрдВ рдХреЛрдИ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдиреЛрдбреНрд╕ рдирд╣реАрдВ рд╣реИрдВ, рдФрд░, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдРрд╕реЗ рдкреЗрдбрд╝ рдореЗрдВ рдЕрдВрддрд░рд╛рд▓ рдХреА рд╕реНрдерд┐рддрд┐ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдирд╣реАрдВ рдЪрд╛рд╣рд┐рдПред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рд╣рдореЗрдВ рдкреЗрдбрд╝ рдХреЗ рддрддреНрд╡реЛрдВ рдХреЛ "рд╕рдВрдХреЗрдд" рд╕реЗ рдмрд╛рдВрдзрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рд╣рдо рд╣рдореЗрд╢рд╛ рдПрдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдиреЛрдб X рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреМрди рд╕реЗ рдиреЛрдбреНрд╕ "рдиреАрдЪреЗ" рд╣реИрдВ рдФрд░ рдпрд╣ рдХреМрди рд╕рд╛ рдиреЛрдб "рдКрдкрд░" рд╣реИред
рдпрд╣ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕рдВрдкрддреНрддрд┐ рд╣реИ рдЬреЛ рд╣рдорд╛рд░реЗ рдЬреАрд╡рди рдХреЛ рд╕рд░рд▓ рдмрдирд╛рддреА рд╣реИред
рдЖрдЗрдП рдЗрд╕ рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдбрд╛рд▓рддреЗ рд╣реИрдВ рдХрд┐ рдЖрд╡рд╢реНрдпрдХ рдирд┐рд░реНрдорд╛рддрд╛, рд╕реНрдкрд╖реНрдЯ рдмрд░рд╛рдмрд░реА рдФрд░ рд╣реИрд╢рдХреЛрдб рд╣реИрдВ, рдФрд░ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рддреАрди рдФрд░ рдЙрдкрдпреЛрдЧреА рддрд░реАрдХреЗ рд╣реИрдВ: рдмрд╛рдПрдВ (), рджрд╛рдПрдВ () - рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЗ рдирд┐рд░реНрдзрд╛рд░рдг рдХреЗ рд▓рд┐рдП рдмрдЪреНрдЪреЗ рдХреЗ рдиреЛрдбреНрд╕ рдФрд░ рдКрдкрд░ () рдХреЗ рдирд┐рд░реНрдзрд╛рд░рдг рдХреЗ рд▓рд┐рдПред рдбрд┐рдЬрд╛рдЗрдирд░реЛрдВ рдФрд░ рд╣реИрд╢ рдХреЛрдб рдХреЗ рд╕рд╛рде, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рд░ рдХреЛрдИ рдЗрд╕реЗ рд╕рдВрднрд╛рд▓ рд╕рдХрддрд╛ рд╣реИред рдмрд╛рдПрдВ () рдФрд░ рджрд╛рдПрдВ () рдХреЗ рд╕рд╛рде рднреАред рдЕрдк () рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдХреБрдЫ рдЕрдзрд┐рдХ рдХрдард┐рди рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рд▓рд┐рдЦрдирд╛ рд╕рдВрднрд╡ рд╣реИ (рд╣рдо рд▓реЗрдЦ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЗрд╕ рдкрд░ рд▓реМрдЯреЗрдВрдЧреЗ рддрд╛рдХрд┐ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рд╛рде рдкрд╛рда рдХреЛ рдзреБрдВрдзрд▓рд╛ рди рдХрд░реЗрдВ)ред
рдЕрдм, "рдЬрд╛рджреБрдИ" рдЕрдВрддрд░рд╛рд▓ рд╕рдВрд░рдЪрдирд╛ рд╣реИ рдЬреЛ рд╣рдорд╛рд░реЗ рдлреИрд▓реЗ рд╣реБрдП рдкреЗрдбрд╝ рдХреЛ рдХреЛрдб рдХрд░ рд╕рдХрддреА рд╣реИ, рдорд╛рдорд▓рд╛ рдЫреЛрдЯрд╛ рд╣реИред
рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдореЗрдВ, рд╣рдореЗрдВ рдХреБрдЫ рдЧреИрд░-рд░рд┐рдХреНрдд рд╢реАрдЯ рдХрд╛ рдЪрдпрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЙрд╕рдореЗрдВ рдПрдХ рдЯреИрдЧ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рдлрд┐рд░ рдЪрдпрдирд┐рдд рд╢реАрдЯ рд╕реЗ рдКрдкрд░ рдЬрд╛рдХрд░ рдЙрдирдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рджреЛ рдЪреАрдЬреЛрдВ рдХреЛ рдпрд╛рдж рд░рдЦрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред
тАв рдЯреИрдЧ рдХреЛ рдкрд░рдорд╛рдгреБ рдСрдкрд░реЗрд╢рди putIfAbsent рджреНрд╡рд╛рд░рд╛ рд╕реВрдЪреА рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ
тАв рдЧреИрд░-рдкрддреНрддреА рдиреЛрдбреНрд╕ рдореЗрдВ рдореВрд▓реНрдпреЛрдВ рдХреЛ рд▓реВрдк рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрджреНрдпрддрди-рд╕рдВрд╢реЛрдзрд┐рдд-рдкрд░рдорд╛рдгреБ-рдкрд░рдорд╛рдгреБ рдХреЗ рд╕рд╛рде рдЕрджреНрдпрддрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрд░реНрдерд╛рддреН, рд╣рдо рдЕрджреНрдпрддрди рдиреЛрдб рд╕реЗ рдореВрд▓реНрдп рдкрдврд╝рддреЗ рд╣реИрдВ, рдмрд╛рд▓ рдиреЛрдбреНрд╕ рдореЗрдВ рдореВрд▓реНрдп рдкрдврд╝рддреЗ рд╣реИрдВ, рдкрд░рдорд╛рдгреБ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрдЪреНрдЪреЛрдВ рдХреЗ рдпреЛрдЧ рдХреЛ рдЕрджреНрдпрддрди рдиреЛрдб рдореЗрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВред рдпрджрд┐ рдкрд░рдорд╛рдгреБ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рд╣реБрдЖ, рддреЛ рдСрдкрд░реЗрд╢рди рджреЛрд╣рд░рд╛рдПрдВред
тАв рднрд▓реЗ рд╣реА рд╣рдо DHT рд╕реЗ рдкрдврд╝рддреЗ рд╣реИрдВ рдХрд┐ рдиреЛрдб рдХреЗ рдЙрдк-рдкреЗрдбрд╝ рдореЗрдВ рдореБрдлреНрдд рдкрддреНрддрд┐рдпрд╛рдВ рд╣реИрдВ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╡реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡рд╣рд╛рдВ рд╣реИрдВред
рдЗрд╕рд▓рд┐рдП, рдПрдХ рдЦрд╛рд▓реА рд╢реАрдЯ рдХреЛ рдЦреЛрдЬрдиреЗ рдФрд░ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реА рдЖрдмрдВрдЯрди рдХреЛ "рд╕рдлрд▓рддрд╛ рддрдХ" рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛рдПрдЧрд╛ред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдкреЗрдбрд╝ рдХрд╛ рдкрд╣рд▓рд╛ рд╕рдВрд╢реЛрдзрди рдЬреЛ рд╣рдо рдХрд░рддреЗ рд╣реИрдВ, рд╡рд╣ рд╢реАрдЯ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣реА - рдореВрд▓ рдиреЛрдбреНрд╕ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░ рд░рд╣рд╛ рд╣реИред рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЖрд╡рдВрдЯрди рдХрд┐рд╕реА рднреА рд╕рдордп рдкреВрд░рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдирд┐: рд╢реБрд▓реНрдХ рдЙрд╕реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ - рдпрд╣ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЛ "рдЬрд╛рд░реА" рдХрд░рддрд╛ рд╣реИ (рдЕрд░реНрдерд╛рдд, DHT рд╕реЗ рдиреЛрдб рд╣рдЯрд╛рддрд╛ рд╣реИ) рдпрджрд┐ рдЗрд╕рдореЗрдВ рдЯреИрдЧ рдЕрдиреБрд░реЛрдз рдХрд┐рдП рдЧрдП рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ рдФрд░ рдкреЗрдбрд╝ рдХреЛ рдиреЛрдбреНрд╕ рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ рд╣реИред рдЙрд╕реА рд╕рдордп, рдиреЛрдбреНрд╕ рдХреЛ рдЕрджреНрдпрддрди рдХрд░рдирд╛ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдЬреЛ рдиреЛрдЯ рдХрд░рдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдореБрдлреНрдд рдореЗрдВ рдкреЗрдбрд╝ рдЕрджреНрдпрддрди рдХрд░рддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рдкрддреНрддреА рдиреЛрдб рдореЗрдВ рдХреЛрдИ рдорд╛рди рди рд╣реЛ (рдпрд╛рдиреА, рдпрджрд┐ рдореБрдлреНрдд рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмреБрд▓рд╛рдпрд╛ рдЧрдпрд╛ рд╣реЛ)ред рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдкрд┐рдЫрд▓реЗ рдореБрдХреНрдд рдХреЛ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд╢реАрдЯ рдХреЛ рдореБрдХреНрдд рдХрд░рдирд╛, рд▓реЗрдХрд┐рди рдореВрд▓ рдиреЛрдбреНрд╕ рдХреЛ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рдХрд░рдирд╛ред рджрд░рдЕрд╕рд▓, рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдПрдкреАрдЖрдИ рдореЗрдВ рдПрдХ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬрд┐рд╕реЗ рдореБрдлреНрдд рдореЗрдВ рдХрдИ рдмрд╛рд░ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдлрд┐рд░ рд╕реЗ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрджрд┐ рдХреЛрдИ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдЖрдЦрд┐рд░реА рдмрд╛рд░ рдЗрд╕рдХреА рдХреЙрд▓ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреВрд░реА рд╣реЛ рдЧрдИ рд╣реИред
рдХрд╛рд░реНрдп рдХрд░рдирд╛
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ () рдлрд╝рдВрдХреНрд╢рдиред рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдмрд╛рдПрдВ (), рджрд╛рдПрдВ () рдФрд░ рдКрдкрд░ () рдХреА рд╡рд░реНрддрдиреА рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ рдпрджрд┐ рд╣рдо рд╕рд╣рдордд рд╣реИрдВ рдХрд┐ рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп рдЕрдВрддрд░рд╛рд▓ рдХреА рд▓рдВрдмрд╛рдИ 2 ^ n рд╣реИред рдлрд┐рд░ рдкреЗрдбрд╝ рдореЗрдВ рдХрд┐рд╕реА рдЕрдиреНрдп рдЕрдВрддрд░рд╛рд▓ рдХреА рд▓рдВрдмрд╛рдИ 2 ^ n рд╣реЛрдЧреА, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреЗрдбрд╝ рдХреЗ рд╕рдорд╛рди "рд╕реНрддрд░" рдкрд░ рдЕрдВрддрд░рд╛рд▓ рдХреА рд▓рдВрдмрд╛рдИ рд╕рдорд╛рди рд╣реЛрдЧреАред рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛, рд╕рднреА рддреАрди sabj рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдПрдХ рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп рдЕрдВрддрд░рд╛рд▓ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рд▓реЗрдХрд┐рди рдлрд┐рд░, "рд╡рд░реНрддрдорд╛рди" рдЕрдВрддрд░рд╛рд▓ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдкрдХреЛ рд╣рдореЗрд╢рд╛ рдКрдкрд░реА-рд╕реНрддрд░реАрдп рдЕрдВрддрд░рд╛рд▓ рдЬрд╛рдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА)ред рд▓реЗрдХрд┐рди рдпрд╣ рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рдФрд░ 2 ^ n рддрдХ рд╕рд╛рдорд╛рдиреНрдпреАрдХрд░рдг рдХреБрдЫ рднреА рдиреБрдХрд╕рд╛рди рдирд╣реАрдВ рдкрд╣реБрдВрдЪрд╛рддрд╛ рд╣реИред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЕрдВрддрд░рд╛рд▓ рдХреА рд▓рдВрдмрд╛рдИ рдХреЗ рд╕рд╛рде 2 ^ n, рдмрд╛рдПрдВ () рдФрд░ рджрд╛рдПрдВ () рддреБрдЪреНрдЫ рд░реВрдк рд╕реЗ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВ, рдФрд░ рдКрдкрд░ () рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдЕрдВрддрд░рд╛рд▓ рдЕрдкрдиреЗ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЗ рдЕрдВрддрд░рд╛рд▓ рдХреЗ рд▓рд┐рдП "рд╕рд╣реА" рдпрд╛ "рдмрд╛рдПрдВ" рд╣реИ рдпрд╛ рдирд╣реАрдВред рдпрд╣ рдПрдХ рд╕рд░рд▓ рдирд┐рдпрдо рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - "рдмрд╛рдПрдВ" рдЕрдВрддрд░рд╛рд▓ рдкрд░, рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдореВрд▓реНрдп рдХреЛ рдЕрдВрддрд░рд╛рд▓ рдХреЗ рдмрд┐рдирд╛ рджреЛ рдмрд╛рд░ рдХреА рд▓рдВрдмрд╛рдИ рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рддрджрдиреБрд╕рд╛рд░, рдЕрдВрддрд░рд╛рд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдирд╛, рдЪрд╛рд╣реЗ рд╡рд╣ рдмрд╛рдПрдВ () рдпрд╛ рджрд╛рдПрдВ () рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд╡рд┐рдкрд░реАрдд рдХреНрд░рд┐рдпрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдФрд░ рдКрдкрд░реА рд╕реНрддрд░ рдХрд╛ рдЕрдВрддрд░рд╛рд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред