рд╕рдордп рдХреЗ рдкреЗрдбрд╝ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ



рдкрд░рд┐рдЪрдп


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

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

рд╕рд╛рдордЧреНрд░реА


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

рд╢рдмреНрджрд╛рд╡рд▓реА - рд╕рдордп рдХрд╛ рд╡реГрдХреНрд╖


рдЧреЛрд▓реЛрд╡рдЪреЗрд╡ рд╡рд┐рд╢реНрд╡ рдЗрддрд┐рд╣рд╛рд╕ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдРрд╕реЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЛ рдХрд╣рддреЗ рд╣реИрдВ - рдЯреНрд░реА рдСрдл рдЯрд╛рдЗрдореНрд╕ рдпрд╛ рдПрдХ рднрдЧреНрди [3]ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд░рд┐рдгрд╛рдо рдЦреЛрдЬ рд╡рд┐рдзрд┐ рдХреЛ "рдЯреНрд░реА рдСрдлрд╝ рдЯрд╛рдЗрдореНрд╕ рд╡рд┐рдзрд┐" рдХрд╣реВрдВрдЧрд╛ред

рджреБрдирд┐рдпрд╛ рджреБрдирд┐рдпрд╛ рдХреЗ рдЧреБрдгреЛрдВ рдФрд░ рдЙрдирдХреЗ рдЕрд░реНрдереЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд╣реИ рдЬреЛ рдЗрд╕рдХреЗ рд░рд╛рдЬреНрдп рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░рддреА рд╣реИред

рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдирд╛ - рдЯреНрд░реА рдСрдл рдЯрд╛рдЗрдореНрд╕ рд╡рд┐рдзрд┐ рджреНрд╡рд╛рд░рд╛ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдирд╛, рд╣рдо рдкрд░рд┐рдгрд╛рдо рдХреЛ рдЕрдЧреНрд░рд┐рдо рд░реВрдк рд╕реЗ рдЬрд╛рдирддреЗ рд╣реИрдВ, рдпрд╛ рджреБрдирд┐рдпрд╛ рдХреЗ рдХреБрдЫ рдЧреБрдгреЛрдВ рдХреЗ рдореВрд▓реНрдп рдЬреЛ рд╣рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдпрд╣реА рд╣реИ, рд╣рдо рдкрд░рд┐рдгрд╛рдо рдЬрд╛рдирддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдЕрдЬреНрдЮрд╛рдд рд╣реИред рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рд░рд╛рд╕реНрддрд╛ рдвреВрдВрдв рд░рд╣рд╛ рд╣реИред

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

рд▓рдХреНрд╖реНрдп рджреБрдирд┐рдпрд╛ рд╡рд╣ рджреБрдирд┐рдпрд╛ (рдпрд╛ рдмрд▓реНрдХрд┐, рдЙрд╕рдХреА рдЕрд╡рд╕реНрдерд╛) рд╣реИ рдЬрд┐рд╕рд╕реЗ рд╣рдо рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред

рджреБрдирд┐рдпрд╛ рдХрд╛ рд╡рд┐рдХрд╛рд╕ - рдкреНрд░рд╛рд░рдВрднрд┐рдХ рджреБрдирд┐рдпрд╛ рдХрд╛ рд╡рд┐рдХрд╛рд╕, рд╣рдо рд▓рдХреНрд╖реНрдп рджреБрдирд┐рдпрд╛ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред

рдПрдХ рдореГрдд рдЕрдВрдд рджреБрдирд┐рдпрд╛ рдПрдХ рдореГрдд рдЕрдВрдд рд╢рд╛рдЦрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдореГрдд рдЕрдВрдд рджреБрдирд┐рдпрд╛ рд╣реИред рдпрд╣ рдПрдХ рдРрд╕реА рджреБрдирд┐рдпрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рдЖрдЧреЗ рд╡рд┐рдХрд╛рд╕ рд╕реЗ рд▓рдХреНрд╖реНрдп рджреБрдирд┐рдпрд╛ рдирд╣реАрдВ рдмрдиреЗрдЧреАред

рдкрд╣рд▓реА рд╕рдорд╕реНрдпрд╛рдПрдВ


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

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

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЯреНрд░реА рдСрдл рдЯрд╛рдЗрдореНрд╕ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЧрдгрдирд╛ рдореЗрдВ, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:



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

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

рд▓реЗрдХрд┐рди рджреБрдирд┐рдпрд╛ рдХреЗ рдХреНрд▓реЛрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛? рдореГрдд рдХреЗрдВрджреНрд░ рд╕реЗ рдорд╛рдорд▓рд╛ рдЯрд╛рдЗрдордХреЛрдб рд▓реЗрдЦ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ред рдПрдХ рдХреЛ рди рдХреЗрд╡рд▓ рджреБрдирд┐рдпрд╛ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреА рд╢рд╛рдЦрд╛рдУрдВ рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдмрд▓реНрдХрд┐ рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╕рд╛рде рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред

рдирдП рдирдП рд╡рд┐рдЪрд╛рд░реЛрдВ рдФрд░ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рд╕рд╢рд╕реНрддреНрд░, рдореИрдВрдиреЗ рдЯрд╛рдЗрдо рдСрдлрд╝ рдЯреНрд░реАрдЬрд╝ рдХреА рдЦреЛрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓реМрдЯрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред

рдЬреЛ рдкрд╣рд▓реЗ рд╣реЛ рдЪреБрдХрд╛ рд╣реИ, рдЙрд╕реЗ рдпрд╛рдж рдХрд░реЗрдВ


рдЪреБрдиреМрддреА рднрд╛рдЧреНрдпрд╢рд╛рд▓реА рдЯрд┐рдХрдЯ рд╣реИред рдПрдХ рдЯрд┐рдХрдЯ рдХреЛ рднрд╛рдЧреНрдпрд╢рд╛рд▓реА рдорд╛рдирд╛ рдЬрд╛рдПрдЧрд╛ рдпрджрд┐ рдЗрд╕рдореЗрдВ рдкрд╣рд▓реЗ рддреАрди рдЕрдВрдХреЛрдВ рдХрд╛ рдпреЛрдЧ рдмрд╛рдХреА рдХреЗ рдпреЛрдЧ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛред
рд╕реА рдХреНрдпреВрдЯреА [рек]:
void bilet(int x1, int x2, int x3, int x4, int x5, int x6) { //   if ((x1+x2+x3)==(x4+x5+x6)) { qDebug() << x1<< x2<< x3<< x4<< x5<< x6; } //  if((x1+1)<3) bilet(x1 + 1, x2, x3, x4, x5, x6); if((x2+1)<10) bilet(x1, x2 + 1, x3, x4, x5, x6); if((x3+1)<10) bilet(x1, x2, x3 + 1, x4, x5, x6); if((x4+1)<10) bilet(x1, x2, x3, x4 + 1, x5, x6); if((x5+1)<10) bilet(x1, x2, x3, x4, x5 + 1, x6); if((x6+1)<3) bilet(x1, x2, x3, x4, x5, x6 + 1); } // bilet(0, 0, 0, 0, 0, 0); 

рдореИрдВрдиреЗ рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ред рдПрдХ рд▓рдВрдмрд╛ рд╕рдордпред рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рдХреЛрдб рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣рдЯрд╛ рджрд┐рдпрд╛:
 void bilet(int x1, int x2, int x3, int x4, int x5, int x6) { //   if ((x1+x2+x3)==(x4+x5+x6)) { qDebug() << x1<< x2<< x3<< x4<< x5<< x6; } //  if((x1+1)<3) bilet(x1 + 1, x2, x3, x4, x5, x6); if((x6+1)<3) bilet(x1, x2, x3, x4, x5, x6 + 1); } 

рдкрд░рд┐рдгрд╛рдо рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдерд╛:
 000000 200002 100001 200002 200002 100001 200002 200002 200002 

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

рдХрд╛рд░реНрдп рдкреИрд╕реЗ рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рд╣реИред 1000, 500, 100, 50, 10 рд░реВрдмрд▓ рдХреЗ рдмрд┐рд▓ рд╣реЛрдиреЗ рджреЗрдВред рдЬрд╛рд░реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рдЧрдгрдирд╛ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред
рдПрд░рд▓рдВрдЧ рд╕рдорд╛рдзрд╛рди [5,6]: рдлрд╝рд╛рдЗрд▓ <i> we01.erl </ i>:
 -module(we01). -export([sum_money/6, sum_money/1]). sum_money(Itog) -> sum_money(Itog, 0, 0, 0, 0, 0). sum_money(Itog, X1000, X500, X100, X50, X10) -> if ((X1000 + X500 + X100 + X50 + X10) > 100) -> ok; (Itog == ((1000*X1000)+(500*X500)+(100*X100)+(50*X50)+(10*X10))) -> io:format("Itog(~w)(~w) = 1000*~w + 500*~w + 100*~w + 50*~w + 10*~w ~n", [Itog,(X1000 + X500 + X100 + X50 + X10), X1000, X500, X100, X50, X10]); (Itog > ((1000*X1000)+(500*X500)+(100*X100)+(50*X50)+(10*X10))) -> sum_money(Itog, 1+X1000, X500, X100, X50, X10), sum_money(Itog, X1000, 1+X500, X100, X50, X10), sum_money(Itog, X1000, X500, 1+X100, X50, X10), sum_money(Itog, X1000, X500, X100, 1+X50, X10), sum_money(Itog, X1000, X500, X100, X50, 1+X10); (true) -> ok end. 

рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЛ Erlang рдкрд░ рдХреИрд╕реЗ рдЪрд▓рд╛рдПрдВ?
  1. Erlang рд▓реЙрдиреНрдЪ рдХрд░реЗрдВ:
     erl 

  2. рд╣рдо рдореЙрдбреНрдпреВрд▓ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВ:
     c(we01). 

  3. рд╣рдо 120 рд░реВрдмрд▓ рдХреЗ рдЬрд╛рд░реА рд╣реЛрдиреЗ рдХреА рдЧрдгрдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ:
     we01:sum_money(120). 

  4. рдкрд░рд┐рдгрд╛рдо:
     Itog(120)(3) = 1000*0 + 500*0 + 100*1 + 50*0 + 10*2 Itog(120)(4) = 1000*0 + 500*0 + 100*0 + 50*2 + 10*2 Itog(120)(4) = 1000*0 + 500*0 + 100*0 + 50*2 + 10*2 Itog(120)(4) = 1000*0 + 500*0 + 100*0 + 50*2 + 10*2 Itog(120)(8) = 1000*0 + 500*0 + 100*0 + 50*1 + 10*7 Itog(120)(3) = 1000*0 + 500*0 + 100*1 + 50*0 + 10*2 Itog(120)(4) = 1000*0 + 500*0 + 100*0 + 50*2 + 10*2 Itog(120)(4) = 1000*0 + 500*0 + 100*0 + 50*2 + 10*2 Itog(120)(8) = 1000*0 + 500*0 + 100*0 + 50*1 + 10*7 Itog(120)(3) = 1000*0 + 500*0 + 100*1 + 50*0 + 10*2 Itog(120)(4) = 1000*0 + 500*0 + 100*0 + 50*2 + 10*2 Itog(120)(8) = 1000*0 + 500*0 + 100*0 + 50*1 + 10*7 Itog(120)(8) = 1000*0 + 500*0 + 100*0 + 50*1 + 10*7 Itog(120)(8) = 1000*0 + 500*0 + 100*0 + 50*1 + 10*7 Itog(120)(8) = 1000*0 + 500*0 + 100*0 + 50*1 + 10*7 Itog(120)(8) = 1000*0 + 500*0 + 100*0 + 50*1 + 10*7 Itog(120)(8) = 1000*0 + 500*0 + 100*0 + 50*1 + 10*7 Itog(120)(12) = 1000*0 + 500*0 + 100*0 + 50*0 + 10*12 ok ^ | +----   


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

рд╡рд┐рд╢реНрд╡ рдЕрднрд┐рд╕рд░рдг


рдЖрдЗрдП рдпрд╣ рдЬрд╛рдБрдЪрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ рдХрд┐ рдХреНрдпрд╛ рдРрд╕рд╛ рд╣реИред рдпрджрд┐ рд╣реИ, рддреЛ рдФрд░ рдХреБрдЫ рдирд╣реАрдВ (рдмрдЪреНрдЪреЗ рдХреА рджреБрдирд┐рдпрд╛ рдирд╣реАрдВ рдмрдирд╛рддреЗ рд╣реИрдВ)ред
рддреЛ, рдХреНрдпреВрдЯреА, рдХрд╛рд░реНрдп рдлрд┐рд░ рд╕реЗ рд╡рд╣реА рд╣реИ - рдЯрд┐рдХрдЯ:
 QHash hash; //    void bilet(int x1, int x2, int x3, int x4, int x5, int x6) { int result = x1*100000+x2*10000+x3*1000+x4*100+x5*10+x6; if(hash.contains(result)) { //  .    //qDebug() << x1<< x2<< x3<< x4<< x5<< x6 << "skip"; return; } else { //.    hash.insert(result, ((x1+x2+x3)==(x4+x5+x6))); } //   if ((x1+x2+x3)==(x4+x5+x6)) { //,   //qDebug() << x1<< x2<< x3<< x4<< x5<< x6 << "*"; } else { //,    //qDebug() << x1<< x2<< x3<< x4<< x5<< x6; } //  if((x1+1)<10) bilet(x1 + 1, x2, x3, x4, x5, x6); if((x2+1)<10) bilet(x1, x2 + 1, x3, x4, x5, x6); if((x3+1)<10) bilet(x1, x2, x3 + 1, x4, x5, x6); if((x4+1)<10) bilet(x1, x2, x3, x4 + 1, x5, x6); if((x5+1)<10) bilet(x1, x2, x3, x4, x5 + 1, x6); if((x6+1)<10) bilet(x1, x2, x3, x4, x5, x6 + 1); } 

рд╣рдо рдХрд┐рд╕ рджреБрдирд┐рдпрд╛ рдореЗрдВ рд╣реИрдВ, рдЗрд╕рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдирд┐рд╖реНрдХрд░реНрд╖ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдХреНрдпрд╛ рд╣рдордиреЗ рдкрд╛рдпрд╛ рд╣реИ рдФрд░ рдЕрдЧрд░ рдирд╣реАрдВред рд╕рднреА рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ, рдЧрдгрдирд╛ рдХреА рдорд╛рддреНрд░рд╛ рдХреЛ рд╕реАрдорд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП <10 рдХреЛ <2 рдХреЗ рд╕рд╛рде рдмрджрд▓реЗрдВред рдЪрд▓рд╛рдПрдБред рдкрд░рд┐рдгрд╛рдо:
рдкрд░рд┐рдгрд╛рдо
 start "00:19:04.394" 0 0 0 0 0 0 * 1 0 0 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 1 1 1 1 0 0 1 1 1 1 1 0 1 1 1 1 1 1 * 1 1 1 1 0 1 1 1 1 0 1 0 1 1 1 0 1 1 1 1 1 0 0 1 1 1 0 1 0 0 1 1 0 1 1 0 * 1 1 0 1 1 1 1 1 0 1 0 1 * 1 1 0 0 1 0 1 1 0 0 1 1 * 1 1 0 0 0 1 1 0 1 0 0 0 1 0 1 1 0 0 1 0 1 1 1 0 * 1 0 1 1 1 1 1 0 1 1 0 1 * 1 0 1 0 1 0 1 0 1 0 1 1 * 1 0 1 0 0 1 1 0 0 1 0 0 * 1 0 0 1 1 0 1 0 0 1 1 1 1 0 0 1 0 1 1 0 0 0 1 0 * 1 0 0 0 1 1 1 0 0 0 0 1 * 0 1 0 0 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 1 1 1 1 0 * 0 1 1 1 1 1 0 1 1 1 0 1 * 0 1 1 0 1 0 0 1 1 0 1 1 * 0 1 1 0 0 1 0 1 0 1 0 0 * 0 1 0 1 1 0 0 1 0 1 1 1 0 1 0 1 0 1 0 1 0 0 1 0 * 0 1 0 0 1 1 0 1 0 0 0 1 * 0 0 1 0 0 0 0 0 1 1 0 0 * 0 0 1 1 1 0 0 0 1 1 1 1 0 0 1 1 0 1 0 0 1 0 1 0 * 0 0 1 0 1 1 0 0 1 0 0 1 * 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 end "00:19:04.407" 

рдХреБрд▓ 64 рд▓рд╛рдЗрдиреЗрдВ рд╣реИрдВ, рдЕрд░реНрдерд╛рддреН 2 ^ 6, рдпрд╣ рд╕рдЪ рд╣реИред рдкреВрд░реНрдг рдореЗрдВ, рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рддреЗрдЬреА рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓рдЧрднрдЧ 155msред QtConcurect offhand рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рдерд╛ред

рд▓реЗрдХрд┐рди рдПрд░реНрд▓рд╛рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?

рдХрд╛рд░реНрдп рд╕рдорд╛рди рд╣реИ - рдЯрд┐рдХрдЯреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЫрдВрдЯрдиреАред рд▓реЗрдХрд┐рди рдПрд░реНрд▓рд╛рдВрдЧ рдореЗрдВ рдХреЛрдИ рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рдирд╣реАрдВ рд╣реИрдВред
рдПрдХ рднрдВрдбрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реЛрдЧреАред
 %    ( ,   ) world_server(World_list) -> receive finished -> io:format("World server is down~n", []); list -> io:format("World list ~w ~n", [World_list]), world_server(World_list); {new_world, PID, New_world, Par} -> %   case lists:keymember(New_world, 1, World_list) of true -> PID ! world_exist, world_server(World_list); %    false -> PID ! world_new, world_server([{New_world, Par}|World_list]) %   end end. world_server_start() -> register(ws, spawn(?MODULE, world_server, [[]])). world_server_stop() -> ws ! finished. 

рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
рд╕рд░реНрд╡рд░ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, world_server_start() рдлрд╝рдВрдХреНрд╢рди рдХреЛ world_server_start() ред рдпрд╣ world_server рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдПрдХ рдирдП рдереНрд░реЗрдб рдореЗрдВ рдЪрд▓рд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ ws рдирд╛рдо рд╕реЗ рд╕рдВрдмрджреНрдз рдХрд░рддрд╛ рд╣реИред рдлрд╝рдВрдХреНрд╢рди рдЦреБрдж рдХреЛ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдХрд╣рддрд╛ рд╣реИ, рдФрд░ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рджреБрдирд┐рдпрд╛ рдХреА рдПрдХ рд╕реВрдЪреА рд╕реЗ рдЧреБрдЬрд░рддрд╛ рд╣реИред рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, [] рдЗрд╕реЗ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рдПрдХ рдЦрд╛рд▓реА рд╕рд░рдгреА рд╣реИред рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп, рдлрд╝рдВрдХреНрд╢рди рд╣рдореЗрд╢рд╛ рдЕрдиреНрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд╕рдВрджреЗрд╢реЛрдВ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИ:
  • рдпрджрд┐ рдХреЛрдИ рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ - рдкрд░рдорд╛рдгреБ finished рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдлрд╝рдВрдХреНрд╢рди рдПрдХ рд░реЛрдХ рд╕рдВрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЦреБрдж рдХреЛ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдирд╣реАрдВ рдХрд╣рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рд╕рд░реНрд╡рд░ рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
  • рдпрджрд┐ рдХреЛрдИ рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ - рдкрд░рдорд╛рдгреБ list , рддреЛ рджреБрдирд┐рдпрд╛ рдХреА рдПрдХ рд╕реВрдЪреА рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддреА рд╣реИ рдФрд░ рдХрд╛рдо рдЬрд╛рд░реА рд░рд╣рддрд╛ рд╣реИ (рдбреАрдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)
  • рдпрджрд┐ рдЯрдкрд▓ {new_world, PID, New_world, Par} рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╕рд░реНрд╡рд░ рд╕реЗ рдкреВрдЫрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╕реВрдЪреА рдореЗрдВ рдРрд╕реА рдХреЛрдИ рджреБрдирд┐рдпрд╛ рд╣реИ? рдпрджрд┐ рдХреЛрдИ рджреБрдирд┐рдпрд╛ рд╣реИ, рддреЛ рд╕рдВрджреЗрд╢ world_exist рдпрд╛ world_new world_exist world_new рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддрд╛ world_exist , рдФрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╕реВрдЪреА рдореЗрдВ рдПрдХ рдирдИ рджреБрдирд┐рдпрд╛ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд╕рд╛рде рдЖрдЧреЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдпрджрд┐ рдкрд╣рд▓реЗ рд╕реЗ рдХреЛрдИ рдирд╣реАрдВ рд╣реИ)


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

 new_ww(X1, X2, X3, X4, X5, X6) -> ws ! {new_world, self(), X1*10+X2*100+X3*1000+X4*10000+X5*100000+X6*1000000, (X1+X2+X3 == X4+X5+X6) }, receive world_exist -> ok; world_new -> if (X1+X2+X3 == X4+X5+X6) -> io:format("~w ~w ~w ~w ~w ~w *~n", [X1, X2, X3, X4, X5, X6]); true-> io:format("~w ~w ~w ~w ~w ~w ~n", [X1, X2, X3, X4, X5, X6]) end, if ((X1+1) < 10) -> new_ww(X1+1, X2, X3, X4, X5, X6); true -> ok end, if ((X2+1) < 10) -> new_ww(X1, X2+1, X3, X4, X5, X6); true -> ok end, if ((X3+1) < 10) -> new_ww(X1, X2, X3+1, X4, X5, X6); true -> ok end, if ((X4+1) < 10) -> new_ww(X1, X2, X3, X4+1, X5, X6); true -> ok end, if ((X5+1) < 10) -> new_ww(X1, X2, X3, X4, X5+1, X6); true -> ok end, if ((X6+1) < 10) -> new_ww(X1, X2, X3, X4, X5, X6+1); true -> ok end end. 

рдПрд░реНрд▓реИрдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдирдИ рддрдХрдиреАрдХреЛрдВ рд╕реЗ рд╣рдордиреЗ рдХреНрдпрд╛ рдХрд┐рдпрд╛? рдЕрдм рддрдХ рдХреБрдЫ рднреА рдирд╣реАрдВ:

рдХреНрдпрд╛ рдХрд░реЗрдВ? рдПрдХ рдХрд╛рд░реНрдпрдкреНрд░рдгрд╛рд▓реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ! рд╕рд░рд▓, рдХрджрдо рд╕реЗ рдХрджрдо, рдПрдХ рдЫрд╛рддреНрд░ рдХреЗ рд▓рд┐рдП рднреА рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред

рдХрд╛рд░реНрдпрдкреНрд░рдгрд╛рд▓реА




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

рдпрд╣ рдХреНрдпрд╛ рджреЗрддрд╛ рд╣реИ? рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрд╡рд╣рд╛рд░ рдПрдХ рд╕рд░рд▓ рдФрд░ рд╕реАрдзрд╛ рдХрд╛рд░реНрдп рд╣реИред рдПрдХ рд╢реБрджреНрдз рдХрд╛рд░реНрдп, рдЬрд┐рд╕рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдХреЗрд╡рд▓ рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рджреВрд╕рд░реЛрдВ рдХреА рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдЬрд╛рдБрдЪ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред

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

рдЪрд░рдг 1. рджреБрдирд┐рдпрд╛ рдХреЗ рдХрд┐рд╕реА рднреА рд░рд╛рдЬреНрдп рдХрд╛ рд╡рд┐рд╡рд░рдг рдЯреБрдк рдореЗрдВ рд░рдЦреЗрдВ

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

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

рд╡рд┐рд╢реНрд╡ рд╡рд┐рд╡рд░рдг рд╕рдордЭреМрддрд╛: рджреБрдирд┐рдпрд╛ рдХрд╛ рд╡рд░реНрдгрди рдПрдХ рдЯрдкрд▓ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

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

рдЙрджрд╛рд╣рд░рдг 1. рднрд╛рдЧреНрдпрд╢рд╛рд▓реА рдЯрд┐рдХрдЯреЛрдВ рдХреЗ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╕рдордп рд╢реБрд░реБрдЖрддреА рд╕рдордп рдореЗрдВ рджреБрдирд┐рдпрд╛ рдХреА рд╕реНрдерд┐рддрд┐ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рдЯрдкрд▓ред
 {0,0,0,0,0,0} 

рдЯрд┐рдХрдЯ рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдЕрдВрдХ рдПрдХ рдЕрд▓рдЧ рдЕрдВрдХ рд╣реИред

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

рдЙрджрд╛рд╣рд░рдг 2. рджреБрдирд┐рдпрд╛ рдХреА рд╕реНрдерд┐рддрд┐ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рдЯрдкрд▓, рдЬрд┐рд╕рдореЗрдВ рд╣рдореЗрдВ 1x100r рдФрд░ 2x10r рдХреЗ рд░реВрдк рдореЗрдВ 120 рд░реВрдмрд▓ рдЬрд╛рд░реА рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдорд┐рд▓рд╛ред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╛рдВрдЪ рдкреНрд░рдХрд╛рд░ рдХреЗ рдмреИрдВрдХрдиреЛрдЯ рд╣реИрдВ: 1000, 500, 100, 50, 10. рдЗрд╕рд▓рд┐рдП, рджреБрдирд┐рдпрд╛ рдХреЗ рдкрд╛рдВрдЪ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реЛрдВрдЧреЗред рдпрд╣ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ рд╡реЗ рдЕрдзрд┐рдХ рд╕реЗ рдХрдо рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВрдЧреЗ, рдЕрд░реНрдерд╛рддреН, рдкрд╣рд▓реА рд╕рдВрдЦреНрдпрд╛ 1000 рд░реВрдмрд▓ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИ, рдЖрджрд┐ред
 {0,0,1,0,2} 


рдЪрд░рдг 2. рдЙрд╕ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВ рдЬреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рджреБрдирд┐рдпрд╛ рдЕрдкрдиреЗ рд▓рдХреНрд╖реНрдп рддрдХ рдкрд╣реБрдВрдЪ рдЧрдИ рд╣реИ рдпрд╛ рдирд╣реАрдВ

рдлрд╝рдВрдХреНрд╢рди рдХреЛ рджреБрдирд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрд╕рдХрд╛ рдХрд╛рдо рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рд╣реИ рдХрд┐ рд╡рд╣ рд▓рдХреНрд╖рд┐рдд рд╣реИ рдпрд╛ рдирд╣реАрдВред рдпрджрд┐ рд╣рд╛рдВ, рддреЛ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВ рдФрд░ true рд▓реМрдЯреЗрдВред рдЕрдиреНрдпрдерд╛ false ред рдпрджрд┐ рджреБрдирд┐рдпрд╛ рдЕрдкрдиреЗ рд▓рдХреНрд╖реНрдп рдкрд░ рдкрд╣реБрдВрдЪ рдЧрдИ рд╣реИ, рддреЛ рд░реВрдкрд░реЗрдЦрд╛ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЗрд╕реЗ рдФрд░ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдПрдХ рдЬреБрдЭрд╛рд░реВ рд╕рдорд╕реНрдпрд╛ рдореЗрдВ рджреБрдирд┐рдпрд╛ рдХреЗ рдЖрдЧреЗ рд╡рд┐рдХрд╛рд╕ рд╕реЗ рдЕрдиреНрдп рд╕рдорд╛рдзрд╛рди рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

рдЪрд░рдг 3. рдЙрд╕ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВ рдЬреЛ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рджреБрдирд┐рдпрд╛ рдХреЛ рдЖрдЧреЗ рд╡рд┐рдХрд╛рд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред

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

рдЪрд░рдг 4. рджреБрдирд┐рдпрд╛ рдХреЗ рд╢рд╛рдЦрд╛рдкреВрд░реНрдг рдХрд╛рд░реНрдп рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВ

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

рдЪрд░рдг 5. рджреБрдирд┐рдпрд╛ рдХрд╛ рдПрдЪрдПрд╕рдПрдЪ рдЧрдгрдирд╛ рдХрд╛рд░реНрдп рдмрддрд╛рдПрдВ

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рд╡рд┐рд╢реНрд╡ рдПрдЪрдПрдПрд╕рдПрдЪ рдЧрдгрдирд╛ рд╕рдорд╛рд░реЛрд╣ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИ:
 %%  w2hash(Wrld) -> erlang:phash2(Wrld). 

рдорд╛рдирдХ erlang:phash2 рдлрд╝рдВрдХреНрд╢рди erlang:phash2 рдПрдХ рд╣реИрд╢ erlang:phash2 рд╣реИ - рд╕рдВрдЪрд░рд┐рдд рдЯреНрдпреВрдкрд▓ рд╕реЗ рд╕рдВрдЦреНрдпрд╛ред рд▓реЗрдХрд┐рди рдПрдХ рджреБрдирд┐рдпрд╛ рд╕реЗ рджреВрд╕рд░реА рджреБрдирд┐рдпрд╛ рдХреЗ рд╕рдЯреАрдХ рдкрддреНрд░рд╛рдЪрд╛рд░ рдХреА рд╣рдореЗрд╢рд╛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдпрд╣ рд▓реЗрдЦ [1, 2] рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛, рд▓рдмреНрдмреЛрд▓реБрдЖрдм рдпрд╣ рд╣реИ рдХрд┐ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдордзреНрдпрд╡рд░реНрддреА рдирд┐рд░реНрдгрдп рдХреНрдпрд╛ рдереЗ, рдЖрдк рдПрдХ рдкрд░рд┐рдгрд╛рдо рдкрд░ рдЖ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╡рд┐рдХрд╛рд╕ рдХреА рд╢рд╛рдЦрд╛рдПрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛ рдЬрд╛рдПрдВрдЧреАред рджреБрдирд┐рдпрд╛ "рдкрд░рдорд╛рдгреБ рддрдХ рдирд╣реАрдВ" рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддреА рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЕрднрд┐рд╕рд░рдг рдХрд░рддреА рд╣реИред рдпрджрд┐ рдХрд╛рд░ рд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рд╣реИ, рддреЛ рдЖрдк рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рдбрд╝рдХреЛрдВ рд╕реЗ рдЖ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди 12 рдмрдЬреЗ рд╣рдо рдмреИрдардХ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВрдЧреЗред рдмреЗрд╢рдХ, рдЕрдВрддрд░ рдХрд╛рд░ рдХреЗ рдорд╛рдЗрд▓реЗрдЬ рдореЗрдВ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдХреНрд╖рдг рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдХреЛрдИ рдорд╛рдпрдиреЗ рдирд╣реАрдВ рд░рдЦрддрд╛ред

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

рдЕрдиреНрдп рдХрд╛рд░реНрдп

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

рд╕рдВрд╕реНрдХрд░рдг 1 рдХреА рд░реВрдкрд░реЗрдЦрд╛

wf1.erl
 -module(wf1). -export([start/0, stop/0, br/1, is_target/1, is_dead/1, ent/1, lib/0]). %%  w2hash(Wrld) -> erlang:phash2(Wrld). %%  lib() -> lib([]). lib(List) -> receive stop -> ok; {Wrld, Pid} -> WHash = w2hash(Wrld), NewList = case lists:member(WHash, List) of false -> Pid ! ok, [WHash]++List; true -> Pid ! exist, List end, lib(NewList); _ -> ok end. ent([]) -> ok; %%     ,        Wrld %%   Tail   ent([Wrld|Tail]) -> try spawn(?MODULE, ent, [Wrld]) of _Pid -> ent(Tail) catch _:_ -> io:format("spawn overload~n", []), ent(Wrld), ent(Tail) end; %%      ent(Wrld) -> lib_srv ! {Wrld, self()}, %%       receive ok -> is_target(Wrld), %%    Is_dead = is_dead(Wrld), %%    if (Is_dead==false) -> %%    -       NewBranches = br(Wrld), ent(NewBranches); true -> ok end; exist -> ok end. stop() -> lib_srv ! stop. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% ,   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%  ? is_target(Wrld) -> true. %% -   is_dead(Wrld) -> false. %%  br(Wrld) -> []. %%  start() -> register(lib_srv, spawn(?MODULE, lib, [])), io:format("start~n", []), %%  []     spawn(?MODULE, ent, [[]]). 


рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдлреНрд░реЗрдорд╡рд░реНрдХ тДЦ1 рдХрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ



рдХрд╛рдЧрдЬ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдЯреБрдХрдбрд╝реЛрдВ рдХреЗ рд╕рд╛рде 120 рд░реВрдмрд▓ рдЬрд╛рд░реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рдЧрдгрдирд╛



рдЪрд░рдг 1 - рдПрдХ рдЯрдкрд▓ рдореЗрдВ рджреБрдирд┐рдпрд╛ рдХреЛ рд░рдЦрдирд╛

рджреБрдирд┐рдпрд╛ рдкрд╛рдВрдЪ рдЕрдВрдХреЛрдВ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИред
 {0,0,0,0,0} 


рдЪрд░рдг 2. рдЙрд╕ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВ рдЬреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рджреБрдирд┐рдпрд╛ рдЕрдкрдиреЗ рд▓рдХреНрд╖реНрдп рддрдХ рдкрд╣реБрдВрдЪ рдЧрдИ рд╣реИ рдпрд╛ рдирд╣реАрдВ
 %%  ? is_target(Wrld) -> {X1000,X500,X100,X50,X10} = Wrld, if ((X1000*1000 + X500*500 + X100*100 + X50*50 + X10*10)==120) -> io:format("120 (~w) = 1000p*~w 500p*~w 100p*~w 50p*~w 10p*~w~n", [X1000+X500+X100+X50+X10,X1000,X500,X100,X50,X10]); true -> ok end, (X1000*1000 + X500*500 + X100*100 + X50*50 + X10*10)==120. 

Erlang рд╕рд┐рдВрдЯреИрдХреНрд╕ рдкрд░ рдПрдХ рдЫреЛрдЯрд╛ рдиреЛрдЯред рдмрд╣реБрдд рдкрд╣рд▓реЗ рдСрдкрд░реЗрд╢рди рдПрдХ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдореИрдЪ рд╣реИред Wrld рд╡реЗрд░рд┐рдПрдмрд▓ Wrld рдкрд╛рдБрдЪ рддрддреНрд╡реЛрдВ рд╡рд╛рд▓рд╛ Wrld рдЯрдкрд▓ Wrld ред рдЬрдм рдСрдкрд░реЗрд╢рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЯреНрдпреВрдкрд▓ рдореЗрдВ рддрддреНрд╡реЛрдВ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдЪрд░ X1000, X500, X100, X50, X10 рдХреЛ рд╕реМрдВрдкрд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрд░реНрд▓рд╛рдВрдЧ рдореЗрдВ рдореИрдЪ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА, рдХреГрдкрдпрд╛ рдЕрдкрдиреЗ рджрдо рдкрд░ рдкрдврд╝реЗрдВред рдпрд╛ рдмрд╕ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдВ рдЬреИрд╕реЗ рдХрд┐ рдЯреБрдк рд╕реЗ рдорд╛рди рдЦреАрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдПред

рдЪрд░рдг 3. рдЙрд╕ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВ рдЬреЛ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рджреБрдирд┐рдпрд╛ рдХреЛ рдЖрдЧреЗ рд╡рд┐рдХрд╛рд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред
 %% -   is_dead(Wrld) -> {X1000,X500,X100,X50,X10} = Wrld, (X1000*1000 + X500*500 + X100*100 + X50*50 + X10*10)>120. 


рдЪрд░рдг 4. рджреБрдирд┐рдпрд╛ рдХреЗ рд╢рд╛рдЦрд╛рдкреВрд░реНрдг рдХрд╛рд░реНрдп рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВ
 %%  br(Wrld) -> {X1000,X500,X100,X50,X10} = Wrld, [ {X1000+1,X500,X100,X50,X10}, {X1000,X500+1,X100,X50,X10}, {X1000,X500,X100+1,X50,X10}, {X1000,X500,X100,X50+1,X10}, {X1000,X500,X100,X50,X10+1} ]. 


рдЧрдгрдирд╛ рдкреНрд░рд╛рд░рдВрдн
 %%  start() -> register(lib_srv, spawn(?MODULE, lib, [])), io:format("start~n", []), %%  []     spawn(?MODULE, ent, [{0,0,0,0,0}]). 


рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдордиреЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛:
 1> c(wf1). {ok,wf1} 2> wf1:start(). start <0.455.0> 120 (3) = 1000x0 500x0 100x1 50x0 10x2 120 (4) = 1000x0 500x0 100x0 50x2 10x2 120 (8) = 1000x0 500x0 100x0 50x1 10x7 120 (12) = 1000x0 500x0 100x0 50x0 10x12 


рднрд╛рдЧреНрдпрд╢рд╛рд▓реА рдЯрд┐рдХрдЯреЛрдВ рдХреА рдЧрдгрдирд╛



рдЪрд░рдг 1 - рдПрдХ рдЯрдкрд▓ рдореЗрдВ рджреБрдирд┐рдпрд╛ рдХреЛ рд░рдЦрдирд╛

рджреБрдирд┐рдпрд╛ рдХреЛ рдЫрд╣ рдЕрдВрдХреЛрдВ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
 {0,0,0,0,0,0} 


рдЪрд░рдг 2. рдЙрд╕ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВ рдЬреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рджреБрдирд┐рдпрд╛ рдЕрдкрдиреЗ рд▓рдХреНрд╖реНрдп рддрдХ рдкрд╣реБрдВрдЪ рдЧрдИ рд╣реИ рдпрд╛ рдирд╣реАрдВ
 %%  ? is_target(Wrld) -> {X1,X2,X3,X4,X5,X6} = Wrld, if ((X1+X2+X3)==(X4+X5+X6)) -> cnt_srv ! inc, cnt_srv ! {cnt, self()}, receive X -> ok end, io:format("~w ~w ~w ~w ~w ~w (~w)~n", [X1,X2,X3,X4,X5,X6, X]); true -> ok end, ((X1+X2+X3)==(X4+X5+X6)). 


рдЪрд░рдг 3. рдЙрд╕ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВ рдЬреЛ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рджреБрдирд┐рдпрд╛ рдХреЛ рдЖрдЧреЗ рд╡рд┐рдХрд╛рд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред
 %% -   is_dead(Wrld) -> {X1,X2,X3,X4,X5,X6} = Wrld, if (X1>9)-> true; (X2>9)-> true; (X3>9)-> true; (X4>9)-> true; (X5>9)-> true; (X6>9)-> true; true -> false end. 


рдЪрд░рдг 4. рджреБрдирд┐рдпрд╛ рдХреЗ рд╢рд╛рдЦрд╛рдкреВрд░реНрдг рдХрд╛рд░реНрдп рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВ
 %%  br(Wrld) -> {X1,X2,X3,X4,X5,X6} = Wrld, [ {X1+1,X2,X3,X4,X5,X6}, {X1,X2+1,X3,X4,X5,X6}, {X1,X2,X3+1,X4,X5,X6}, {X1,X2,X3,X4+1,X5,X6}, {X1,X2,X3,X4,X5+1,X6}, {X1,X2,X3,X4,X5,X6+1} ]. 


рдЦреБрд╢ рдЯрд┐рдХрдЯреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рдФрд░ рд╕рд░реНрд╡рд░ рдмрдирд╛рдПрдВрдЧреЗ рдЬреЛ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдкрд░рд┐рдгрд╛рдо рдХреЗ рд╕рд╛рде рд╕рдВрд╕рд╛рд░ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рд╕рдВрдЧреНрд░рд╣рд┐рдд, рдмрдврд╝рд╛рдПрдЧрд╛ рдФрд░ рджреЗрдЧрд╛:
 %%-  cnt() -> cnt(0). cnt(N) -> receive inc -> cnt(N+1); {cnt,Pid} -> Pid ! N, cnt(N) end. 


рдЬрдм рдЖрдк рдЧрдгрдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдЗрд╕реЗ рднреА рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ:
 %%  start() -> register(lib_srv, spawn(?MODULE, lib, [])), register(cnt_srv, spawn(?MODULE, cnt, [])), io:format("start~n", []), %%  []     spawn(?MODULE, ent, [{0,0,0,0,0,0}]). 


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

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

рднрд╛рдЧреНрдпрд╢рд╛рд▓реА рдЯрд┐рдХрдЯреЛрдВ рдХреА рдЧрдгрдирд╛, рдкреНрд░рдпрд╛рд╕ рд╕рдВрдЦреНрдпрд╛ 2



рдЦреБрд╢ рдЯрд┐рдХрдЯреЛрдВ рдХреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рдирд┐рдХрд▓рд╛ред рд╣рд▓ рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рдг рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдХреЛ рдкрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рджреБрдирд┐рдпрд╛ рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдореБрдЦреНрдп рдЪрдХреНрд░ рдХреЛ рд╕рдорд╛рдпреЛрдЬрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЪрд░рдг рд╕рдВрдЦреНрдпрд╛ 5 (рдЬреЛ рдореВрд▓ рд░реВрдк рд╕реЗ рдирд╣реАрдВ рдерд╛) рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХрд╛ рдкрддрд╛ рдЪрд▓рд╛ рдерд╛ред

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

рдЪрд░рдг 1 - рдПрдХ рдЯрдкрд▓ рдореЗрдВ рджреБрдирд┐рдпрд╛ рдХреЛ рд░рдЦрдирд╛

рдкрд╣рд▓реЗ рджреЛ рдкреИрд░рд╛рдореАрдЯрд░ рд░реЗрдВрдЬ рд╣реИрдВред рдмрд╛рдХреА рд╕рдм рдкрд╣рд▓реЗ рдЬреИрд╕рд╛ рд╣реА рд╣реИред
 {0,999999,0,0,0,0,0,0} 


рдЪрд░рдг 2. рдЙрд╕ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВ рдЬреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рджреБрдирд┐рдпрд╛ рдЕрдкрдиреЗ рд▓рдХреНрд╖реНрдп рддрдХ рдкрд╣реБрдВрдЪ рдЧрдИ рд╣реИ рдпрд╛ рдирд╣реАрдВ
 %%  ? is_target(Wrld) -> {_St_d,_En_d,X1,X2,X3,X4,X5,X6} = Wrld, if ((X1+X2+X3)==(X4+X5+X6)) -> cnt_srv ! inc, cnt_srv ! {cnt, self()}, receive X -> ok end, io:format("~w ~w ~w ~w ~w ~w (~w)~n", [X1,X2,X3,X4,X5,X6, X]); true -> ok end, ((X1+X2+X3)==(X4+X5+X6)). 


рдЪрд░рдг 3. рдЙрд╕ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВ рдЬреЛ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рджреБрдирд┐рдпрд╛ рдХреЛ рдЖрдЧреЗ рд╡рд┐рдХрд╛рд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред

рдЧрдгрдирд╛ рдХреЗ рдЗрд╕ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рджреБрдирд┐рдпрд╛ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЛ рдорд╛рдирд╛ рдирд╣реАрдВ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рддреБрд░рдВрдд рд╕рднреА рд╡рд┐рдХрд╛рд╕ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдЬрд╛рдирддреЗ рд╣реИрдВред рдпрд╣реА рд╣реИ, рд╡рд┐рдХрд╛рд╕ рдХрд╛ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рдЪрд░рдг рд╣реИ - рдкрд╣рд▓рд╛ рдЪрд░рдг, рдЬрдм 0 - 999999 рдХреА рд╕реАрдорд╛ рдХрд╛ рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬрдм рд╣рдорд╛рд░реА рд╕реВрдЪреА рдореЗрдВ рд╕реАрдорд╛ рд░рдЦреА рдЬрд╛рддреА рд╣реИ, рддреЛ рджреБрдирд┐рдпрд╛ рдХрд╛ рд╡рд┐рдХрд╛рд╕ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рджреБрдирд┐рдпрд╛ рд╣рдореЗрд╢рд╛ рдПрдХ рдореГрдд рдЕрдВрдд рд╣реИ, рдкрд╣рд▓реЗ рдЪрд░рдг рдХреЛ рдЫреЛрдбрд╝рдХрд░ред
 %% -   is_dead(Wrld) -> {St_d,En_d,_X1,_X2,_X3,_X4,_X5,_X6} = Wrld, (St_d == En_d). 


рдЪрд░рдг 4. рджреБрдирд┐рдпрд╛ рдХреЗ рд╢рд╛рдЦрд╛рдкреВрд░реНрдг рдХрд╛рд░реНрдп рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВ
 %%  br(Wrld) -> {St_d,En_d,X1,X2,X3,X4,X5,X6} = Wrld, THalf = round((St_d + En_d) / 2), if (St_d == En_d) -> []; ((En_d - St_d) == 1) -> XX6 = En_d rem 10, XX5 = trunc((En_d rem 100)/10), XX4 = trunc((En_d rem 1000)/100), XX3 = trunc((En_d rem 10000)/1000), XX2 = trunc((En_d rem 100000)/10000), XX1 = trunc((En_d rem 1000000)/100000), [{St_d,St_d,XX1,XX2,XX3,XX4,XX5,XX6}] ++ [{En_d,En_d,XX1,XX2,XX3,XX4,XX5,XX6}]; true -> br({St_d,THalf,X1,X2,X3,X4,X5,X6}) ++ br({THalf,En_d,X1,X2,X3,X4,X5,X6}) end. 


рдЪрд░рдг 5. рджреБрдирд┐рдпрд╛ рдХреЗ рдПрдЪрдПрдПрд╕рдПрдЪ рдХреЗ рдХрд╛рд░реНрдп рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВ
 %%  w2hash(Wrld) -> {_St_d,_En_d,X1,X2,X3,X4,X5,X6} = Wrld, X1*100000 + X2*10000 + X3*1000 + X4*100 + X5*10 + X6. 

рдпрд╛ рдЖрдк рдПрдХ рдЯрдкрд▓ рдЗрдХрдЯреНрдард╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдПрдХ рд╕реАрдорд╛ рдХреЗ рдмрд┐рдирд╛
 %%  w2hash(Wrld) -> {_St_d,_En_d,X1,X2,X3,X4,X5,X6} = Wrld, erlang:phash2({X1,X2,X3,X4,X5,X6}). 


рд▓рд╛рдВрдЪ

 %%  start() -> register(lib_srv, spawn(?MODULE, lib, [])), register(cnt_srv, spawn(?MODULE, cnt, [])), io:format("start~n", []), %%  []     spawn(?MODULE, ent, [{0,999999,0,0,0,0,0,0}]). 


рдкрд░рд┐рдгрд╛рдо

рдирд┐рд╖реНрдкрд╛рджрди рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдХрд╛рд░реНрдпрдХреНрд░рдо рдиреЗ рднрд╛рдЧреНрдпрд╢рд╛рд▓реА рдЯрд┐рдХрдЯреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдЬрд╛рд░реА рдХреА, рдЬреЛ 55252 рд╣реЛ рдЧрдПред рдпрд╣ рдирд┐рдХрд▓рд╛ , рдЪрд┐рдпрд░реНрд╕ !!!

рд╕рд┐рдВрдЧрд▓ рд▓рд╛рдЗрди рдмреНрд░реЗрдХрд┐рдВрдЧ
 length([ [A,B,C,D,E,F] || A <- [0,1,2,3,4,5,6,7,8,9], B<-[0,1,2,3,4,5,6,7,8,9], C<-[0,1,2,3,4,5,6,7,8,9], D <- [0,1,2,3,4,5,6,7,8,9], E <- [0,1,2,3,4,5,6,7,8,9], F <- [0,1,2,3,4,5,6,7,8,9], (A+B+C==D+E+F)]). 


рдкрд░рд┐рдгрд╛рдо рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдЦреБрд╢ рдирд╣реАрдВ рд╣реИ: 16:49 рдкрд░ рдЧрдгрдирд╛ рд╢реБрд░реВ рдХреА, рдФрд░ 17:23 рдкрд░ рд╕рдорд╛рдкреНрдд рд╣реБрдИред рдпрд╣ 30 рдорд┐рдирдЯ рд╕реЗ рдЕрдзрд┐рдХ рд╣реИред рд▓реЗрдХрд┐рди рдЯрд┐рдХрдЯ рдХреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдХреНрдпрд╛ рд╕рдорд╛рдзрд╛рди рд╣реБрдЖ рдФрд░ рдЗрд╕реЗ рджреВрд░ рдХрд░рдирд╛ рдкрдбрд╝рд╛? рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рднрдВрдбрд╛рд░рдг рдореЗрдВ рдПрдХ рдорд┐рд▓рд┐рдпрди рджреБрдирд┐рдпрд╛ рд╣реИред рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рдореИрдВрдиреЗ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рд╡рд┐рд╢реНрд╡ рд╣реИрд╢ рд░рд┐рдХреЙрд░реНрдб рдирд╣реАрдВ рдХрд┐рдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рджреБрдирд┐рдпрд╛ рдХреЗ рд╕реАрдзреЗ tuplesред рдЬрдм рдЖрдк рдмрд╣реБрдд рд╕рд╛рд░реА рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рд╡рд╛рд▓реА рд╕реВрдЪреА рдореЗрдВ рдЦреЛрдЬ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрдбрд╝реА рджреЗрд░реА рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд╣реИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдЧрддрд┐ рдмрдврд╝ рдЧрдИ рд╣реИред рдФрд░ рдЪрд░рдг 5 рдореЗрдВ рд╡рд┐рдЪрд╛рд░реЛрдВ рдиреЗ рд╣реИрд╢ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рд╢реБрджреНрдзрддрд╛ рдХреА рднреА рдкреБрд╖реНрдЯрд┐ рдХреАред рдпрджреНрдпрдкрд┐, рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдЖрдк рджреБрдирд┐рдпрд╛ рдХреЗ рдПрдХ рдЯрдкрд▓ рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдРрд╕реА рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рд╣рдЯрд╛рдХрд░ рдЬреЛ рдЗрд╕рд╕реЗ рд╕рд╛рд░реНрдердХ рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╡рд░реНрддрдорд╛рди рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдЙрддреНрдкрд╛рджрдХрддрд╛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЧреБрдгрд╛рддреНрдордХ рд╡реГрджреНрдзрд┐ рдХреЗ рд▓рд┐рдП рдЕрднреА рднреА рднрдВрдбрд╛рд░ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЬрд┐рди рджреБрдирд┐рдпрд╛ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╕рд░рдгреА рдореЗрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рджреБрдирд┐рдпрд╛ рдХреЗ рдПрдХ рд╕рд░рдгреА рдХреЗ рддрддреНрд╡реЛрдВ рдХреА рдЧрдгрдирд╛ рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ, рдХрдИ рдПрд░рд▓рдВрдЧ рдиреЛрдбреНрд╕ рдкрд░ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИредрд╕рднреА рд╡рд┐рд╢реНрд╡ рдЧрдгрдирд╛рдУрдВ рдХреЛ рд╣рд░ рдмрд╛рд░ рдПрдХ рдирдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдФрд░ рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ, рдЖрдк Erlang рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдореЗрдВ рдЕрдзрд┐рдХрддрдо рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рддреНрд░реБрдЯрд┐ рд╣реЛ рд╕рдХрддреА рд╣реИред рдкреНрд░рддрд┐рдмрдВрдз рдХреА "рд░рди" рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдЯрд┐рдХрдЯреЛрдВ рдХреА рдЧрдгрдирд╛, рддреНрд░реБрдЯрд┐ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░реЗрдВ рдФрд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдкрд░рд┐рдгрд╛рдо рд╕рд╣реА рд╣реИред

рдЯрд╛рд╕реНрдХ "рд╡реБрд▓реНрдл, рдмрдХрд░реА рдФрд░ рдЧреЛрднреА"



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

рдХрд╛рд░реНрдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рд╕рд╛рде рд╣реА рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рджреЛ рд╡рд┐рдХрд▓реНрдк рдпрд╣рд╛рдБ рдкрд╛рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ [7]ред

рдЪрд░рдг 1: рджреБрдирд┐рдпрд╛ рдХреЗ рдХрд┐рд╕реА рднреА рд░рд╛рдЬреНрдп рдХрд╛ рд╡рд┐рд╡рд░рдг рдореЛрдЯрд░рд╕рд╛рдЗрдХрд┐рд▓ рдореЗрдВ рд░рдЦреЗрдВ

рдЬрд╣рд╛рдВ ( r- рджрд╛рдПрдВ, lрдмрд╛рдПрдВ) - рдХрд┐рдирд╛рд░реЗ рдкрд░ рдЬрд┐рд╕ рдкрд░ рджрд╛рджрд╛, рдмрдХрд░реА, рднреЗрдбрд╝рд┐рдпрд╛, рдЧреЛрднреА рдФрд░ рдкрд┐рдЫрд▓рд╛ рд░рд╛рд╕реНрддрд╛ ([] рдПрдХ рд╕реВрдЪреА рд╣реИ)ред рдХреЗ рд▓рд┐рдП рд╕реВрдЪреА рдХреНрдпрд╛ рд╣реИ? рдЖрдЦрд┐рд░рдХрд╛рд░, рд╣рдореЗрдВ рдпрд╣ рдЬрд╛рдирдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдХрд┐ рд╣рдо рдХрд┐рд╕ рддрд░рд╣ рд╕реЗ рдкрд░рд┐рдгрд╛рдо рдореЗрдВ рдЖрдПред
 {{ded,r},{koza,r},{volk,r},{kapusta,r},[]} 


рдЪрд░рдг 2. рдЙрд╕ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВ рдЬреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рджреБрдирд┐рдпрд╛ рдЕрдкрдиреЗ рд▓рдХреНрд╖реНрдп рддрдХ рдкрд╣реБрдВрдЪ рдЧрдИ рд╣реИ рдпрд╛ рдирд╣реАрдВ
 %%  ? is_target(Wrld) -> {{ded,DedBereg},{koza,KozaBereg},{volk,VolkBereg},{kapusta,KapustaBereg},History} = Wrld, if ((DedBereg==r) and (KozaBereg==r) and (VolkBereg==r) and (KapustaBereg==r)) -> cnt_srv ! inc, cnt_srv ! {cnt, self()}, receive X -> ok end, io:format("~w) movs=~w ~w ~n", [X, length(History),History]); true -> ok end, ((DedBereg==r) and (KozaBereg==r) and (VolkBereg==r) and (KapustaBereg==r)). 


рдпрд╣реА рд╣реИ, рдЕрдЧрд░ рд╕рдм рдХреБрдЫ рд╕рд╣реА рдмреИрдВрдХ рдкрд░ рд╣реИ - рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИ рд╣реИред

рдЪрд░рдг 3. рдЙрд╕ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВ рдЬреЛ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рджреБрдирд┐рдпрд╛ рдХреЛ рдФрд░ рд╡рд┐рдХрд╛рд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
 %% -   is_dead(Wrld) -> {{ded,DedBereg},{koza,KozaBereg},{volk,VolkBereg},{kapusta,KapustaBereg},History} = Wrld, if (length(History) > 8) -> true; ((KozaBereg==VolkBereg)and(DedBereg/=KozaBereg)) -> true; %%  ,      ((KozaBereg==KapustaBereg)and(DedBereg/=KozaBereg)) -> true; %%  ,      true -> false end. 


рдпрджрд┐ рджрд╛рджрд╛рдЬреА рдмрд╣реБрдд рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдПрдХ рдореГрдд рдЕрдВрдд рд╣реИред

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

рдпрджрд┐ рдмрдХрд░реА рдФрд░ рдЧреЛрднреА рдХреЗ рдХрд┐рдирд╛рд░реЗ рдореЗрд▓ рдЦрд╛рддреЗ рд╣реИрдВ, рдФрд░ рдЙрдирдХреЗ рдкрд╛рд╕ рдХреЛрдИ рджрд╛рджрд╛ (рджреВрд╕рд░реА рддрд░рдл рджрд╛рджрд╛) рдирд╣реАрдВ рд╣реИ, рддреЛ рдмрдХрд░реА рдЧреЛрднреА рдЦрд╛рддреА рд╣реИред

рдЕрдиреНрдп рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдЖрдк рднрд╡рд┐рд╖реНрдп рдХреЗ рд▓рд┐рдП рдЬреА рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЖрд╢рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЪрд░рдг 4. рджреБрдирд┐рдпрд╛ рдХреЛ рд╢рд╛рдЦрд╛рдУрдВ рдореЗрдВ рд▓реЗрдиреЗ рдХреЗ рдХрд╛рд░реНрдп рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВред

рдпрд╣рд╛рдВ, рдпрд╣ рддреБрд░рдВрдд рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рд╕реНрдорд╛рд░реНрдЯ рдФрд░ рд╕рд░рд▓реАрдХреГрдд рд╣реЛрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдФрд░ рдЖрдкрдХреЛ рдХреБрдЫ рднреА рд╕рд░рд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рд╣рдореЗрдВ рдЗрд╕реЗ рд╡реИрд╕реЗ рд╣реА рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреИрд╕реЗ рдХрд┐ - рдРрд╕рд╛ рд╣реИред

рдкрд╣рд▓реЗ рдореИрдВ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦреВрдВрдЧрд╛ рдЬреЛ рдкрд╛рд░рд┐рдд рдмреИрдВрдХ рд╕реЗ рд╡рд┐рдкрд░реАрдд рдмреИрдВрдХ рд▓реМрдЯрд╛рддрд╛ рд╣реИ (рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛)
 na_drugoi_bereg(l) -> r; na_drugoi_bereg(r) -> l. 


рд╣рдо рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рджреБрдирд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╛рд╕ рдХреЗ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рд╣рдо рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рджреБрдирд┐рдпрд╛ рдХреЛ рд╕реВрдЪреА - рдЗрддрд┐рд╣рд╛рд╕ рдореЗрдВ рдЬреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВред рдЖрдЦрд┐рд░рдХрд╛рд░, рд╣рдореЗрдВ рдпрд╣ рдЬрд╛рдирдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдХрд┐ рд╣рдо рдХрд┐рд╕ рддрд░рд╣ рд╕реЗ рдкрд░рд┐рдгрд╛рдо рдореЗрдВ рдЖрдПред
 %%  br(Wrld) -> {{ded,DedBereg},{koza,KozaBereg},{volk,VolkBereg},{kapusta,KapustaBereg},History} = Wrld, NewHistory = History ++ [{{ded,DedBereg},{koza,KozaBereg},{volk,VolkBereg},{kapusta,KapustaBereg}}], %% ,        %%          ,        %%   ,    %%  -  ,     if (DedBereg==KozaBereg) -> Variant1 = {{ded,na_drugoi_bereg(DedBereg)},{koza,na_drugoi_bereg(KozaBereg)},{volk,VolkBereg},{kapusta,KapustaBereg},NewHistory}; true -> Variant1 = [] end, %%  -  ,     if (DedBereg==VolkBereg) -> Variant2 = {{ded,na_drugoi_bereg(DedBereg)},{koza,KozaBereg},{volk,na_drugoi_bereg(VolkBereg)},{kapusta,KapustaBereg},NewHistory}; true -> Variant2 = [] end, %%  -  ,     if (DedBereg==KapustaBereg) -> Variant3 = {{ded,na_drugoi_bereg(DedBereg)},{koza,KozaBereg},{volk,VolkBereg},{kapusta,na_drugoi_bereg(KapustaBereg)},NewHistory}; true -> Variant3 = [] end, %%   -   -    Variant4 = {{ded,na_drugoi_bereg(DedBereg)},{koza,KozaBereg},{volk,VolkBereg},{kapusta,KapustaBereg},NewHistory}, %%     [Variant1]++[Variant2]++[Variant3]++[Variant4]. 


рдЪрд░рдг 5.

рджреБрдирд┐рдпрд╛ рдХреЗ рдПрдЪрдПрдПрд╕рдПрдЪ рдХреА рдЧрдгрдирд╛ рдХреЗ рдХрд╛рд░реНрдп рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВ ред рджреБрдирд┐рдпрд╛ рдХрд╛ рдорд╛рдирдХ рдПрдЪрдПрдПрд╕рдПрдЪ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдХрд╛рдлреА рдЙрдкрдпреБрдХреНрдд рд╣реИред
 %%  w2hash(Wrld) -> erlang:phash2(Wrld). 


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

рд▓рд╛рдВрдЪ
 %%  start() -> register(lib_srv, spawn(?MODULE, lib, [])), register(cnt_srv, spawn(?MODULE, cnt, [])), io:format("start~n", []), %%  []     spawn(?MODULE, ent, [{{ded,l},{koza,l},{volk,l},{kapusta,l},[]}]). 


рдкрд░рд┐рдгрд╛рдо рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг

рдирджреА рдХреЗ рдкрд╛рд░ рджрд╛рджрд╛рдЬреА рдХреЗ рдЖрдВрджреЛрд▓рдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ, рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВред рдЙрдирдореЗрдВ рд╕реЗ, рд╕рдмрд╕реЗ рдЫреЛрдЯреЗ рдирд┐рд░реНрдгрдп 7 рдЖрдВрджреЛрд▓рдиреЛрдВ рдореЗрдВ рд╣реИрдВред рджреЛ рдРрд╕реЗ рд╕рдорд╛рдзрд╛рди рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рд╡реЗ рд▓реЗрдЦ [ 7 ] рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВ ред

 1) movs=7 [ {{ded,l},{koza,l},{volk,l},{kapusta,l}}, -     {{ded,r},{koza,r},{volk,l},{kapusta,l}}, -      {{ded,l},{koza,r},{volk,l},{kapusta,l}}, -     {{ded,r},{koza,r},{volk,r},{kapusta,l}}, -      {{ded,l},{koza,l},{volk,r},{kapusta,l}}, -        {{ded,r},{koza,l},{volk,r},{kapusta,r}}, -      {{ded,l},{koza,l},{volk,r},{kapusta,r}}] -      ,       


 5) movs=7 [ {{ded,l},{koza,l},{volk,l},{kapusta,l}}, -     {{ded,r},{koza,r},{volk,l},{kapusta,l}}, -      {{ded,l},{koza,r},{volk,l},{kapusta,l}}, -     {{ded,r},{koza,r},{volk,l},{kapusta,r}}, -      {{ded,l},{koza,l},{volk,l},{kapusta,r}}, -        {{ded,r},{koza,l},{volk,r},{kapusta,r}}, -      {{ded,l},{koza,l},{volk,r},{kapusta,r}}] -      ,       


рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рдЕрдзрд┐рдХ рдЖрдВрджреЛрд▓рдиреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдпреЗ рд╢рд░реАрд░ рдХреА рдЧрддрд┐рд╡рд┐рдзрд┐рдпрд╛рдБ рдирд┐рд░рд░реНрдердХ рд╣реЛрдВрдЧреА:
 2) movs=9 [ {{ded,l},{koza,l},{volk,l},{kapusta,l}}, -     {{ded,r},{koza,r},{volk,l},{kapusta,l}}, -      {{ded,l},{koza,r},{volk,l},{kapusta,l}}, -     {{ded,r},{koza,r},{volk,r},{kapusta,l}}, -      {{ded,l},{koza,l},{volk,r},{kapusta,l}}, -       {{ded,r},{koza,l},{volk,r},{kapusta,r}}, -      {{ded,l},{koza,l},{volk,r},{kapusta,l}}, -      {{ded,r},{koza,l},{volk,r},{kapusta,r}}, -        {{ded,l},{koza,l},{volk,r},{kapusta,r}}] -    


рд╣рд╛рд╕реНрдп рдХрд╛ рдХреНрд╖рдг


рдЪрд┐рддреНрд░ - рдЯреНрд░реА рдСрдлрд╝ рдЯрд╛рдЗрдореНрд╕ рдкрджреНрдзрддрд┐ рдХрд╛ рдЪрд┐рддреНрд░рдгред


рднреЗрдбрд╝рд┐рдпреЗ, рдмрдХрд░реА рдФрд░ рдЧреЛрднреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдЕрдореЗрд░рд┐рдХреА рд╕рдВрд╕реНрдХрд░рдгред


рдирд┐рд╖реНрдХрд░реНрд╖


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

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

рдЖрдЧреЗ рдХрд╛ рд╡рд┐рдХрд╛рд╕
рдХреНрд▓рд╕реНрдЯрд░ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧред рдПрд░реНрд▓реИрдВрдЧ рдкреВрд▓ рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧред

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

рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рд╕реНрд░реЛрддреЛрдВ рдХреА рд╕реВрдЪреА


1. рдпрд╛рддреНрд░рд╛ рд╕рдордп рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ - habrahabr.ru/post/150300
2. рдпрд╛рддреНрд░рд╛ рд╕рдордп рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ 2: рд╡рд┐рд░реЛрдзрд╛рднрд╛рд╕ - habrahabr.ru/post/178959
3. рд╡рд╕реАрд▓реА Golovachev - рдЬрд▓реНрд▓рд╛рдж рдмрд╛рд░
4. qt-project.org
5. рдкреНрд░рд╛рд░рдВрдн Erlang рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ - rsdn.ru/article/erlang/GettingStartedWithErlang.xml
6. www.erlang.org
7. рдХрд╛рд░реНрдп "рд╡реБрд▓реНрдл, рдмрдХрд░реА рдФрд░ рдЧреЛрднреА" - suhin.napp.ru/mat4.htm
8. рдмрд╛рдзрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ - en.wikipedia .org / wiki / Constraint_programming
9. рдмрд╛рдзрд╛рдУрдВ рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ - en.wikipedia.org/wiki/Programming in constraints
10. рдкреНрд░реЛрдлреЗрд╕рд░ рдореИрдЯ рдХрд╛рд░реНрд▓рд╕рди - рдмрд╛рдзрд╛рдУрдВ рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧредрдЦреБрд▓рд╛ рд╡реАрдбрд┐рдпреЛ рд╡реНрдпрд╛рдЦреНрдпрд╛рди
11. рд╢рд╛рдЦрд╛рдУрдВ рдФрд░ рд╕реАрдорд╛рдУрдВ рдХреА рд╡рд┐рдзрд┐ - en.wikipedia.org/wiki/Metod_Branches_and рдмреЙрд░реНрдбрд░

PSред рдореБрдЭреЗ рджрд┐рд▓рдЪрд╕реНрдк рдХрд╛рд░реНрдпреЛрдВ рдХреА рддрд▓рд╛рд╢ рд╣реИ!
- рд╣рдиреЛрдИ рдХрд╛ рдЯреЙрд╡рд░
- рд╕реБрдбреЛрдХреВ
- рдпреВрд▓рд░ рд╣реЙрд░реНрд╕

Source: https://habr.com/ru/post/In217031/


All Articles