рд╢рддрд░рдВрдЬ рдХреЗ рд▓рд┐рдП рдХреГрддреНрд░рд┐рдо рдмреБрджреНрдзрд┐ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╡рд┐рдЪрд╛рд░

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЗрддрдиреЗ рд╕рд╛рд░реЗ рдкрджреЛрдВ рдХреА рдЧрдгрдирд╛ рд╕реЗ рд╢рддрд░рдВрдЬ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдмреЗрд╣рддрд░ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдирд╣реАрдВ рд╣реИрдВред рд╕рдЪ рд╣реИ, рдХреНрд░рдо рдореЗрдВ рдЦреЛрдЬ (рдФрд░ рдПрдХ рдирд╣реАрдВ) рдЕрдиреБрдХреВрд▓рд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдпрд╣ рдПрдХ рдмрдбрд╝реА рдЦреЛрдЬ рд╣реИред рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЪрд╛рд▓ рдХреЗ рд▓рд┐рдП рдЦреЛрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЬрдбрд╝ рдореЗрдВ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЪрд╛рд▓ рдХреЗ рд╕рд╛рде рдПрдХ рдкреЗрдбрд╝ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХрд┐рдирд╛рд░реЛрдВ - рдЙрддреНрддрд░ рдЪрд╛рд▓ рдФрд░ рдиреЛрдбреНрд╕ - рдирдП рд╕реНрдерд╛рдиред



рдЫрд╡рд┐



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

рдЙрдирдХрд╛ рдЕрдЧрд▓рд╛ рд╕реБрдзрд╛рд░ рдЕрд▓реНрдлрд╛ рдмреАрдЯрд╛ рдХреНрд▓рд┐рдкрд┐рдВрдЧ (рд╢рд╛рдЦрд╛ рдФрд░ рдмрд╛рдзреНрдп рд╡рд┐рдзрд┐) рд╣реИред



рдирд╛рдо рд╕реЗ рдпрд╣ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИ рдХрд┐ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреБрдЫ рджреЛ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрдЯрд┐рдВрдЧ рдХрд░рддрд╛ рд╣реИ - рдЕрд▓реНрдлрд╛ рдФрд░ рдмреАрдЯрд╛ред рдХрддрд░рди рдХрд╛ рдореБрдЦреНрдп рд╡рд┐рдЪрд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рдЕрдм рд╣рдо рдХрддрд░рди рдЕрдВрддрд░рд╛рд▓ (рдирд┐рдЪрд▓реА рдФрд░ рдКрдкрд░реА рд╕реАрдорд╛рдПрдБ - рдЕрд▓реНрдлрд╛ рдФрд░ рдмреАрдЯрд╛, рдХреНрд░рдорд╢рдГ - рдЖрдкрдХрд╛ рдХреЗред рдУред) рд░рдЦреЗрдВрдЧреЗ рдФрд░ рд╕рднреА рдиреЛрдбреНрд╕ рдХреЗ рдЕрдиреБрдорд╛рди рдЬреЛ рдиреАрдЪреЗ рдХреЗ рдЕрдВрддрд░рд╛рд▓ рдореЗрдВ рдирд╣реАрдВ рдЖрддреЗ рд╣реИрдВ, рд╣рдо рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ (рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ) рдкрд░рд┐рдгрд╛рдо рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░реЗрдВ - рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрд╛рдпрд╛ рдЧрдпрд╛ рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рдЪрд╛рд▓ рд╣реИ), рдФрд░ рд╣рдо рдЕрдВрддрд░рд╛рд▓ рдХреЛ рд╕рдВрдХреАрд░реНрдг рдХрд░ рджреЗрдВрдЧреЗ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рдЪрд╛рд▓ рдкрд╛рддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЕрд▓реНрдлрд╛-рдмреАрдЯрд╛ рдХреНрд▓рд┐рдкрд┐рдВрдЧ рдорд┐рдирд┐рдорд┐рдХреНрд╕ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрд╛рдлреА рдмреЗрд╣рддрд░ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рд░рдирдЯрд╛рдЗрдо рднреА рдмрд╣реБрдд рд▓рдВрдмрд╛ рд╣реИред рдпрджрд┐ рд╣рдо рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЦреЗрд▓ рдХреЗ рдмреАрдЪ рдореЗрдВ рдПрдХ рддрд░рдл рд▓рдЧрднрдЧ 40 рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЪрд╛рд▓реЗрдВ рд╣реИрдВ, рддреЛ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рд╕рдордп рдХрд╛ рдЕрдиреБрдорд╛рди рдУ (40 ^ рдкреА) рдХреЗ рд░реВрдк рдореЗрдВ рд▓рдЧрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдкреА рдЪрд╛рд▓ рдкреЗрдбрд╝ рдХреА рдЧрд╣рд░рд╛рдИ рд╣реИред рдмреЗрд╢рдХ, рдорд┐рдирд┐рдореИрдХреНрд╕ рдХреЗ рд╕рд╛рде рдЪрд╛рд▓ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХрд╛ рдРрд╕рд╛ рдХреНрд░рдо рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬрдм рд╣рдо рдХреЛрдИ рдХрдЯреМрддреА рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ, рддреЛ рдЕрд▓реНрдлрд╛-рдмреАрдЯрд╛ рдХрдЯрдСрдл рдмрд╕ рдорд┐рдирд┐рдореИрдХреНрд╕ рдореЗрдВ рдмрджрд▓ рдЬрд╛рдПрдЧреАред рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЕрд▓реНрдлрд╛-рдмреАрдЯрд╛ рдХреНрд▓рд┐рдкрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рдорд┐рдирд┐рдореИрдХреНрд╕ рдореЗрдВ рд╕рднреА рдЪрд╛рд▓реЛрдВ рдХреА рдЬрдбрд╝ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рд╕реЗ рдмрдЪ рд╕рдХрддреЗ рд╣реИрдВред рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдХрд╛рдо рдХрд░рдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП (рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рдЗрд╕ рддрд░рд╣ рдХреЗ рдУ-рдорд╣рд╛рди рдЬрдЯрд┐рд▓рддрд╛ рдХреЗ рд╕рд╛рде), рдкреЗрдбрд╝ рдореЗрдВ рдЦреЛрдЬ рдХреБрдЫ рдирд┐рд╢реНрдЪрд┐рдд рдореВрд▓реНрдп рдХреЗ рд▓рд┐рдП рдХреА рдЬрд╛рддреА рд╣реИ рдФрд░ рд╡рд╣рд╛рдВ рдиреЛрдб рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдЖрдХрд▓рди рдиреЛрдб рдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдореВрд▓реНрдпрд╛рдВрдХрди рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╣реБрдд рдмрдбрд╝рд╛ рдЕрдиреБрдорд╛рди рд╣реИ (рдпрд╛рдиреА, рдкреЗрдбрд╝ рдХреЗ рдЕрдВрдд рддрдХ рдЪрд▓рдиреЗ рд╡рд╛рд▓рд╛, рдФрд░ рд╡рд╣рд╛рдБ рдкрд░рд┐рдгрд╛рдо "рдЬреАрдд, рд╣рд╛рд░, рдбреНрд░рд╛" рд╣реИ)ред рдиреЛрдб рдореВрд▓реНрдпрд╛рдВрдХрди рдХреЗ рд▓рд┐рдП, рдмрд╕ рд╡рд┐рднрд┐рдиреНрди рддрдХрдиреАрдХреЛрдВ рдХрд╛ рдвреЗрд░ рд╣реИ (рдЖрдк рд▓реЗрдЦ рдХреЗ рдЕрдВрдд рдореЗрдВ рд▓рд┐рдВрдХ рдореЗрдВ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ)ред рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ - рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рдореИрдВ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреА рд╕рд╛рдордЧреНрд░реА рдХреА рдЧрд┐рдирддреА рдХрд░ рд░рд╣рд╛ рд╣реВрдВ (рдПрдХ рдкреНрд░рдгрд╛рд▓реА рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдкреВрд░реНрдгрд╛рдВрдХ рдкреНрдпрд╛рджрд╛ - 100, рдирд╛рдЗрдЯ рдФрд░ рдмрд┐рд╢рдк - 300, рд░реВрдХ - 500, рд░рд╛рдиреА - 900; рдЕрдиреНрдп рдкреНрд░рдгрд╛рд▓реА рдХреЗ рдЕрдиреБрд╕рд╛рд░ - рдЗрд╕ рдХреЗ рдмреЛрд░реНрдб рдореЗрдВ рдПрдХ + рд╕реНрдерд┐рддрд┐ рдХреЗ рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЛрдВ рдореЗрдВ рдорд╛рдиреНрдп) рдкреНрд▓реЗрдпрд░ред рд╕реНрдерд┐рддрд┐ рдХреЗ рдЕрдиреБрд╕рд╛рд░ - рдпрд╣рд╛рдБ рд▓реЗрдЦрди рд╢рддрд░рдВрдЬ рдХреА рдПрдХ рдмреБрд░реЗ рд╕рдкрдиреЗ рдХреА рд╢реБрд░реБрдЖрдд рд╣реЛрддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреА рдЧрддрд┐ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд╛рд░реНрдп рдкрд░ рдФрд░, рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ, рд╕реНрдерд┐рддрд┐ рдХреЗ рдореВрд▓реНрдпрд╛рдВрдХрди рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░реЗрдЧреАред рдпрд╣рд╛рдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреЛрдИ рд╣реИ рдЬреЛ рдЗрддрдирд╛ рд╣реИред рдЦрд┐рд▓рд╛рдбрд╝реА + рдХреЗ рд▓рд┐рдП рдПрдХ рдпреБрдЧреНрдорд┐рдд рджреМрд░ рдХреЗ рд▓рд┐рдП, рдЕрдкрдиреЗ рдкрдВрдЬреЗ рдХреЗ рд╕рд╛рде рд░рд╛рдЬрд╛ рдХреЗ рдХрд╡рд░ рдХреЗ рд▓рд┐рдП +, рдмреЛрд░реНрдб рдХреЗ рджреВрд╕рд░реЗ рдЫреЛрд░ рдХреЗ рдкрд╛рд╕ рдПрдХ рдкреНрдпрд╛рджрд╛ рдХреЗ рд▓рд┐рдП, рдЖрджрд┐, рдФрд░ рдЯреБрдХрдбрд╝реЛрдВ рдХреЛ рд▓рдЯрдХрд╛рддреЗ рд╣реБрдП, рдПрдХ рдЦреБрд▓рд╛ рд░рд╛рдЬрд╛, рдЖрджрд┐, рд╕реНрдерд┐рддрд┐ рдХреЛ рдШрдЯрд╛рддрд╛ рд╣реИред рдЖрджрд┐ - рдЖрдк рдХрд╛рд░рдХреЛрдВ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рд▓рд┐рдЦ тАЛтАЛрд╕рдХрддреЗ рд╣реИрдВред рдпрд╣рд╛рдВ, рдЦреЗрд▓ рдореЗрдВ рд╕реНрдерд┐рддрд┐ рдХрд╛ рдЖрдХрд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЦрд┐рд▓рд╛рдбрд╝реА рдХреА рд╕реНрдерд┐рддрд┐ рдХрд╛ рдПрдХ рдЖрдХрд▓рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдПрдХ рдЪрд╛рд▓ рдмрдирд╛рддрд╛ рд╣реИ, рдФрд░ рдкреНрд░рддрд┐рджреНрд╡рдВрджреНрд╡реА рдХреА рд╕рдВрдмрдВрдзрд┐рдд рд╕реНрдерд┐рддрд┐ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдЗрд╕рд╕реЗ рджреВрд░ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рд╡реЗ рдХрд╣рддреЗ рд╣реИрдВ, рдПрдХ рддрд╕реНрд╡реАрд░ рдХрднреА-рдХрднреА рдПрдХ рд╣рдЬрд╛рд░ рд╢рдмреНрджреЛрдВ рд╕реЗ рдмреЗрд╣рддрд░ рд╣реЛрддреА рд╣реИ, рдФрд░ рд╢рд╛рдпрдж рдЫрджреНрдо рд╕реА # рдореЗрдВ рдХреЛрдб рдХрд╛ рдПрдХ рдЯреБрдХрдбрд╝рд╛ рднреА рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛:



enum CurentPlayer {Me, Opponent}; public int AlphaBetaPruning (int alpha, int beta, int depth, CurrentPlayer currentPlayer) { // value of current node int value; // count current node ++nodesSearched; // get opposite to currentPlayer CurrentPlayer opponentPlayer = GetOppositePlayerTo(currentPlayer); // generates all moves for player, which turn is to make move / /moves, generated by this method, are free of moves // after making which current player would be in check List<Move> moves = GenerateAllMovesForPlayer(currentPlayer); // loop through the moves foreach move in moves { MakeMove(move); ++ply; // If depth is still, continue to search deeper if (depth > 1) value = -AlphaBetaPruning (-beta, -alpha, depth - 1, opponentPlayer); else // If no depth left (leaf node), evalute that position value = EvaluatePlayerPosition(currentPlayer) - EvaluatePlayerPosition(opponentPlayer); RollBackLastMove(); --ply; if (value > alpha) { // This move is so good that caused a cutoff of rest tree if (value >= beta) return beta; alpha = value; } } if (moves.Count == 0) { // if no moves, than position is checkmate or if (IsInCheck(currentPlayer)) return (-MateValue + ply); else return 0; } return alpha; }
      
      







рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреЛрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдмреЗрдорд╛рдиреА рдирд╣реАрдВ рд╣реЛрдВрдЧреЗ:



рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг:



 { ply = 0; nodesSearched = 0; int score = AlphaBetaPruning (-MateValue, MateValue, max_depth, CurrentPlayer.Me); }
      
      





рдЬрд╣рд╛рдВ MateValue рдХрд╛рдлреА рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рд╣реИред

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



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



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



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



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

рдпрд╣ рдЬреНрдЮрд╛рдд рд╣реИ рдХрд┐ рдЪрд╛рд▓реЛрдВ рдХреЗ рдЗрд╕ рддрд░рд╣ рдХреЗ рдЕрдЬреАрдм рдХреИрд╢рд┐рдВрдЧ рдиреЗ рд╕реЛрд╡рд┐рдпрдд рдХреИрд╕ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреА рдЙрддреНрдкрд╛рджрдХрддрд╛ рдореЗрдВ 10 рдЧреБрдирд╛ рд╕реБрдзрд╛рд░ рдХрд┐рдпрд╛ред



рдЪрд╛рд▓ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╡рд┐рдЪрд╛рд░ рднреА рд╣реИрдВред рдкрд╣рд▓реЗ, рдЬреАрддрдиреЗ рд╡рд╛рд▓реЗ рдХреИрдкреНрдЪрд░ рдХреЛ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддреН, рдРрд╕реЗ рдХреИрдкреНрдЪрд░ рдЬрдм рдПрдХ рдХрдо рд╕реНрдХреЛрд░ рд╡рд╛рд▓рд╛ рдПрдХ рдЯреБрдХрдбрд╝рд╛ рдПрдХ рдЙрдЪреНрдЪ рд╕реНрдХреЛрд░ рдХреЗ рд╕рд╛рде рдПрдХ рдЯреБрдХрдбрд╝рд╛ рд╣рд┐рдЯ рдХрд░рддрд╛ рд╣реИред рддрдм рд╡реЗ рдкрджреЛрдиреНрдирддрд┐ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ (рдЬрдм рдмреЛрд░реНрдб рдХреЗ рджреВрд╕рд░реЗ рдЫреЛрд░ рдкрд░ рдПрдХ рдореЛрд╣рд░реЗ рдХреЛ рдПрдХ рдордЬрдмреВрдд рдЯреБрдХрдбрд╝реЗ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ), рддреЛ рдмрд░рд╛рдмрд░ рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдЗрддрд┐рд╣рд╛рд╕ рдХреЗ рдХреИрд╢ рд╕реЗ рдЪрд▓рддрд╛ рд╣реИред рдмрд╛рдХреА рдЪрд╛рд▓реЛрдВ рдХреЛ рдмреЛрд░реНрдб рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдХрд╕реМрдЯреА рдкрд░ рдирд┐рдпрдВрддреНрд░рдг рдХрд░рдХреЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред



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



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

рдпрд╣рд╛рдБ рдХреБрдЫ рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдЪрд╛рд░ рднреА рд╣реИрдВ:





рд▓реЗрдЦ рдореЗрдВ рдХреБрдЫ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:





PS рд╕рдВрдкреВрд░реНрдг рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП PHP рдореЗрдВ рдПрдХ рд╕рд░рд▓ рд░реЗрд╕реНрдЯ-рд╡реЗрдм рд╕реЗрд╡рд╛ рдереА рд╢рддрд░рдВрдЬ рдХреЗ рд▓рд┐рдП + C # рдореЗрдВ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо (.NET рд░рд┐рдореЛрдЯрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдиреЗрдЯрд╡рд░реНрдХ рдЧреЗрдо рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛), рд▓реЗрдХрд┐рди рдЕрдм рд╕рд╛рдЗрдЯ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣реА рд╣реИ рдФрд░ рдЬрдм рд╕рдордп рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдореИрдВ рдЗрд╕реЗ RubyOnRails рдкрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред



рдкреАрдкреАрдПрд╕ рдХреМрди рдкрд░рд╡рд╛рд╣ рдХрд░рддрд╛ рд╣реИ - рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЕрдм Googlecode рдкрд░ рд░рд╣рддрд╛ рд╣реИ рдФрд░ рдореЗрд░реЗ рдкрд╛рд╕ рд╕рдордп рд╣реЛрдиреЗ рдкрд░ рдЕрдкрдЧреНрд░реЗрдб рд╣реЛрдЧрд╛ред рдХреМрди рдкрд┐рдЫрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдХреЛрдб рдЪрд╛рд╣рддрд╛ рд╣реИ - рдореИрдВ рднреЗрдЬ рд╕рдХрддрд╛ рд╣реВрдВред



All Articles