рдПрдХ рдЧрдЧрдирдЪреБрдВрдмреА рдЗрдорд╛рд░рдд рдФрд░ рдЕрдВрдбреЗ рдХреЗ рд╕рд╛рде рдПрдХ рдХрд╛рд░реНрдп - рдиреНрдпреВрдЯрди рдХреЗ рдмрд┐рди рдирд╣реАрдВ?

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╡рд╣ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╣реИред рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ рдмрд╛рддреЗрдВ рдкрд╣рд▓реЗред

рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдмрдпрд╛рди


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

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

0 <= рдПрди, рдПрдо <= 20,000ред
рджреЛ рджрд░реНрдЬрди рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХрд╛ рд░рди рд╕рдордп 12 рд╕реЗрдХрдВрдб рд╣реИред

рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдЦреЛрдЬреЗрдВ


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

рд╢реБрд░реБрдЖрдд рдХрд░рддреЗ рд╣реИрдВ рд╢реВрдиреНрдп рд╕реЗред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдЕрдЧрд░ рдЕрдВрдбреЗ рдирд╣реАрдВ рд╣реИрдВ рдпрд╛ рдЙрдиреНрд╣реЗрдВ рдлреЗрдВрдХрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдирд╣реАрдВ рд╣реИ, рддреЛ рдХреБрдЫ рднреА рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЬрд╡рд╛рдм рд╢реВрдиреНрдп рд╣реЛрдЧрд╛ред f (0, m) = 0, f (n, 0) = 0ред

рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдПрдХ рдЕрдВрдбрд╛ рд╣реИ, рдФрд░ 10 рдкреНрд░рдпрд╛рд╕ рд╣реИрдВред рдЖрдк рд╕рдм рдХреБрдЫ рдЬреЛрдЦрд┐рдо рдореЗрдВ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдареАрдХ рд╕реМрд╡реАрдВ рдордВрдЬрд┐рд▓ рд╕реЗ рджреВрд░ рдлреЗрдВрдХ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡рд┐рдлрд▓рддрд╛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдк рдХреБрдЫ рдФрд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд░ рдкрд╛рдПрдВрдЧреЗ, рдЗрд╕рд▓рд┐рдП рдкрд╣рд▓реА рдордВрдЬрд┐рд▓ рд╕реЗ рд╢реБрд░реВ рдХрд░рдирд╛ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдлреЗрдВрдХ рдХреЗ рдмрд╛рдж рдПрдХ рдордВрдЬрд┐рд▓ рдкрд░ рдЬрд╛рдирд╛ рдЕрдзрд┐рдХ рддрд░реНрдХрд╕рдВрдЧрдд рд╣реИред рдЬрдм рддрдХ рдпрд╛ рддреЛ рдкреНрд░рдпрд╛рд╕ рдпрд╛ рдЕрдВрдбрд╛ рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддрд╛ред рдЕрдзрд┐рдХрддрдо рдЬрд╣рд╛рдВ рдЖрдк рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрджрд┐ рдЕрдВрдбрд╛ рд╡рд┐рдлрд▓ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рдордВрдЬрд┐рд▓ рд╕рдВрдЦреНрдпрд╛ 10. рдПрдл (1, рдПрдо) = рдПрдо

рджреВрд╕рд░рд╛ рдЕрдВрдбрд╛ рд▓реЗрдВ, рдлрд┐рд░ рд╕реЗ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рдЕрдм, рдлрд┐рд░ рдЖрдк рдПрдХ рд╕реМрд╡рд╛рдВ рдореМрдХрд╛ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ? рдпрджрд┐ рдпрд╣ рдЯреВрдЯрддрд╛ рд╣реИ, рддреЛ рдПрдХ рдФрд░ рдЕрдзрд┐рдХ рдФрд░ 9 рдкреНрд░рдпрд╛рд╕ рд╣реЛрдВрдЧреЗ, рдХрдо рд╕реЗ рдХрдо 9 рдордВрдЬрд┐рд▓реЗрдВ рдЧреБрдЬрд░ рд╕рдХреЗрдВрдЧреАред рддреЛ рд╢рд╛рдпрдж рдЖрдкрдХреЛ рд╕реМрд╡реЗрдВ рд╕реЗ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рджрд╕рд╡реЗрдВ рд╕реЗ рдЬреЛрдЦрд┐рдо рдЙрдард╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? рддрд╛рд░реНрдХрд┐рдХ рд╣реИред рдлрд┐рд░, рдпрджрд┐ рд╕рдлрд▓, 2 рдЕрдВрдбреЗ рдФрд░ 9 рдкреНрд░рдпрд╛рд╕ рд░рд╣реЗрдВрдЧреЗред рд╕рд╛рджреГрд╢реНрдп рд╕реЗ, рдЕрдм рдЖрдкрдХреЛ рдПрдХ рдФрд░ 9 рдордВрдЬрд┐рд▓реЛрдВ рддрдХ рдЬрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╕рдлрд▓рддрд╛рдУрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рд╕рд╛рде - рдПрдХ рдФрд░ 8, 7, 6, 5, 4, 3, 2 рдФрд░ 1. рдХреБрд▓, рд╣рдо рджреЛ рдкреВрд░реЗ рдЕрдВрдбреЗ рдХреЗ рд╕рд╛рде рдФрд░ рдмрд┐рдирд╛ рдХреЛрд╢рд┐рд╢ рдХрд┐рдП 55 рд╡реАрдВ рдордВрдЬрд┐рд▓ рдкрд░ рд╣реИрдВред рдЙрддреНрддрд░ рдкрд╣рд▓реЗ рд╕рджрд╕реНрдп 1 рдФрд░ рдЪрд░рдг 1. рдЪ (2, рдореА) = (рдПрдо * рдПрдо + рдПрдо) / 2 рдХреЗ рд╕рд╛рде рдЕрдВрдХрдЧрдгрд┐рддреАрдп рдкреНрд░рдЧрддрд┐ рдХреЗ рдкрд╣рд▓реЗ рдПрдо рд╕рджрд╕реНрдпреЛрдВ рдХрд╛ рдпреЛрдЧ рд╣реИред рдпрд╣ рднреА рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рдг рдореЗрдВ рдлрд╝рдВрдХреНрд╢рди f (1, m) рдХреЛ рдмреБрд▓рд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрднреА рддрдХ рд╕рдЯреАрдХ рдирд╣реАрдВ рд╣реИред

рддреАрди рдЕрдВрдбреЗ рдФрд░ рджрд╕ рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЗ рд╕рд╛рде рдЬрд╛рд░реА рд░рдЦреЗрдВред рдЕрд╕рдлрд▓ рдкрд╣рд▓реЗ рдлреЗрдВрдХрдиреЗ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ, 2 рдЕрдВрдбреЛрдВ рд╕реЗ рдврдХреА рд╣реБрдИ рдордВрдЬрд┐рд▓реЗрдВ рдФрд░ 9 рдкреНрд░рдпрд╛рд╕ рдиреАрдЪреЗ рд╕реЗ рдЖрдЪреНрдЫрд╛рджрд┐рдд рд╣реЛрдВрдЧреЗ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдкрд╣рд▓рд╛ рдлреЗрдВрдХ рдлрд░реНрд╢ рд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП f (2, 9) + 1. рдлрд┐рд░, рдпрджрд┐ рд╕рдлрд▓ рд╣реЛ, рддреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ 3 рдЕрдВрдбреЗ рдФрд░ 9 рдкреНрд░рдпрд╛рд╕ рд╣реИрдВред ред рдФрд░ рджреВрд╕рд░реЗ рдкреНрд░рдпрд╛рд╕ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдПрдХ рдФрд░ f (2.8) + 1 рдордВрдЬрд┐рд▓ рддрдХ рдЬрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдФрд░ рдЗрд╕реА рддрд░рд╣, рдЬрдм рддрдХ 3 рдЕрдВрдбреЗ рдФрд░ 3 рдкреНрд░рдпрд╛рд╕ рд╣рд╛рдереЛрдВ рдкрд░ рд░рд╣рддреЗ рд╣реИрдВред рдФрд░ рдлрд┐рд░ рдПрди = рдПрдо рдХреЗ рд╕рд╛рде рдорд╛рдорд▓реЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдХреЗ рд╡рд┐рдЪрд▓рд┐рдд рд╣реЛрдиреЗ рдХрд╛ рд╕рдордп рд╣реИ, рдЬрдм рдкреНрд░рдпрд╛рд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдХрдИ рдЕрдВрдбреЗ рд╣реИрдВред

рдФрд░ рдЙрд╕реА рд╕рдордп рдЬрдм рдЕрдзрд┐рдХ рдЕрдВрдбреЗ рд╣реЛрддреЗ рд╣реИрдВред
рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рд╣реИ - рдЙрди рд▓реЛрдЧреЛрдВ рд╕реЗ рдкрд░реЗ рдЕрдВрдбреЗ рдЬреЛ рддреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рдирд╣реАрдВ рд╣реЛрдВрдЧреЗ, рднрд▓реЗ рд╣реА рд╣рд░ рдлреЗрдВрдХ рдЕрд╕рдлрд▓ рд╣реЛред f (n, m) = f (m, m) рдпрджрд┐ n> m рдФрд░ рд╕рднреА рдореЗрдВ, 3 рдЕрдВрдбреЗ, 3 рдлреЗрдВрдХрддрд╛ рд╣реИред рдпрджрд┐ рдкрд╣рд▓рд╛ рдЕрдВрдбрд╛ рдЯреВрдЯрддрд╛ рд╣реИ, рддреЛ рдЖрдк рдиреАрдЪреЗ рддрдХ f (2, 2) рдлрд░реНрд╢ рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЕрдЧрд░ рдпрд╣ рдирд╣реАрдВ рдЯреВрдЯрддрд╛ рд╣реИ, рддреЛ рд╢реАрд░реНрд╖ рдкрд░ f (3,2) рдлрд░реНрд╢, рдпрд╛рдиреА рдПрдХ рд╣реА f (2, 2)ред рдХреБрд▓ рдПрдл (3, 3) = 2 * рдПрдл (2, 2) + 1 = 7. рдФрд░ рдПрдл (4, 4), рд╕рд╛рджреГрд╢реНрдп рджреНрд╡рд╛рд░рд╛, рджреЛ рдПрдл (3, 3) рдФрд░ рдПрдХ рд╕реЗ рдорд┐рд▓рдХрд░ рд╣реЛрдЧрд╛, рдФрд░ рдпрд╣ рд╣реЛрдЧрд╛ 15. рд╕рднреА рдпрд╣ рджреЛ рдХреА рд╢рдХреНрддрд┐рдпреЛрдВ рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ, рдФрд░ рд╣рдо рд▓рд┐рдЦрддреЗ рд╣реИрдВ: f (m, m) = 2 ^ m - 1 ред

рдпрд╣ рднреМрддрд┐рдХ рджреБрдирд┐рдпрд╛ рдореЗрдВ рдПрдХ рджреНрд╡рд┐рдЖрдзрд╛рд░реА рдЦреЛрдЬ рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ: рд╣рдо рдордВрдЬрд┐рд▓ рдирдВрдмрд░ 2 ^ (m-1) рд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рд╕рдлрд▓рддрд╛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣рдо 2 ^ (m-2) рдКрдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рд╡рд┐рдлрд▓рддрд╛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рдмрд╣реБрдд рдиреАрдЪреЗ рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдЬрдм рддрдХ рдкреНрд░рдпрд╛рд╕ рдЦрддреНрдо рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддреЗред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рд╣рд░ рд╕рдордп рдЙрдарддреЗ рд╣реИрдВред

рдЪрд▓реЛ рд╡рд╛рдкрд╕ рдПрдл (3, 10) рдкрд░ рдЬрд╛рдПрдВред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рдг рдкрд░, рдпрд╣ рд╕рднреА рд╕рдо f (2, m-1) рдХреЗ рдиреАрдЪреЗ рдЖрддрд╛ рд╣реИ - рд╡рд┐рдлрд▓рддрд╛ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рдЬрд╛ рд╕рдХрдиреЗ рд╡рд╛рд▓реА рдордВрдЬрд┐рд▓реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛, рдЗрдХрд╛рдЗрдпреЛрдВ рдФрд░ f (3, m-1) - рд╕рдлрд▓рддрд╛ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рдЬрд╛ рд╕рдХрдиреЗ рд╡рд╛рд▓реА рдордВрдЬрд┐рд▓реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ред рдФрд░ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЕрдВрдбреЗ рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╡реГрджреНрдзрд┐ рдФрд░ рдкреНрд░рдпрд╛рд╕реЛрдВ рд╕реЗ рдпрд╣ рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреБрдЫ рднреА рдмрджрд▓ рдЬрд╛рдПрдЧрд╛ред f (n, m) = f (n - 1, m - 1) + 1 + f (n, m - 1) ред рдФрд░ рдпрд╣ рдПрдХ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рд╕реВрддреНрд░ рд╣реИ рдЬрд┐рд╕реЗ рдХреЛрдб рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

from functools import lru_cache @lru_cache() def height(n,m): if n==0 or m==0: return 0 elif n==1: return m elif n==2: return (m**2+m)/2 elif n>=m: return 2**n-1 else: return height(n-1,m-1)+1+height(n,m-1) 

рдмреЗрд╢рдХ, рдкрд╣рд▓реЗ рдореИрдВрдиреЗ рдЧреИрд░-рдЬреНрдЮрд╛рдкрди рдкреБрдирд░рд╛рд╡рд░реНрддреА рдХрд╛рд░реНрдпреЛрдВ рдХреА рдЦрд╛рддрд┐рд░ рдХрджрдо рд░рдЦрд╛ рдФрд░ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдПрдл (10, 40) рдХреЙрд▓ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рд▓рдЧрднрдЧ 40 рд╕реЗрдХрдВрдб рд▓реЗрддрд╛ рд╣реИ - 97806983. рд▓реЗрдХрд┐рди рд╕рдВрд╕реНрдорд░рдг рднреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЕрдВрддрд░рд╛рд▓ рдкрд░ рд╣реА рдмрдЪрд╛рддрд╛ рд╣реИред рдпрджрд┐ f (200,400) 0.8 рд╕реЗрдХрдВрдб рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддрд╛ рд╣реИ, рддреЛ f (200, 500) рдкрд╣рд▓реЗ рд╕реЗ рд╣реА 31 рд╕реЗрдХрдВрдб рдореЗрдВ рд╣реИред рдпрд╣ рд╣рд╛рд╕реНрдпрд╛рд╕реНрдкрдж рд╣реИ рдХрд┐% рд╕рдордпрд╕реАрдорд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд░рдирдЯрд╛рдЗрдо рдХреЛ рдорд╛рдкрддреЗ рд╕рдордп, рдкрд░рд┐рдгрд╛рдо рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реЗ рдмрд╣реБрдд рдХрдо рд╣реЛрддрд╛ рд╣реИред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдкрд╣рд▓рд╛ рд░рди рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рдордп рд▓реЗрддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рдмрд╛рдХреА рдмрд╕ рдЗрд╕рдХреЗ рдЬреНрдЮрд╛рдкрди рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЭреВрда, рдЬрд╝рдмрд░рджрд╕реНрдд рдЭреВрда рдФрд░ рдЖрдВрдХрдбрд╝реЗред

рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд╣рдо рдЖрдЧреЗ рджреЗрдЦрддреЗ рд╣реИрдВ


рдЗрд╕рд▓рд┐рдП, рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, f (9477, 10000) рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореЗрд░реА рджрдпрдиреАрдп f (200, 500) рдЕрдм рд╕рд╣реА рд╕рдордп рдкрд░ рдлрд┐рдЯ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рддреЛ рдПрдХ рдФрд░ рдЙрдкрд╛рдп рд╣реИ, рдмрд┐рдирд╛ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЗ, рд╣рдо рдЗрд╕рдХреА рдЦреЛрдЬ рдЬрд╛рд░реА рд░рдЦреЗрдВрдЧреЗред рдореИрдВрдиреЗ рдХреБрдЫ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХреА рдЧрд┐рдирддреА рдХрд░рдХреЗ рдХреЛрдб рдХреЛ рдкреВрд░рдХ рдХрд┐рдпрд╛, рддрд╛рдХрд┐ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдЖрдЦрд┐рд░рдХрд╛рд░ рдЗрд╕рдореЗрдВ рд╡рд┐рдШрдЯрд┐рдд рд╣реЛ рдЧрдпрд╛ рд╣реИред 10 рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рд╣реБрдП:

f (3.10) = 7+ 1 * f (2.9) + 1 * f (2.8) + 1 * f (2.7) + 1 * f (2.6) + 1 * f (2) , 5) + 1 * f (2,4) + 1 * f (2,3) + 1 * f (3,3)
f (4.10) = 27+ 1 * f (2.8) + 2 * f (2.7) + 3 * f (2.6) + 4 * f (2.5) + 5 * f (2) , 4) + 6 * f (2,3) + 6 * f (3,3) + 1 * f (4,4)
f (5.10) = 55+ 1 * f (2.7) + 3 * f (2.6) + 6 * f (2.5) + 10 * f (2.4) + 15 * f (2) , 3) + 15 * f (3.3) + 5 * f (4.4) + 1 * f (5.5)
f (6.10) = 69+ 1 * f (2.6) + 4 * f (2.5) + 10 * f (2.4) + 20 * f (2.3) + 20 * f (3) , 3) + 10 * f (4.4) + 4 * f (5.5) + 1 * f (6.6)
f (7,10) = 55+ 1 * f (2,5) + 5 * f (2,4) + 15 * f (2,3) + 15 * f (3,3) + 10 * f (4) , 4) + 6 * f (5.5) + 3 * f (6.6) + 1 * f (7.7)
f (8,10) = 27+ 1 * f (2,4) + 6 * f (2,3) + 6 * f (3,3) + 5 * f (4,4) + 4 * f (5) , 5) + 3 * f (6.6) + 2 * f (7.7) + 1 * f (8.8)
f (9,10) = 7+ 1 * f (2,3) + 1 * f (3,3) + 1 * f (4,4) + 1 * f (5,5) + 1 * f (6) , 6) + 1 * f (7.7) + 1 * f (8.8) + 1 * f (9.9)

рдХреБрдЫ рдирд┐рдпрдорд┐рддрддрд╛ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ:



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

рдЙрдиреНрд╣реЛрдВрдиреЗ рдПрдХреНрд╕рд▓ рдЦреЛрд▓рд╛, рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдкреНрд▓реЗрдЯ рдмрдирд╛рдИ, рдФрд░ рдкреИрдЯрд░реНрди рдХреА рддрд▓рд╛рд╢ рд╢реБрд░реВ рдХреАред C3 = IF (C $ 2> $ B3; 2 ^ $ B3-1; C2 + B2 + 1), рдЬрд╣рд╛рдВ $ 2 рдЕрдВрдбреЗ рдХреА рд╕рдВрдЦреНрдпрд╛ (1-13) рдХреЗ рд╕рд╛рде рдкрдВрдХреНрддрд┐ рд╣реИ, $ B рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ (1-20) рдХреЗ рд╕рд╛рде рдХреЙрд▓рдо рд╣реИ рд╕реА 3 - рджреЛ рдЕрдВрдбреЗ рдФрд░ рдПрдХ рдкреНрд░рдпрд╛рд╕ рдХреЗ рдЪреМрд░рд╛рд╣реЗ рдкрд░ рд╕реЗрд▓ред



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

рддреБрдо рдирд╣реАрдВ


рдореБрдЭреЗ рдпрд╛рдж рд╣реИ рдХрд┐ рд╡рд╣рд╛рдБ NumPy рд╣реИ, рдЬрд┐рд╕реЗ рд╕рд┐рд░реНрдл рдмрд╣реБрдЖрдпрд╛рдореА рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдХреНрдпреЛрдВ рдирд╣реАрдВ рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛рдПрдВ? рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЖрдХрд╛рд░ N + 1 рдХреЗ рд╢реВрдиреНрдп рдХреЗ рдПрдХ-рдЖрдпрд╛рдореА рд╕рд░рдгреА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рдЖрдХрд╛рд░ N рдХреА рдЗрдХрд╛рдЗрдпреЛрдВ рдХреА рдПрдХ-рдЖрдпрд╛рдореА рд╕рд░рдгреА рд╣реИред рд╢реВрдиреНрдп рд╕реЗ рдкреНрд░рдердо рддрддреНрд╡ рддрдХ рд▓реЗ рдЬрд╛рдПрдВ, рдЗрд╕реЗ рдкрд╣рд▓реЗ рддрддреНрд╡ рд╕реЗ рдкрд╣рд▓реЗ рддрддреНрд╡ рд╕реЗ рдЕрдВрддрд┐рдо рддрдХ рддрддреНрд╡реЛрдВ рдХреЗ рд╕рд╛рде рдФрд░ рдЗрдХрд╛рдЗрдпреЛрдВ рдХреА рдПрдХ рд╕рд░рдгреА рдХреЗ рд╕рд╛рде рддрддреНрд╡рдкреВрд░реНрдг рдЬреЛрдбрд╝реЗрдВред рдкрд░рд┐рдгрд╛рдореА рд╕рд░рдгреА рдореЗрдВ, рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╢реВрдиреНрдп рдЬреЛрдбрд╝реЗрдВред рдПрдо рдмрд╛рд░ рджреЛрд╣рд░рд╛рдПрдВред рдкрд░рд┐рдгрд╛рдореА рд╕рд░рдгреА рдХрд╛ рддрддреНрд╡ рд╕рдВрдЦреНрдпрд╛ N рдЙрддреНрддрд░ рд╣реЛрдЧрд╛ред рдкрд╣рд▓реЗ 3 рдЪрд░рдг рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреЗ рд╣реИрдВ:



NumPy рдЗрддрдиреА рддреЗрдЬреА рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдкреВрд░реА рдореЗрдЬ рдХреЛ рдирд╣реАрдВ рдмрдЪрд╛рдпрд╛ рд╣реИ - рд╣рд░ рдмрд╛рд░ рдЬрдм рдореИрдВ рдЖрд╡рд╢реНрдпрдХ рдкрдВрдХреНрддрд┐ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрдврд╝рддрд╛ рд╣реВрдВред рдПрдХ рдмрд╛рдд - рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдЧрд▓рдд рдерд╛ред рдЙрдЪреНрдЪ рд░реИрдВрдХ рдЙрди рдЬреИрд╕реЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рдирд┐рдЪрд▓реЗ рд╡рд╛рд▓реЗ рдирд╣реАрдВ рд╣реИрдВред рдпрд╣ рд╣реИ рдХрд┐ рдХрдИ рдкрд░рд┐рд╡рд░реНрдзрди рд╕реЗ рд╕рдВрдЪрд┐рдд рдлреНрд▓реЛрдЯрд┐рдВрдЧ-рдкреЙрдЗрдВрдЯ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреА рдЕрдВрдХрдЧрдгрд┐рддреАрдп рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдХреИрд╕реА рджрд┐рдЦрддреА рд╣реИрдВред рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ - рдЖрдк рд╕рд░рдгреА рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рдЗрдВрдЯ рдореЗрдВ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдирд╣реАрдВ, рдкрд░реЗрд╢рд╛рдиреА - рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдЧрддрд┐ рдХреЗ рд▓рд┐рдП NumPy рдХреЗрд╡рд▓ рдЕрдкрдиреЗ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдХреЗ int, Python int рдХреЗ рд╡рд┐рдкрд░реАрдд, 2 ^ 64-1 рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдпрд╣ рдЪреБрдкрдЪрд╛рдк рдУрд╡рд░рдлреНрд▓реЛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ -2 ^ 64 рддрдХ рдЬрд╛рд░реА рд░рд╣рддрд╛ рд╣реИред рдФрд░ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рддреАрди рд╣рдЬрд╛рд░ рдкрд╛рддреНрд░реЛрдВ рдХреЗ рддрд╣рдд рд╕рдВрдЦреНрдпрд╛ рдХреА рдЙрдореНрдореАрдж рдХрд░рддрд╛ рд╣реВрдВред рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рддреЗрдЬреА рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, f (9477, 10000) 233 рдПрдордПрд╕ рдЪрд▓рд╛рддрд╛ рд╣реИ, рдпрд╣ рд╕рд┐рд░реНрдл рдЖрдЙрдЯрдкреБрдЯ рдкрд░ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рдмрдХрд╡рд╛рд╕ рдХрд░рддрд╛ рд╣реИред рдореИрдВ рдХреЛрдб рднреА рдирд╣реАрдВ рджреВрдВрдЧрд╛, рдЪреВрдВрдХрд┐ рдРрд╕реА рдмрд╛рдд рд╣реИред рдореИрдВ рдПрдХ рд╣реА рд╕реНрд╡рдЪреНрдЫ рдЕрдЬрдЧрд░ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред

Iterated, iterated, рд▓реЗрдХрд┐рди рдкреБрдирд░рд╛рд╡реГрддреНрдд рдирд╣реАрдВ


 def height(n, m): arr = [0]*(n+1) while m > 0: arr = [0] + list(map(lambda x,y: x+y+1, arr[:-1], arr[1:])) m-=1 return arr[n] 

F (9477, 10000) рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 44 рд╕реЗрдХрдВрдб рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рд╣реИред рд▓реЗрдХрд┐рди рдмрд┐рд▓реНрдХреБрд▓ рдкрдХреНрдХрд╛ред рдХреНрдпрд╛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ? рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╡рд┐рдХрд░реНрдг рдПрдо рдХреЗ рдЕрдзрд┐рдХрд╛рд░ рдХреЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдПрдоред рджреВрд╕рд░рд╛ - рдПрдХ рд╕реЗрд▓ рдХреА рдЦрд╛рддрд┐рд░, рдЖрдЦрд┐рд░реА рд╕рд░рдгреА рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдЗрд╕рдХреЗ рд▓рд┐рдП, рдкрд┐рдЫрд▓реЗ рдПрдХ рдХреЗ рджреЛ рджреЛ рд╕реЗрд▓ рдлрд┐рдЯ рд╣реЛрдВрдЧреЗред рдЪ (10, 20) рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреЗрд╡рд▓ рдпреЗ рдЧреНрд░реЗ рдХреЛрд╢рд┐рдХрд╛рдПрдВ рд╣реА рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдВрдЧреА:



рдФрд░ рдЗрд╕рд▓рд┐рдП рдпрд╣ рдХреЛрдб рдореЗрдВ рджрд┐рдЦрддрд╛ рд╣реИ:

 def height(n, m): arr = [0, 1, 1] i = 1 while i < n and i < mn: #    m,m arr = [0] + list(map(lambda x,y: x+y+1, arr[:-1], arr[1:])) arr += [arr[-1]] i+=1 arr.pop(-1) while i < n or i < mn: #        arr = list(map(lambda x,y: x+y+1, arr[:-1], arr[1:])) arr = arr + [arr[-1]+1] if n > len(arr) else [0] + arr i+=1 while i < m: # ,     -  arr = list(map(lambda x,y: x+y+1, arr[:-1], arr[1:])) i+=1 return arr[0] 

рдФрд░ рдЖрдкрдХреЛ рдХреНрдпрд╛ рд▓рдЧрддрд╛ рд╣реИ? f (9477, 10000) 2 рд╕реЗрдХрдВрдб рдореЗрдВ! рд▓реЗрдХрд┐рди рдпрд╣ рдЗрдирдкреБрдЯ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ, рдХрд┐рд╕реА рднреА рд╕реНрддрд░ рдкрд░ рд╕рд░рдгреА рдХреА рд▓рдВрдмрд╛рдИ 533 рддрддреНрд╡реЛрдВ (10000-9477) рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реЛрдЧреАред рдЪрд▓реЛ рдПрдл (5477, 10000) рдкрд░ рдЬрд╛рдВрдЪ рдХрд░реЗрдВ - 11 рд╕реЗрдХрдВрдбред рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ 44 рд╕реЗрдХрдВрдб рдХреА рддреБрд▓рдирд╛ рдореЗрдВ - рдЗрд╕ рд╕рдордп рдХреЗ рд╕рд╛рде рдмреАрд╕ рдкрд░реАрдХреНрд╖рдг рдкрд╛рд╕ рдирд╣реАрдВ рд╣реЛрдВрдЧреЗред

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

рд╡рд╛рд░реНрдорд░




рдмрд╛рд╣, рдкрд░рд┐рдЪрд┐рдд рд╕рдВрдЦреНрдпрд╛! рдпрд╣реА рд╣реИ, рдкрдВрдХреНрддрд┐ рд╕рдВрдЦреНрдпрд╛ M рдореЗрдВ рдЗрди рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХрд╛ рдпреЛрдЧ N рдпрд╣ рдЙрддреНрддрд░ рд╣реИ? рд╕рдЪ рд╣реИ, рдЙрдиреНрд╣реЗрдВ рдЧрд┐рдирдирд╛ рд▓рдЧрднрдЧ рдЙрд╕реА рддрд░рд╣ рд╣реИ рдЬреИрд╕рд╛ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдХрд┐рдпрд╛ рдерд╛, рдпрд╣ рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕рд╕реЗ рдХрд╛рдо рдореЗрдВ рддреЗрдЬреА рдЖрдПрдЧреАред рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:

f (9477, 10000): 17 рд╕реЗрдХрдВрдб
 def height(n, m): arr = [1,1] while m > 1: arr = [1] + list(map(lambda x,y: x+y, arr[1:], arr[:-1])) + [1] m-=1 return sum(arr[1:n+1]) 


рдпрд╛ 8, рдпрджрд┐ рдЖрдк рдХреЗрд╡рд▓ рдЖрдзрд╛ рддреНрд░рд┐рдХреЛрдг рдЧрд┐рдирддреЗ рд╣реИрдВ
 def height(n, m): arr = [1,1] while m > 2 and len(arr) < n+2: #    ,  n <  arr = [1] + list(map(lambda x,y: x+y, arr[1:], arr[:-1])) arr = [1] + list(map(lambda x,y: x+y, arr[1:], arr[:-1])) arr += [arr[-1]] m-=2 while m > 1: arr = [1] + list(map(lambda x,y: x+y, arr[1:], arr[:-1])) m-=1 if len(arr) < n+1: arr += arr[::-1][1:] #  n   ,   return sum(arr[1:n+1]) 


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

рдмрд┐рдВрдЧреЛ!


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

рдПрдХ рдордирдорд╛рдирд╛ рджреНрд╡рд┐рдкрдж рдЧреБрдгрд╛рдВрдХ рдХреА рдЧрдгрдирд╛ рдкрдВрдХреНрддрд┐ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдЧреБрдгрд╛рдВрдХ рдФрд░ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдЧреБрдгрд╛рдВрдХ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ: bk = m! / (N! * (Mn!))ред рд▓реЗрдХрд┐рди рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреА рдЧрдгрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рдХреА рд╕рдВрдЦреНрдпрд╛ рдФрд░ рд╢реВрдиреНрдп рдЧреБрдгрд╛рдВрдХ (рд╣рдореЗрд╢рд╛ рдПрдХ): bk [n] = bk [n-1] * (m - n + 1) / n рдЬрд╛рдирддреЗ рд╣реБрдПред рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рдг рдкрд░, рдЕрдВрд╢ рдПрдХ рд╕реЗ рдШрдЯрддрд╛ рд╣реИ, рдФрд░ рд╣рд░ рдмрдврд╝рддрд╛ рд╣реИред рдФрд░ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЕрдВрддрд┐рдо рд╕рдорд╛рдзрд╛рди рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

 def height(n, m): h, bk = 0, 1 #      for i in range(1, n + 1): bk = bk * m // ih += bk m-=1 return h 

33 рдПрдордПрд╕ f (9477, 10000) рдХреА рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП! рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХреЛ рднреА рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рджреА рдЧрдИ рд╕реАрдорд╛рдУрдВ рдореЗрдВ рдФрд░ рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ n рддреНрд░рд┐рднреБрдЬ рдХреА рджреВрд╕рд░реА рдЫрдорд╛рд╣реА рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИ, рддреЛ рд╣рдо рдЗрд╕реЗ mn рдореЗрдВ рдЙрд▓реНрдЯрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдкрд╣рд▓реЗ n рдЧреБрдгрд╛рдВрдХ рдХреА рд░рд╛рд╢рд┐ рдХреА рдЧрдгрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ 2 ^ m-2 рд╕реЗ рдШрдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ n рдордзреНрдп рдХреЗ рдХрд░реАрдм рд╣реИ рдФрд░ m рд╡рд┐рд╖рдо рд╣реИ, рддреЛ рдЧрдгрдирд╛рдУрдВ рдХреЛ рднреА рдХрдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: рдкрдВрдХреНрддрд┐ рдХреЗ рдкрд╣рд▓реЗ рдЖрдзреЗ рдХрд╛ рдпреЛрдЧ 2 ^ (m-1) -1 рд╣реЛрдЧрд╛, рдкрд╣рд▓реЗ рдЫрдорд╛рд╣реА рдореЗрдВ рдЕрдВрддрд┐рдо рдЧреБрдгрд╛рдВрдХ рдХреЛ рднрд╛рдЬреНрдп рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЧрдгрдирд╛ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ, рдЗрд╕рдХреА рд╕рдВрдЦреНрдпрд╛ (m-1) / рд╣реИ 2, рдФрд░ рдлрд┐рд░ рдпрд╛ рддреЛ рдЧреБрдгрд╛рдВрдХ рдЬреЛрдбрд╝рдирд╛ рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВ рдпрджрд┐ n рддреНрд░рд┐рдХреЛрдг рдХреЗ рджрд╛рд╣рд┐рдиреЗ рдЖрдзреЗ рд╣рд┐рд╕реНрд╕реЗ рдореЗрдВ рд╣реИ, рдпрд╛ рдпрджрд┐ рдмрд╛рдИрдВ рдУрд░ рдШрдЯрд╛рдирд╛ рд╣реИред рдпрджрд┐ рдореА рд╕рдо рд╣реИ, рддреЛ рдЖрдк рдкрдВрдХреНрддрд┐ рдХрд╛ рдЖрдзрд╛ рднрд╛рдЧ рдирд╣реАрдВ рдЧрд┐рди рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдк рдкрд╣рд▓реЗ рдПрдо / 2 + 1 рдЧреБрдгрд╛рдВрдХреЛрдВ рдХрд╛ рдпреЛрдЧрдлрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ рдлреИрдХреНрдЯрд░рд┐рдпрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдФрд╕рдд рдХреА рдЧрдгрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдХрд╛ рдЖрдзрд╛ рднрд╛рдЧ 2 ^ (рдПрдо -1) -1 рдореЗрдВ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред 10 ^ 6 рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдкрд░, рдпрд╣ рдмрд╣реБрдд рд╣реА рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд╕рдордп рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИред

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

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


All Articles