рдЯрд┐рди! рдпрд╣ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреА рддрд░рд╣ рд╣реИ ...
рдирд╣реАрдВ, рддреБрдо рдореБрдЭреЗ рдордЬрдмреВрд░ рдордд рдХрд░реЛ! рдлрд┐рд░ рдХрднреА!
рдореИрдВ рдХреЛрдб рдХреЛ рджреЗрдЦрддрд╛ рд╣реВрдВ рдФрд░ рдПрдХ рдмреЗрд╡рдХреВрдл рдХреА рддрд░рд╣ рдорд╣рд╕реВрд╕ рдХрд░рддрд╛ рд╣реВрдВред рдХреНрдпрд╛ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рджрд┐рдорд╛рдЧ рдХреА рддрд░рд╣ рдПрдХ рдЧреВрдврд╝ рднрд╛рд╖рд╛ рдирд╣реАрдВ рд╣реИ? рдХреНрдпрд╛ рдХреЛрдИ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ? рдФрд░ рдлрд┐рд░ рдЙрдиреНрд╣реЛрдВрдиреЗ рдЗрди рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЛ рдкрдврд╝рд╛?
рд╣рдмрд░рд╣рд╛рдм рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬреЗPerl рдирд╕реЛрдВ рдкрд░ рдЬреЛрд░ рд╕реЗ рдзреВрдореНрд░рдкрд╛рди рдХрд░рддрд╛ рд╣реИредquicksort=: (($:@(<#[), (=#[), $:@(>#[)) ({~ ?@#)) ^: (1<#)
J рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рдмреАрдЪ рдХреЛрд░рд┐рдпрд╛рдИ рд╣реИ ред рд╡рд┐рд╢реЗрд╖ рдкрд╛рддреНрд░реЛрдВ рдХреЗ рдХрд╛рд░рдЦрд╛рдиреЗ рдореЗрдВ рд╡рд┐рд╕реНрдлреЛрдЯред рдмреНрд░реИрдХреЗрдЯ, рдбреЙрдЯреНрд╕, рд╕реНрд▓реИрд╢ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдФрд░ рдпрд╣ рд╕рдм рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЕрдиреНрдпрдерд╛ рдХрд╛рд▓реЗ рдЬрд╛рджреВ рдХреЗ рдЗрд╢рд╛рд░реЗ рдкрд░ рдирд╣реАрдВ, рдпрд╛ рдпрд╣рд╛рдБ рддрдХ рдХрд┐ рдЦреБрдж рд╢реИрддрд╛рди рдиреЗ рднреАред
рдЬреЗ рдореЗрдВ рд▓рд┐рдЦрдиреЗ рд╡рд╛рд▓реЛрдВ рдореЗрдВ рд╕реЗ рдХреБрдЫ рд╕рдВрдХреНрд╖рд┐рдкреНрддрддрд╛ рдХреА рдЦреЛрдЬ рдореЗрдВ рдХрд┐рд╕реА рднреА рдХреЛрдб рдХреЛ рд▓рд┐рдЦрдиреЗ рдпрд╛ рдмрд╕ рджреВрд░ рд▓реЗ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░рд▓ рдирд┐рдпрдореЛрдВ рдХреЛ рднреВрд▓ рдЬрд╛рддреЗ рд╣реИрдВред рдпреЗ рдирд┐рдпрдо рдирдП рдирд╣реАрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡реЗ рдПрдкреАрдПрд▓ рдЬреИрд╕реА рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЬрдм рдирд┐рд░реНрдорд╛рдг рдкрдврд╝рддреЗ рд╣реИрдВ рдЬреИрд╕реЗ
((]i.~[:{.[){([:{:[),]`([:<[$:[:>])@.([:32&=[:3!:0[:>]))"2 0
рдПрдХ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдорд╕реНрддрд┐рд╖реНрдХ рднреА рдПрдХ рдЯреНрдпреВрдм рдореЗрдВ рддрд╣ рдХрд░рддрд╛ рд╣реИред
рддреЛ, рдПрдХ рдмрд┐рд▓реНрд▓реА рдХреЗ рдиреАрдЪреЗ рдкрдардиреАрдп рдЬреЗ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░рд▓ рдирд┐рдпрдоред
рдХрдЯ рдХреЗ рддрд╣рдд рдПрдХ рд╢рдмреНрджрд╛рд╡рд▓реА рдХреЗ рдмрд┐рдирд╛ рдпрд╣ рдзреНрдпрд╛рди рди рджреЗрдирд╛ рдмреЗрд╣рддрд░ рд╣реИред рдЖрдкрдХреЛ рдЪреЗрддрд╛рд╡рдиреА рджреА рдЧрдИ рдереАред
рдФрд░ рдпрд╛рдж рд░рдЦреЗрдВ, рдпрд╣рд╛рдВ рдЙрдкрдпреЛрдЧреА рд▓рд┐рдВрдХ рдХреА рдПрдХ рд╕реВрдЪреАред
рдорд╣рд╛рдорд╛рд░рд┐рдпреЛрдВ рдХрд╛ рдкреНрд░рдпреЛрдЧ рдХрд░реЗрдВ
рдпрджрд┐ рдпрд╣ рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ рдпрд╛ рдмрд╕ рдЕрдХреНрд╕рд░ рдЭрд╛рдВрдХрдиреЗ рдХреЗ рд▓рд┐рдП рд╢рдмреНрджрдХреЛрд╢ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕ рдпрд╛ рдЙрд╕ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдХреНрдпрд╛ рдЕрд░реНрде рд╣реИ, рдпрд╛ рдЙрд╕ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдХреНрдпрд╛ рдЕрд░реНрде рд╣реИ - рдЗрд╕реЗ рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд▓рдкреЗрдЯреЗрдВ:
head =: {. tail =: {: head 9 8 3 0 6 1 2 5 4 7 9 tail 9 8 3 0 6 1 2 5 4 7 7
рдлреВрдЯ рдбрд╛рд▓реЛ рдФрд░ рдЬреАрддреЛ
рдХрднреА-рдХрднреА рдПрдХ рдЬрдЯрд┐рд▓, рдЬрдЯрд┐рд▓ рдбрд┐рдЬрд╛рдЗрди рдХреЛ рдХрдИ рд╕рд░рд▓ рд▓реЛрдЧреЛрдВ рдореЗрдВ рддреЛрдбрд╝рдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрддрд╛ рд╣реИред
logistic =: dyad : '(^ - y % x) % x * *: >: ^ - y % x' exp =: dyad : '^ - y % x' logistic =: dyad : '(x exp y) % x * *: >: x exp y
рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ
J рдореЗрдВ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ
NB.
рд╢реБрд░реВ рд╣реЛрддреА рд╣реИрдВ
NB.
, рдФрд░ рдпрд╣ рд╕рд┐рд░реНрдл рдорд╛рдорд▓рд╛ рд╣реИ рдЬрдм рдХрдИ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ ! рдпрджрд┐ рдЖрдк рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдпрд╛ рдФрджреНрдпреЛрдЧрд┐рдХ рдХреЛрдб рдореЗрдВ рдЖрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рдЯрди рдкрд░ рдареЛрдХрд░ рдЦрд╛ рд╕рдХрддреЗ рд╣реИрдВ; рдЕрдХреНрд╕рд░ рд╡реЗ рд╕реНрд╡рдпрдВ рдХреЛрдб рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрдИ рдЧреБрдирд╛ рдЕрдзрд┐рдХ рд╣реЛрддреЗ рд╣реИрдВ: рд╕реНрд╡-рджрд╕реНрддрд╛рд╡реЗрдЬреАрдХрд░рдг рдЬреЗ рдХреЛрдб рд▓рд┐рдЦрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ, рдФрд░ рдкреНрд░рдпрд╛рд╕ рдЖрдорддреМрд░ рдкрд░ рдЦреБрдж рдХреЛ рдФрдЪрд┐рддреНрдп рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВред
рдЕрдзрд┐рдХ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди, рдЕрдЪреНрдЫрд╛ рдФрд░ рдЕрд▓рдЧ
рдЬреЗ рдкрд░ рдФрд╕рдд рдПрдХ-рд▓рд╛рдЗрдирд░ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмреАрд╕ рдХрдордЬреЛрд░ рд░реВрдк рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реБрдП рдкрд╛рддреНрд░ рд╣реЛрддреЗ рд╣реИрдВ, рдкрдврд╝рдиреЗ рдХреЛ рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рд╕реЗ рдЬрдЯрд┐рд▓ рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдлреИрд▓реЗ рд╣реБрдП рд╕реНрдерд╛рди рдФрд░ рдХреЛрд╖реНрдардХ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╕рдмрд╕реЗ рднреНрд░рдорд┐рдд рдХреНрд░рд┐рдпрд╛ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЛ рд╕рдордЭрдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдВрдЧреЗред
(]%[**:@>:@])[:^[:-%~ (] % [ * *:@>:@]) [: ^ [: - %~
рдЫрд┐рдкреА рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рдмреЗрд╣рддрд░ рд╣реИ
рдЬрдЯрд┐рд▓ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП, рдЯреИрд╕реАрдЯ рдХреЗ рдмрдЬрд╛рдп рд╕реНрдкрд╖реНрдЯ рд╕рдВрдХреЗрддрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЕрдХреНрд╕рд░ рдмреЗрд╣рддрд░ рд╣реЛрддрд╛ рд╣реИред
(] % [ * *:@>:@]) [: ^ [: - %~ dyad : '(] % (x * *:@>:@])) ^ -y%x'
рд╣реБрдХ рдФрд░ рдХрд╛рдВрдЯреЗ рдЖрдкрдХреЗ рдорд┐рддреНрд░ рд╣реИрдВ
рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рдереЗ рдпрд╛ рднреВрд▓ рдЧрдП рдереЗ:
(fg) y тЗФ yf (gy) x (fg) y тЗФ xf (gy) (fgh) y тЗФ (fy) g (hy) x (fgh) y тЗФ (xfy) g (xhy)
рдпреЗ рд╕рд░рд▓ рдирд┐рд░реНрдорд╛рдг рдЕрдХреНрд╕рд░ рдХреЛрдб рдХреА рдорд╛рддреНрд░рд╛ рдХреЛ рдЖрдзрд╛ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддреЗ рд╣реИрдВ, рд▓рдЧрднрдЧ рдкрдардиреАрдпрддрд╛ рд╕реЗ рд╕рдордЭреМрддрд╛ рдХрд┐рдП рдмрд┐рдирд╛ред
рд╢рд╛рд╕реА рд╕рдВрд░рдЪрдирд╛рдПрдВ
рдЬреЗ рдореЗрдВ рд╕рднреА рд╕рд╛рдорд╛рдиреНрдп рдирд┐рдпрдВрддреНрд░рдг рд╕рдВрд░рдЪрдирд╛рдПрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдк рдЙрдиреНрд╣реЗрдВ рдХреЗрд╡рд▓ рд╕реНрдкрд╖реНрдЯ рдХреНрд░рд┐рдпрд╛ рдХреЗ рдЕрдВрджрд░ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╢рд╛рдЦрд╛рдПрдВ рдХрд┐рд╕реА рдЕрдиреНрдп рднрд╛рд╖рд╛ рдХреА рддрд░рд╣ рд╣реА рдХрд╛рдо рдХрд░рддреА рд╣реИрдВ: рдпрджрд┐
T
рд╕реНрдерд┐рддрд┐ 1 рд╣реИ, рддреЛ
B
рдХреЛ рдмреНрд▓реЙрдХ рдХрд░реЗрдВ, рдЕрдиреНрдпрдерд╛ рд╣рдо рдЕрдЧрд▓реЗ рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ
else./elseif.
рдмреНрд▓реЙрдХ
else./elseif.
рдЕрдЧрд░ рд╡рд╣ рд╣реИ
if. T do. B end. if. T do. B else. B1 end. if. T do. B elseif. T1 do. B1 elseif. T2 do. B2 end.
while.
рдФрд░
whilst.
T
1 рддрдХ рдмреНрд▓реЙрдХ
B
рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ,
whilst.
рдЕрдВрддрд░ рдХреЗ рд╕рд╛рде
whilst.
рдкрд╣рд▓реЗ рдкрд╛рд╕ рдХреЗ рд▓рд┐рдП рдЬрд╛рдБрдЪ рдХреА рдЬрд╛рддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП
B
рд╣рдореЗрд╢рд╛ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдмрд╛рд░ рдЪрд▓рддрд╛ рд╣реИред
while. T do. B end. whilst. T do. B end.
for.
рдмрд╕
B
рдХреЛ рдХрдИ рдмрд╛рд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐
T
рдореЗрдВ рддрддреНрд╡ рд╣реИрдВ;
for_i.
рдХреНрд░рдорд╢рдГ рдЪрд░
i
рдФрд░
i_index
- рддрддреНрд╡ рдФрд░ рдЙрд╕рдХреЗ рд╕реВрдЪрдХрд╛рдВрдХ рдмрдирд╛рддрд╛ рд╣реИред
for. T do. B end. for_i. T do. B end.
select.
рд╕рдВрдмрдВрдзрд┐рдд рдмреНрд▓реЙрдХ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реБрдП, рдкрд╣рд▓реЗ
Ti
рдорд┐рд▓рд╛рди
T
рдЬрд╛рддрд╛ рд╣реИред
fcase.
-
case.
"рдЕрд╕рдлрд▓" рдХреЗ рд╕рд╛рдеред
select. T case. T0 do. B0 case. T1 do. B1 fcase.T2 do. B2 case. T3 do. B3 end.
рдпрджрд┐ рдмреНрд▓реЙрдХ
B
рд╡рд┐рдлрд▓ рд╣реБрдЖ, рддреЛ рдмреНрд▓реЙрдХ
B1
рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ, рдЕрдиреНрдпрдерд╛ рдЗрд╕реЗ рдЕрдирджреЗрдЦрд╛ рдХрд░реЗрдВред
try. B catch. B1 end.
рдЖрдЗрдП рдЗрд╕ рдкреЛрд╕реНрдЯ рд╕реЗ рд╕реБрдбреЛрдХреВ рд╕реЙрд▓реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдЗрди рдирд┐рдпрдореЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред
рд╕реНрд░реЛрдд рдХреЛрдб:
i =: ,((,|:)i.9 9),,./,./i.4$3 c =: (#=[:#~.)@-.&0 t =: [:(([:*/_9:c\])"1#])i&{+"1 1(>:i.9)*/[:i&=i.&0 r =: [:,`$:@.(0:e.,)[:;(<@t)"1 s =: 9 9&$@r@,
рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХрд╛ рдкрд░рд┐рдгрд╛рдо:
cells =: ,./^:2 i. 4 # 3 rows_cols =: ((, |:) i. 9 9) indices =: , rows_cols, cells no_errors =: verb : '(-: ~.) y -. 0' substitutions =: verb : '(indices { y) +"1 1 ((>:i.9) */ indices = y i. 0)' remove_wrong =: verb : 'y #~ */"(1) _9 no_errors\"1 y' try =: remove_wrong @ substitutions solve =: verb define variants =: y whilst. 0 e. ,variants do. variants =: ; (<@try)"1 variants end. ,variants ) sudoku =: verb : '9 9 $ solve , y'
рдХрд╛рдо рдХрд╛ рдирддреАрдЬрд╛
m 2 0 0 3 7 0 0 0 9 0 0 9 2 0 0 0 0 7 0 0 1 0 0 4 0 0 2 0 5 0 0 0 0 8 0 0 0 0 8 0 0 0 9 0 0 0 0 6 0 0 0 0 4 0 9 0 0 1 0 0 5 0 0 8 0 0 0 0 7 6 0 0 4 0 0 0 8 9 0 0 1 sm 2 8 4 3 7 5 1 6 9 6 3 9 2 1 8 4 5 7 5 7 1 9 6 4 3 8 2 1 5 2 4 9 6 8 7 3 3 4 8 7 5 2 9 1 6 7 9 6 8 3 1 2 4 5 9 6 7 1 4 3 5 2 8 8 1 3 5 2 7 6 9 4 4 2 5 6 8 9 7 3 1 sudoku m 2 8 4 3 7 5 1 6 9 6 3 9 2 1 8 4 5 7 5 7 1 9 6 4 3 8 2 1 5 2 4 9 6 8 7 3 3 4 8 7 5 2 9 1 6 7 9 6 8 3 1 2 4 5 9 6 7 1 4 3 5 2 8 8 1 3 5 2 7 6 9 4 4 2 5 6 8 9 7 3 1
рдЕрдм рдХреЛрдб рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рд╡рд╣ рдХреНрдпрд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ! рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рд╕рдлрд▓рддрд╛ рд╣реИред