
рдЬрд╛рдкрд╛рдиреА рдХреНрд░реЙрд╕рд╡рд░реНрдб рдПрдХ рдкреНрд░рд╕рд┐рджреНрдз рдкрд╣реЗрд▓реА рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрддреНрддрд░ рдбреНрд░рд╛рдЗрдВрдЧ рд╣реИред рдпрд╣ рдХреНрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдХреИрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдП, рдЖрдк
рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рдкрд░ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВ рдпрд╣ рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреИрд╕реЗ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдПрдХ рдЬрд╛рдкрд╛рдиреА рдкрд╣реЗрд▓реА рдкрд╣реЗрд▓реА рдХреЛ рд╡реБрд▓реНрдлрд░рд╛рдо
рдореИрдердореЗрдЯрд┐рдХрд╛ рдореЗрдВ рдЧрдгрдирд╛ рджреНрд╡рд╛рд░рд╛ рд╣рд▓ рдХрд░реЗрдЧрд╛ред
рдореБрдЦреНрдп рд╡рд┐рдЪрд╛рд░
рдмреНрд░реВрдЯ рдлреЛрд░реНрд╕ рд╕реЙрд▓реНрдпреВрд╢рди рдХрд╛ рд╡рд┐рдЪрд╛рд░ рд╕рднреА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдФрд░ рд╕реНрддрдВрднреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рд╕реЗрд▓ рд╕реНрдерд╛рдиреЛрдВ рдХреА рд╕реВрдЪреА рдмрдирд╛рдирд╛ рд╣реИред рдЙрд╕рдХреЗ рдмрд╛рдж, рдкреНрд░рд╛рдкреНрдд рд╕реВрдЪрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЙрди рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдЦреЛрдЬреЗрдВ рдЬрд┐рдирдХреА рдЬрд╛рдирдХрд╛рд░реА рд╕рд╣реА рд░реВрдк рд╕реЗ рдЬреНрдЮрд╛рдд рд╣реЛрдЧреАред рдлрд┐рд░ рд╣рдордиреЗ рдРрд╕реЗ рд╕реНрдерд╛рдиреЛрдВ рдХреЛ рдЦреЛрдЬрд╛ рдЬреЛ рдЬрд╛рдирдХрд╛рд░реА рдорд┐рд▓реА рдХреЗ рд╡рд┐рдкрд░реАрдд рд╣реИред рд╕рд╣рдЬ рд░реВрдк рд╕реЗ, рдпрджрд┐ рдЖрдк рдкрд┐рдЫрд▓реЗ рджреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдЪрдХреНрд░реАрдп рд░реВрдк рд╕реЗ рджреЛрд╣рд░рд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдХрд┐рд╕реА рднреА рд╕реЗрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдХрд╛рд░реНрдп рдХреЛ рддреАрди рдЙрдк-рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
- рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рд╕реНрдерд╛рдиреЛрдВ рдХрд╛ рд╕рдВрдХрд▓рдиред
- рднрд░реА рд╣реБрдИ рдФрд░ рдЕрдзреВрд░реА рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреА рдЦреЛрдЬ рдХрд░реЗрдВред
- рдкрд░рд╕реНрдкрд░ рд╡рд┐рд░реЛрдзреА рд╕реНрдерд╛рдиреЛрдВ рдХреЛ рд╣рдЯрд╛рдирд╛ред
рдЪреВрдВрдХрд┐ рд╡реБрд▓реНрдлреНрд░рд╛рдо
рдореИрдердореЗрдЯрд┐рдХрд╛ рдХреЛ рд╕реВрдЪрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛
рдЧрдпрд╛ рдерд╛ , рдЗрд╕рд▓рд┐рдП рд╕реЗрд▓ рд╕реНрдерд╛рдиреЛрдВ рдХреЛ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рд╕реВрдЪрд┐рдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд╣рдо рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдирд┐рд░реВрдкрд┐рдд рдХрд░реЗрдВрдЧреЗ:
- 1 - рднрд░рд╛ рд╣реБрдЖ рд╕реЗрд▓;
- 0 - рдЕрдирдлрд╝рд┐рд▓реНрдб рд╕реЗрд▓;
- * - рдПрдХ рд╕реЗрд▓ рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рднреА рдкрддрд╛ рдирд╣реАрдВ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдиреАрдЪреЗ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреА рд╕рдордХрдХреНрд╖ рд╕реВрдЪреА рдФрд░ рд╡реНрдпрд╡рд╕реНрдерд╛ рджрд┐рдЦрд╛рдИ рдЧрдИ рд╣реИ:
рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рд╕реНрдерд╛рдиреЛрдВ рдХрд╛ рд╕рдВрдХрд▓рди
рд╕рд┐рджреНрдзрд╛рдВрдд рдХреА рдмрд┐рдЯ
рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рдРрд╕реЗ рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕реНрдерд╛рди рдвреВрдВрдврдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ:
рдЗрдирдореЗрдВ рд╕реЗ рдПрдХ рд╕реНрдерд╛рди рдКрдкрд░ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред
рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рд╕реНрдерд╛рдиреЛрдВ рд╕реЗ рдХреИрд╕реЗ рдЫрд╛рдБрдЯреЗрдВ?
рдЪрд▓реЛ рдЗрд╕реЗ рдЕрдЧрд▓реЗ рддрд░реАрдХреЗ рд╕реЗ рдХрд░рддреЗ рд╣реИрдВред рдЖрдЗрдП рд╣рдо рдХрдХреНрд╖реЛрдВ рдХреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдореВрд╣реЛрдВ рдХреЛ
рдХреБрдВрдЬреА (рдлрд╝реАрд▓реНрдб рдХреЗ рдмрд╛рдИрдВ рдУрд░ рд╕реНрдерд┐рдд):
{{1,0}, {1,1,0}, {1,1,1}}
ред рдЕрдм рдПрдХ рд╕реВрдЪреА рдмрдирд╛рдПрдВ рдЬреЛ рдЙрди рд╕реНрдерд╛рдиреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░реЗрдЧрд╛ рдЬрд╣рд╛рдВ рд╣рдо рдЗрди рд╕рдореВрд╣реЛрдВ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░реЗрдВрдЧреЗред рдЙрди рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рдЬрд╣рд╛рдВ рд╣рдо рдЗрди рд╕рдореВрд╣реЛрдВ рдХреЛ рд░рдЦреЗрдВрдЧреЗ, рд╣рдо рд╢реВрдиреНрдп рд╕реНрдЯреЛрд░ рдХрд░реЗрдВрдЧреЗред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдореЗрдВ рд╕реНрдерд╛рдиреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдорд┐рд▓рддреА рд╣реИ
{0,0,0,0,0}
ред рдкреНрд░рд╛рдкреНрдд рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рд╕рднреА рд╕рд╛рдзрдиреЛрдВ рдХреЗ рдХреНрд░рдо рдореЗрдВ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рд╕рдореВрд╣реЛрдВ рдХреА рд╡реНрдпрд╡рд╕реНрдерд╛ рдХрд░рдирд╛, рдпрд╣ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ рдХрд┐ рд╣рдо рдХрд╛рд░реНрдп рд╕реЗ рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рд╡реНрдпрд╡рд╕реНрдерд╛рдПрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рд╕рдореВрд╣реЛрдВ рдХреЛ рдХреНрд░рдорд╛рдВрдХ 1, 3, 4 рдХреЗ рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдКрдкрд░ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд╛ рдорд┐рд▓ рдЬрд╛рдПрдЧреАред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рд╕рднреА рд╕реНрдерд╛рди рд╕рдореВрд╣реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╕реНрдерд╛рдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ
рд╕рдВрдпреЛрдЬрди рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИрдВред рд╕рдореВрд╣реЛрдВ рдХреЛ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рддрд░рд╣ рд╕реЗ рд╕реНрдерд╛рдиреЛрдВ рдХреЛ рдЪреБрдирдирд╛, рд╣рдореЗрдВ рд╕рдВрднрд╛рд╡рд┐рдд рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдорд┐рд▓рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рд╕реЗ рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП, рд╕реНрдерд╛рдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рджрд╕ рд╣реИред
рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рд▓рд┐рдП "рдЕрдВрддрд┐рдо рд╕рдореВрд╣ рдореЗрдВ рдХреЛрдИ рд╢реВрдиреНрдп рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╣реИ?" рдФрд░ "рдЖрдЦрд┐рд░рдХрд╛рд░ рдкрд╛рдВрдЪ рд╕реАрдЯреЗрдВ рдХреНрдпреЛрдВ рд╣реИрдВ?" рдЬрд╛рдЧрд░реВрдХ рдкрд╛рдардХ рдХреЛ рдЦреБрдж рдЬрд╡рд╛рдм рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди
рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреА рдХреЛрдИ рдЦрд╝рд╛рд╕ рдЗрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИ, рдЬреЛ рдХрд┐ рдмрд╣реБрдд рд╣реА
Subsets[list, {n}]
рд╣реЛ, рдХреНрдпреЛрдВрдХрд┐
рдореИрдереЗрдореЗрдЯрд┐рдХрд╛ рдореЗрдВ рдПрдХ рдмрд┐рд▓реНрдЯ-рдЗрди рдлрд╝рдВрдХреНрд╢рди
Subsets[list, {n}]
рдЬреЛ рдРрд╕рд╛ рдХрд░реЗрдЧрд╛ред рдпрд╣ рд╕реВрдЪреА
list
рдХреЛ рддрддреНрд╡реЛрдВ рдХреЗ рдПрдХ рд╕реЗрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдФрд░ рд╕рдВрдЦреНрдпрд╛
n
рдХреЛ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрддрд╛ рд╣реИ рдФрд░ рд▓рдВрдмрд╛рдИ
n
рдХреА рд╕реЗрдЯ
list
рд╕рдмрд╕реЗрдЯ рдХреА рд╕реВрдЪреА рджреЗрддрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рднреА рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рдЗрд╕реЗ рдкреБрдирд░рд╛рд╡реГрддреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрд╕ рддрд░рд╣ рд╣реЛрдЧрд╛:
In := Subsets[{1,2,3,4,5}, {3}]
Out = {{1,2,3}, {1,2,4}, {1,2,5}, {1,3,4}, {1,3,5}, {1,4,5}, {2,3,4}, {2,3,5}, {2,4,5}, {3,4,5}}
рдЕрдм рд╣рдо рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦреЗрдВрдЧреЗ, рдЬреЛ рдПрдХ рд╕рдВрдЦреНрдпрд╛ рд▓реЗрдЧрд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдлрд╝реАрд▓реНрдб рдХреА рд▓рдВрдмрд╛рдИ -
10
) рдФрд░ рдПрдХ рд╕реВрдЪреА (
clue
рдХреБрдВрдЬреА, рдЙрджрд╛рд╣рд░рдг рдХреЗ рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП -
{1,2,3}
) рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдФрд░ рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рд╕реНрдерд╛рдиреЛрдВ рдХреА рд╕реВрдЪреА рд▓реМрдЯрд╛рдПрдВред рд╣рдо рд╕рдм рдХреБрдЫ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдХрд░реЗрдВрдЧреЗред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рдПрдВ рдЬреЛ рдПрдХ рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдЗрдХрд╛рдЗрдпреЛрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рдмрджрд▓ рджреЗрддрд╛ рд╣реИред рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдлрд╝рдВрдХреНрд╢рди
ConstantArray[c, n]
;
c
рд╡рд╣ рддрддреНрд╡ рд╣реИ рдЬреЛ рд╕реВрдЪреА рдХреЛ рдкреЙрдкреНрдпреБрд▓реЗрдЯ рдХрд░рддрд╛ рд╣реИ, рдФрд░
n
рдЗрд╕ рд╕реВрдЪреА рдХреА рд▓рдВрдмрд╛рдИ рд╣реИред
In := ConstantArray[1, 2]
Out = {1, 1}
рдЗрд╕рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ рдЗрд╕ рд╕реВрдЪреА рдХреЗ рдЕрдВрдд рдореЗрдВ рд╢реВрдиреНрдп рд╕рдВрд▓рдЧреНрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣
Append[expr, elem]
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкрд╣рд▓рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдПрдХ рд╕реВрдЪреА рд╣реИ, рджреВрд╕рд░рд╛ рд╡рд╣ рд╣реИ рдЬреЛ рд╣рдо рд╕рдВрд▓рдЧреНрди рдХрд░реЗрдВрдЧреЗред
In := Append[{1, 1}, 0]
Out = {1, 1, 0}
рд╣рдо рдЗрди рджреЛ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдПрдХ рд╢реБрджреНрдз рдлрд╝рдВрдХреНрд╢рди рдЬреИрд╕реЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдореЗрдВ рдЗрдХрдЯреНрдард╛ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕реЗ рджреЛ рддрд░реАрдХреЛрдВ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
Function[arg, Append[ConstantArray[1, arg], 0]
, рдпрд╛ рдЗрд╕рд╕реЗ рдХрдо,
Append[ConstantArray[1, #], 0]&
ред
рдЕрдм рдпрд╣ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╕реВрдЪреА рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдкрд░ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдмрд╛рдХреА рд╣реИ рдЬреЛ рдХреБрдВрдЬреА рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА
Map[f, expr]
рдлрд╝рдВрдХреНрд╢рди рд╣реИред рдпрд╣
expr
рд╕реВрдЪреА рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рдлрдВрдХреНрд╢рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рдЙрд╕рдХреЗ рдкрд╛рд╕ рдПрдХ рдЫреЛрдЯрд╛ рд╡рд┐рдХрд▓реНрдк рднреА рд╣реИ:
f /@ expr
ред
In := Append[ConstantArray[1, #], 0]& /@ {1, 2, 3}
Out = {{1,0}, {1,1,0}, {1,1,1,0}}
рдпрд╣ рдХреЗрд╡рд▓ рдЕрдВрддрд┐рдо рд╕рдореВрд╣ рд╕реЗ рд╢реВрдиреНрдп рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИред рдпрд╣рд╛рдВ
Delete[expr, {i, j}]
рдлрдВрдХреНрд╢рди рдорджрдж рдХрд░реЗрдЧрд╛ред рдпрд╣ рдЗрдВрдбреЗрдХреНрд╕
{i, j}
рд╕рд╛рде
expr
рд╕реВрдЪреА рд╕реЗ рдЖрдЗрдЯрдо рдХреЛ рд╣рдЯрд╛ рджреЗрдЧрд╛ред рдпрд╣ рдордд рднреВрд▓реЛ рдХрд┐ рдЕрдВрддрд┐рдо рддрддреНрд╡ рдореЗрдВ -1 рдХрд╛ рд╕реВрдЪрдХрд╛рдВрдХ рд╣реИред
In := Delete[{{1,0}, {1,1,0}, {1,1,1,0}}, {-1, -1}]
Out = {{1,0}, {1,1,0}, {1,1,1}}
рд╕рднреА рдПрдХ рд╕рд╛рде рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
In := groups = Delete[Append[ConstantArray[1, #], 0]& /@ clue, {-1, -1}]
Out = {{1,0}, {1,1,0}, {1,1,1}}
рд╕реНрдерд╛рдиреЛрдВ рдХреА рд╕реВрдЪреА рдХреЗ рд╕рд╛рде рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдореЗрдВ
Total[list]
рдлрд╝рдВрдХреНрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдЬреЛ рд╕реВрдЪреА
list
рдХреЗ рддрддреНрд╡реЛрдВ рдХреЛ рд╕рд╛рд░рд╛рдВрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред
In := positions = ConstantArray[0, len - Total[clue] + 1]
Out = {0,0,0,0,0}
рдЕрдм рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд
Subsets
рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред рд╕рд╛рде рд╣реА, рд╣рдореЗрдВ
Range[n]
рдлрд╝рдВрдХреНрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬреЛ рд╕реВрдЪреА
{1, 2, ..., n}
рдФрд░
Length[list]
рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рдЬреЛ рд╕реВрдЪреА рдХреА рд▓рдВрдмрд╛рдИ рджреЗрддрд╛ рд╣реИред
In := sub = Subsets[Range[len - Total[clue] + 1], {Length[clue]}]
Out = {{1,2,3}, {1,2,4}, {1,2,5}, {1,3,4}, {1,3,5}, {1,4,5}, {2,3,4}, {2,3,5}, {2,4,5}, {3,4,5}}
рд╣рдореЗрдВ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рд╕рдореВрд╣реЛрдВ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдиреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдорд┐рд▓реАред рдЕрдм рд╣рдо рд╡реНрдпрд╡рд╕реНрдерд╛ рд╕реЗ рдирд┐рдкрдЯреЗрдВрдЧреЗред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ
ReplacePart[expr, i->new]
рдлрд╝рдВрдХреНрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдпрд╣ рддрддреНрд╡ рдХреЛ
new
рддрддреНрд╡ рдХреЗ рд╕рд╛рде
expr
рд╕реВрдЪреА рдореЗрдВ рдирдВрдмрд░
i
рд╕рд╛рде рдмрджрд▓ рджреЗрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ, рд╣рдореЗрдВ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреА рдПрдХ рд╕реВрдЪреА рдорд┐рд▓рддреА рд╣реИ, рддрд╛рдХрд┐ рдмрд╛рдж рдореЗрдВ рдХреЛрдб рд▓рд┐рдЦрдирд╛ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛред
MapThread[f, {a
рдлрд╝рдВрдХреНрд╢рди
MapThread[f, {a
1 , a
2 , ...}, {b
1 , b
2 , ...}]
рд╣рдореЗрдВ рдРрд╕рд╛ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ред рдЗрд╕рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реЛрдЧрд╛:
{f[a
1 , b
1 ], f[a
2 , b
2 ], ...}
ред рдЗрд╕рд▓рд┐рдП, рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреА рдПрдХ рд╕реВрдЪреА рдмрдирд╛рдПрдВ:
In := rep = MapThread[Function[{x, y}, x->y], {#, groups}]& /@ sub
Out = {{1->{1,0}, 2->{1,1,0}, 3->{1,1,1}}, {1->{1,0}, 2->{1,1,0}, 4->{1,1,1}}, {1->{1,0}, 2->{1,1,0}, 5->{1,1,1}}, {1->{1,0}, 3->{1,1,0}, 4->{1,1,1}}, {1->{1,0}, 3->{1,1,0}, 5->{1,1,1}}, {1->{1,0}, 4->{1,1,0}, 5->{1,1,1}}, {2->{1,0}, 3->{1,1,0}, 4->{1,1,1}}, {2->{1,0}, 3->{1,1,0}, 5->{1,1,1}}, {2->{1,0}, 4->{1,1,0}, 5->{1,1,1}}, {3->{1,0}, 4->{1,1,0}, 5->{1,1,1}}}
рдкреВрд░реЗ рдЙрдкрдХреНрд░рдо рдХрд╛ рд╕рдорд╛рдкрди рдЕрдкрдиреЗ рд╕реНрдерд╛рди рдкрд░ рдПрдХ рд╡реНрдпрд╡рд╕реНрдерд╛ рд╣реИред рдпрд╣рд╛рдБ рд╣рдо
Flatten[list]
, рдЬреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЛрд╖реНрдардХ рд╣рдЯрд╛рддрд╛ рд╣реИ:
In := all = Flatten[ReplacePart[positions, #]]& /@ rep
Out = {{1,0,1,1,0,1,1,1,0,0}, {1,0,1,1,0,0,1,1,1,0}, {1,0,1,1,0,0,0,1,1,1}, {1,0,0,1,1,0,1,1,1,0}, {1,0,0,1,1,0,0,1,1,1}, {1,0,0,0,1,1,0,1,1,1}, {0,1,0,1,1,0,1,1,1,0}, {0,1,0,1,1,0,0,1,1,1}, {0,1,0,0,1,1,0,1,1,1}, {0,0,1,0,1,1,0,1,1,1}}
рд╡рд╣ рд╕рдм, рд╕рднреА рдирдХреНрд╖рддреНрд░ рдкреНрд░рд╛рдкреНрдд рд╣реИрдВред рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдЗрди рд╕рднреА рдХреЛ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╣рддрд╛ рд╣реИ рдФрд░ рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдлрд╝рдВрдХреНрд╢рди рдорд┐рд▓реЗрдЧрд╛ред
allPositions[len_, clue_] :=
Module[{groups, positions, sub, rep, all},
groups = Delete[Append[ConstantArray[1, #], 0]& /@ clue, {-1, -1}];
positions = ConstantArray[0, len - Total[clue] + 1];
sub = Subsets[Range[len - Total[clue] + 1], {Length[clue]}];
rep = MapThread[Function[{x, y}, x->y], {#, groups}]& /@ sub;
all = Flatten[ReplacePart[positions, #]]& /@ rep;
Return[all];]
рднрд░реА рд╣реБрдИ рдФрд░ рдЕрдзреВрд░реА рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреА рдЦреЛрдЬ рдХрд░реЗрдВ
рдЕрдм, рдЗрд╕ рд╕рднреА рдЕрдЪреНрдЫреЗ рдХреЗ рдмреАрдЪ рдЬреЛ рд╣рдо рдЕрдкрдиреЗ рдХрд╛рд░реНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд╣рдореЗрдВ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдирд┐рдХрд╛рд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдорд╛рди рд▓реАрдЬрд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреБрдЫ рд╕реНрдерд╛рдиреЛрдВ рдХреА рд╕реВрдЪреА рд╣реИред рдпрджрд┐ рдХреЛрдИ рдРрд╕рд╛ рд╕реНрдерд╛рди рд╣реИ рдЬрд╣рд╛рдВ рд╕рднреА рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ 1 рдпрд╛ 0 рд╣реИ, рддреЛ рдпрд╣ рд╣рдореЗрдВ рдпрд╣ рджрд╛рд╡рд╛ рдХрд░рдиреЗ рдХрд╛ рдЕрдзрд┐рдХрд╛рд░ рджреЗрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ
рд╣рдореЗрд╢рд╛ рднрд░рд╛ рд╣реБрдЖ рдпрд╛ рдХреНрд░рдорд╢рдГ, рдЕрдирдлрд╝рд┐рд▓реНрдб рд╕реЗрд▓ рд╣реЛрдЧрд╛ред рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдРрд╕рд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рд╕рд░рд▓рддрдо рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИ: рд╕рднреА рд╕реНрдерд╛рдиреЛрдВ рдХреЛ рддрддреНрд╡ рджреНрд╡рд╛рд░рд╛ рд╕рдВрдХреНрд╖реЗрдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдпрд╛ рддреЛ рд╕рднреА рд╕реНрдерд╛рдиреЛрдВ рдпрд╛ рд╢реВрдиреНрдп рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдмрд░рд╛рдмрд░ рд╕рдВрдЦреНрдпрд╛ рдкрд░рд┐рдгрд╛рдореА рд╕реВрдЪреА рдореЗрдВ рдЦреЛрдЬреА рдЧрдИ рд╣реИрдВред рдкрд╣рд▓реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпреЗ рд╕рдВрдЦреНрдпрд╛ рдЗрдХрд╛рдЗрдпреЛрдВ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддреА рд╣реИ, рдФрд░ рджреВрд╕рд░реЗ рдореЗрдВ, рд╢реВрдиреНрдп рдЕрдкрдиреЗ рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рдмрдиреЗ рд░рд╣рддреЗ рд╣реИрдВред рдЕрдиреНрдп рд╕рднреА рддрддреНрд╡реЛрдВ рдХреЛ рддрд╛рд░рд╛рдВрдХрди рдХреЗ рд╕рд╛рде рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП, рд╣рдо
ReplaceAll[list, rule]
рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рдпрд╣ рдирд┐рдпрдореЛрдВ рдХреЗ рд╕рд╛рде
list
рдореЗрдВ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдЧрд╛ред рдирд┐рд░реНрдорд╛рдг
x_ /; x!=0
x_ /; x!=0
рдЕрд░реНрде рд╣реИ "рдПрдХ рддрддреНрд╡
x
рдРрд╕рд╛ рдХрд┐
x тЙа 0
ред
x тЙа 0
"ред
findInformation[list_] := ReplaceAll[Total[list], {x_ /; x!=0 && x!=Length[list] -> "*", x_ /; x==Length[list] -> 1}]
рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдлрд╝рдВрдХреНрд╢рди рдЗрд╕ рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:
In := findInformation[allPositions[len, clue]]
Out = {*,*,*,*,*,*,*,1,*,*}
рд╕рднреА рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рдЖрдард╡реЗрдВ рд╕реЗрд▓ рдХреЛ рдЫрд╛рдпрд╛рдВрдХрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдкреВрд░реЗ рдЧреНрд░рд┐рдб рдореЗрдВ рдЗрд╕реЗ рдЫрд╛рдпрд╛рдВрдХрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд╢реЗрд╖ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдирд╣реАрдВ рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдкрд░рд╕реНрдкрд░ рд╡рд┐рд░реЛрдзреА рд╕реНрдерд╛рдиреЛрдВ рдХреЛ рд╣рдЯрд╛рдирд╛
рдкреНрд░рд╛рдкреНрдд рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрди рд╕реНрдерд╛рдиреЛрдВ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рд╣реИрдВред
DeleteCases[expr, pattern]
рдлрд╝рдВрдХреНрд╢рди рд╣рдорд╛рд░рд╛ рдлрд╝рд┐рд▓реНрдЯрд░ рд╣реЛрдЧрд╛ - рдпрд╣ expr рд╕реВрдЪреА рд╕реЗ рдЙрди рд╕рднреА рддрддреНрд╡реЛрдВ рдХреЛ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИ рдЬреЛ
pattern
рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддреЗ рд╣реИрдВред
Except[c]
рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬреЛ рдЕрдкрдиреЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╕рдм рдХреБрдЫ рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИред
deleteFromList[list_, test_] := DeleteCases[list, Except[ReplaceAll[test, "*"->_]]]
рдЖрдЗрдП рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдПрдВ, рд╣рдореЗрдВ рдмрддрд╛рдПрдВ рдХрд┐ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреА рд╡реНрдпрд╡рд╕реНрдерд╛ рдХреЛ рдЗрд╕ рддрд░рд╣ рдХреЗ рдкреИрдЯрд░реНрди рдХреЛ рд╕рдВрддреБрд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:
{*,*,0,0,*,1,0,*,*,*}
ред рд╣рдорд╛рд░реЗ рд╕рдорд╛рд░реЛрд╣ рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рд╣рдо:
In := deleteFromList[allPositions[len, clue], {"*","*",0,0,"*",1,0,"*","*","*"}]
Out = {{1,0,0,0,1,1,0,1,1,1}, {0,1,0,0,1,1,0,1,1,1}}
рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рджрд╕ рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рд╕реЗ рдХреЗрд╡рд▓ рджреЛ рд╣реА рдкреИрдЯрд░реНрди рдХреЛ рдкреВрд░рд╛ рдХрд░рддреЗ рд╣реИрдВред
рдпрд╣ рд╕рдм рдПрдХ рд╕рд╛рде рд░рдЦрдирд╛ред рдЕрдВрддрд┐рдо рдЪрд░рдг
рд╣рдордиреЗ рдкрд╣реЗрд▓реА рдкрд╣реЗрд▓реА рдХрджрдо рджрд░ рдХрджрдо рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдХрд╛рд░реНрдп рдмрдирд╛рдПред рдЕрдм рд╕рдорд╛рдзрд╛рди рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рдЦреВрдмрд╕реВрд░рддреА рд╕реЗ рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВ рдПрдХ рдХреНрд░реЙрд╕рд╡рд░реНрдб рдкрд╣реЗрд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдЬрд┐рд╕реЗ рдЬрд╛рдкрд╛рдиреА рд╡рд░реНрдЧ рдкрд╣реЗрд▓реА "рдЖрд░рд╛рдо" рдХреА рдХреАрд╡ рдкрддреНрд░рд┐рдХрд╛ рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕рдХреЗ рд▓реЗрдЦрдХ рдПред рд▓реЗрдЙрддрд╛ рд╣реИрдВред
рдХреНрд░реЙрд╕рд╡рд░реНрдб рдкрд╣реЗрд▓реА рдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдФрд░ рд╕реНрддрдВрднреЛрдВ рдХреА рдХреБрдВрдЬреА рдХреА рд╕реВрдЪреА рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
rows = {{1}, {2}, {4}, {3,1}, {4,1}, {12}, {9}, {4,1}, {1,1,1,1,1}, {1,1,1,1}, {1,3,1}, {2,1,1}, {9,1}, {4,5,1}, {3,4,1}, {3,5,3}, {3,1,5}, {5,1,2}, {7,3}, {4,10}, {4,3,3}, {4,2,3}, {5,2,2}, {5,3,2}, {4,1,1,2}, {3,2,2}, {2,2}, {7}, {10}, {2,6}};
cols = {{3}, {6}, {8}, {13}, {1,12,1}, {2,7,2,1}, {5,2,7,4}, {5,3,12}, {8,2,3,1,1,2}, {8,2,1,3}, {2,3,4,1,4}, {2,2,1,1,5,3,5}, {4,6,7,2}, {2,3,3,8,2}, {1,2,2,2}, {1,4,1}, {2}, {2}, {9}, {1}};
рдЖрдкрдХреЛ рдЧреНрд░рд┐рдб рдЖрдХрд╛рд░реЛрдВ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдЙрдиреНрд╣реЗрдВ рд╡реИрд╕реЗ рднреА рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
rowlength = Length[cols]
collength = Length[rows]
рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ, рдбреНрд░рд╛рдЗрдВрдЧ рдХреЛ рд╕реВрдЪрд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдпрд╛ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдирд┐рд░реНрдгрдп рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХрд╛ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдПрдХ рддрд╛рд░рд╛рдВрдХрди рд╣реЛрдЧрд╛ред
pic = ConstantArray["*", {collength, rowlength}];
рдЕрдм рдХреНрд░реЙрд╕рд╡рд░реНрдб рдкрд╣реЗрд▓реА рд╕рдорд╛рдзрд╛рди рдХрд╛ рд╕рдмрд╕реЗ рдмреЛрдЭрд┐рд▓ рд╣рд┐рд╕реНрд╕рд╛ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕реНрдерд╛рдиреЛрдВ рдХреА рд╕реВрдЪреА рднрд░ рд░рд╣рд╛ рд╣реИред рдпрд╣рд╛рдВ рдЖрдкрдХреЛ рдереЛрдбрд╝рд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред
rowpos = allPositions[rowlength, #]& /@ rows;
colpos = allPositions[collength, #]& /@ cols;
рдЬрдм рд╕рднреА рд╕реНрдерд╛рди рднрд░ рдЬрд╛рдПрдБ, рддреЛ рдЖрдк рдирд┐рд░реНрдгрдп рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВред рд╡рд┐рдЪрд╛рд░ рдпрд╣ рд╣реИ: рднрд░реА рд╣реБрдИ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреА рд╕рднреА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдкрд░ рдПрдХ рдЦреЛрдЬ рдХреА рдЬрд╛рддреА рд╣реИ рдФрд░ рдЗрди рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдореБрдЦреНрдп рдЧреНрд░рд┐рдб рдореЗрдВ рджрд░реНрдЬ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдлрд┐рд░, рдЬреЛ рд╕реВрдЪрдирд╛рдПрдВ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреА рд╣реИрдВ, рд╡реЗ рд╕реНрддрдВрдн рд▓реЗрдЖрдЙрдЯ рд╕реЗ рд╣рдЯрд╛ рджреА рдЬрд╛рддреА рд╣реИрдВ рдФрд░ рд╕реНрддрдВрдн рдЦреЛрдЬреЗ рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕реА рддрд░рд╣ред рдЦреЛрдЬ рддрдм рддрдХ рдЪрд▓реЗрдЧреА рдЬрдм рддрдХ рдХрд┐ рдЧреНрд░рд┐рдб рдореЗрдВ рдХрдо рд╕реЗ рдХрдо рдПрдХ рддрд╛рд░рд╛рдВрдХрди рди рд╣реЛ; рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд▓реВрдк рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЙрдкрд░реЛрдХреНрдд рдХреЛрдб рдореЗрдВ
MemberQ
True
рдЕрдЧрд░ рдЧреНрд░рд┐рдб рдореЗрдВ рдХреЛрдИ рддрд╛рд░рд╛рдВрдХрди рд╣реИ рдФрд░ рдЕрдиреНрдпрдерд╛
False
рд╣реИред
Transpose
рднреА рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЖрдк рдкрдВрдХреНрддрд┐рдпреЛрдВ рдФрд░ рд╕реНрддрдВрднреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░ рд╕рдХреЗрдВред рдЪрд┐рддреНрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд
ArrayPlot
рдлрд╝рдВрдХреНрд╢рди рд╣реИ рдЬреЛ рд╕реЗрд▓ рдмреНрд▓реИрдХ рдХреЛ рдкреЗрдВрдЯ рдХрд░рддрд╛ рд╣реИ рдпрджрд┐ рдпрд╣ 1 рдФрд░ рд╕рдлреЗрдж рд╣реИ рдпрджрд┐ 0 (рддрд╛рд░рд╛рдВрдХрди рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдмреНрд░рд╛рдЙрдЬрд╝ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╕рдорд╛рдзрд╛рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рджреМрд░рд╛рди рдкреИрдЯрд░реНрди рдХреИрд╕реЗ рдмрджрд▓рддрд╛ рд╣реИ,
Dynamic
рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
Dynamic[ArrayPlot[pic, Mesh->True]]
While[MemberQ[pic, "*", 2],
pic = findInformation /@ rowpos;
colpos = MapThread[deleteFromList, {colpos, Transpose[pic]}];
pic = Transpose[findInformation /@ colpos];
rowpos = MapThread[deleteFromList, {rowpos, pic}];]
рдкрд░рд┐рдгрд╛рдо рдЗрд╕ рддрд╕реНрд╡реАрд░ рд╣реИ:
рд╢рд╛рдпрдж рдХрд┐рд╕реА рдиреЗ рдЧреМрд░ рдХрд┐рдпрд╛ рдХрд┐ рд╕рдорд╛рдзрд╛рди рдмрд╣реБрдд рд╣реА рдЙрдк-рдпреЛрдЧ рд╣реИред рд╣рд╛рдВ, рдпрд╣ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╖реНрдЯрддрдорддрд╛ рдмрд┐рдВрджреБ рдирд╣реАрдВ рд╣реИред рд▓реЗрдЦ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдпрд╣ рджрд┐рдЦрд╛рдирд╛ рд╣реИ рдХрд┐ рд╡реБрд▓реНрдлрд░рд╛рдо
рдореИрдердореЗрдЯрд┐рдХрд╛ рдЗрд╕ рддрд░рд╣ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рд╣рд▓ рдХрд░ рд╕рдХрддреА рд╣реИред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╖реНрдЯрддрдорддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЗрд╕ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рдХрдИ рддрд░реАрдХреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреЗрд╡рд▓ рдЙрди рд╕реНрддрдВрднреЛрдВ рдФрд░ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХреА рдЦреЛрдЬ рдХрд░рдирд╛, рдЬрд┐рдирдХреА рд╕реЗрд▓ рдЬрд╛рдирдХрд╛рд░реА рдкрд┐рдЫрд▓реЗ рдЪрд░рдг рдореЗрдВ рдЬреЛрдбрд╝реА рдЧрдИ рдереА, рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдЗрд╕ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рдЦреЛрдЬ рд╕рднреА рдХреЙрд▓рдореЛрдВ рдореЗрдВ рдХреА рдЬрд╛рддреА рд╣реИред рд▓рд╛рдЗрдиреЛрдВред