рдкрд┐рдЫрд▓реЗ рднрд╛рдЧреЛрдВ рдореЗрдВ ...
рдкреНрд░рд╢реНрди: рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреНрдпрд╛ рд╣реИ?
рдП: рдореЗрдЬрдмрд╛рди рд╕реЗ рдЖрдВрдХрдбрд╝реЗ рдПрдХрддреНрд░ рдХрд┐рдП рдЧрдПред
рдкреНрд░рд╢реНрди: рд╣рдо рдХреНрдпрд╛ рдкрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?
A: рдиреЗрдЯрд╡рд░реНрдХ рдЯреЛрдкреЛрд▓реЙрдЬреА! рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ, рдЖрдкрдХреЛ рд░рд┐рдВрдЧрд╕рдВрдХ рдХреЗ рд▓рд┐рдП рд╕рд╛рдерд┐рдпреЛрдВ (рдореЗрдЬрдмрд╛рдиреЛрдВ) рдХреА рд╕рд╣реА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ ред
рд╣рдореЗрдВ рдПрдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рд╕рд╛рде рдЖрдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдкрд╣рд▓реЗ рдЖрдВрдХрдбрд╝реЛрдВ рдХреЛ рдиреЗрдЯрд╡рд░реНрдХ рдЯреЛрдкреЛрд▓реЙрдЬреА рдореЗрдВ рдмрджрд▓рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдПрдХ рд╕рд╣рдХрд░реНрдореА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВред рдЕрдм рддрдХ, рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
тАУ-[**]--> --[**]-->
рдпрджрд┐ рдЖрдкрдХреЛ GitHub Pages рдкрд░ "рднрд╛рдЧ 1" рдкрдврд╝рдиреЗ рдореЗрдВ рдордЬрд╝рд╛ рдЖрдпрд╛, рддреЛ рдпрд╣рд╛рдБ GitHub Pages рдкрд░ рдЙрд╕ рднрд╛рдЧ рдХрд╛ рд▓рд┐рдВрдХ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдЪреЗрддрд╛рд╡рдиреА : рдиреАрдЪреЗ рд╡рд╣реА рд╣рдмреНрд░-рдкрд╛рд░реНрд╕рд░ рдХрд▓рд╛рдХреГрддрд┐рдпрд╛рдБ рд╣реЛрдВрдЧреА рдЬрд┐рдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореИрдВрдиреЗ "рднрд╛рдЧ 1" рдореЗрдВ рдЪреЗрддрд╛рд╡рдиреА рджреА рдереАред
рдиреЛрдЯ : " тАУ-[**]-->
рдмрдЬрд╛рдп тАУ-[**]-->
" рдореИрдВ " тАУ-[???]-->
" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛ред
рдПрдХрддреНрд░ рдХрд┐рдП рдЧрдП рдЖрдБрдХрдбрд╝реЗ рд╣рдореЗрдВ рджрд┐рдЦрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдХрд┐рд╕ рдкрд░ рдкреНрд░рд╕рд╛рд░рдг рдЯреНрд░реИрдлрд╝рд┐рдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЧрддрд┐ рдХрдо рд╣реЛ рдЧрдИ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ рд╢реВрдиреНрдп рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЛ рджреЗрдЦреЗрдВ "N2_2" (" Network
" рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ "рдПрд▓рдПрд▓рдЯреАрдЖрд░ рдкрд╛рд░реНрдЯ 1" рд╕реЗ):
{300,164,164},
2 рдореЗрдЬрдмрд╛рди рд░рд╛рдЬреНрдп рдпрд╣рд╛рдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣реЗ рд╣реИрдВ:
- рд╕рд╛рдорд╛рдиреНрдп рдЧрддрд┐ (рдореВрд▓реНрдп "
300
") - рдХреЛрдИ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ ; - рдЧрддрд┐ рдЧрд┐рд░ рдЧрдИ рд╣реИ (рдореВрд▓реНрдп "
164
") - рдПрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╣реИ ред
рдореБрдЭреЗ рдХреНрдпрд╛ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ? рд╡рдиреАрдХрд░рдг рдХреЗ рд▓рд┐рдП! рдпрджрд┐ рд╣рдо 0 рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдФрд░ 1 рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЛ рдХреЛрдбрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдПрдХ рд╣реА рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдореЗрдВ рдореЗрдЬрдмрд╛рдиреЛрдВ рдХреА рд╕рднреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдПрдХ рдЪрд░ рдореЗрдВ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ ( 32 - 512 рдмрд┐рдЯ [ AVX - 512 ])ред рдореЗрдореЛрд░реА (рдФрд░ рдХреИрд╢ рдореЗрдВ рдЦрд░реНрдЪ рдХреА рдЧрдИ рдЬрдЧрд╣) рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЧрддрд┐ рдХреЛ рдмрдврд╝рд╛рдПрдЧрд╛ - рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ ( SIMD ) рдХреЗ рд╕рднреА рдореЗрдЬрдмрд╛рди рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдПрдХ рдирд┐рд░реНрджреЗрд╢ рдореЗрдВ рдПрдХ рдмрд╛рд░ рдореЗрдВ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдиреЛрдЯ : рдХреНрдпреЛрдВрдХрд┐ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдореЗрдЬрдмрд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдПрд▓рдПрд▓рдЯреАрдЖрд░ рдмреЗрд╕рд┐рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрд╣реБрдд рдорд╣рдВрдЧрд╛ рд╣реИ ( рдЕрдиреБрднрд╛рдЧ рдХреА рд╢реБрд░реБрдЖрдд "рдПрд▓рдПрд▓рдЯреАрдЖрд░ рдкрд╛рд░реНрдЯ 0 :: рдПрд▓рдПрд▓рдЯреАрдЖрд░ рдПрдбрд╡рд╛рдВрд╕реНрдб" рджреЗрдЦреЗрдВ ), рддреЛ рд╕рдм рдХреБрдЫ 64 рдмрд┐рдЯ x86isters64 рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдореЗрдВ рдлрд┐рдЯ рдмреИрдарддрд╛ рд╣реИред
рдиреЛрдЯ : рдХрд┐рд╕реА рдЕрдиреНрдп рд▓реЗрдЦ (рджреВрд╕рд░реЗ рднрд╛рдЧ) рдореЗрдВ рд╕реНрдерд┐рдд рдЕрдиреБрднрд╛рдЧ рдХреЗ рд▓рд┐рдВрдХ рдХреЗ рдкрд╛рда рдореЗрдВ, рдореИрдВ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рднрд╛рдЧ рд╕рдВрдЦреНрдпрд╛ рдЬреЛрдбрд╝реВрдВрдЧрд╛ : " LLTR рднрд╛рдЧ # :: рдЕрдиреБрднрд╛рдЧ рдирд╛рдо> "ред рдФрд░ рд▓рд┐рдВрдХ рдХреЗ " title
" рдореЗрдВ рдореИрдВ рднрд╛рдЧ рдХрд╛ рдирд╛рдо рд▓рд┐рдЦреВрдВрдЧрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "рдПрд▓рдПрд▓рдЯреАрдЖрд░ рдкрд╛рд░реНрдЯ 0 ::" рдХреЗ рд▓рд┐рдП, "рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдиреЗрдЯрд╡рд░реНрдХ рдЯреЛрдкреЛрд▓реЙрдЬреА рдФрд░ рдЕрдирд╡рд╛рдВрдЯреЗрдб рд╕реНрд╡рд┐рдЪреЗрд╕ рдХрд╛ рдкрддрд╛ рдЪрд▓реЗрдЧрд╛ред" рдорд┐рд╢рди рдЕрд╕рдВрднрд╡ рд╣реИ? тАЭ
рдЖрдЗрдП, рд╢реВрдиреНрдп рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХрд╛ рдПрдХ рд╣реА рдЙрджрд╛рд╣рд░рдг рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рджреНрд╡реИрддрдХрд░рдг рдХреЗ рдмрд╛рдж рдХреИрд╕рд╛ рджрд┐рдЦреЗрдЧрд╛:
{300,164,164} --[]--> 011
рдмрд╣реБрдд рдХреЙрдореНрдкреИрдХреНрдЯ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рд╕рднреА рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП рддреБрд░рдВрдд рдЕрдкрдиреА рдЖрдВрдЦ рдХреЛ рдкрдХрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП " 1
" ( рдПрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ ) рдЪрд╛рд╣реВрдВрдЧрд╛ред рдЕрдм " 1
" рдкреГрд╖реНрдарднреВрдорд┐ " 0
" рдХреЗ рдЦрд┐рд▓рд╛рдл рдирд╣реАрдВ рдЦрдбрд╝рд╛ рд╣реЛрддрд╛ рд╣реИ (рдирдХрд▓реА рдбреЗрдЯрд╛, рдПрдХ рджреГрд╢реНрдп рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП ):
0101011010110 1100010110010 0101101010111 0100010110100
" 1
" рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рд╕рдВрдХреЗрддрди рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реВрдВ:
- "
1
" рдХрд╛ рдЕрд░реНрде рд╣реИ 1 - рдПрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╣реИ ; - тАЬ
.
тАЬрд╕рд╛рдзрди 0 - рдХреЛрдИ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ ред
рдЖрдЗрдП рдлрд┐рд░ рд╕реЗ "рдирдХрд▓реА рдбреЗрдЯрд╛" рджреЗрдЦреЗрдВ:
.1.1.11.1.11. 11...1.11..1. .1.11.1.1.111 .1...1.11.1..
рдЗрддрдирд╛ рдмреЗрд╣рддрд░ ( IMHO )ред
рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо, рдЗрд╕ рд╕рдордп рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
тАУ-[]--> --[???]--> --[???]-->
рд╣рдо рд▓реЗрдЦ рдХреЗ рдЕрдВрдд рдХреЗ рд▓рд┐рдП рдмрд┐рдирд╛рд░рд╛рдЗрдЬреЗрд╢рди рдХрд╛ рд╡рд┐рд╡рд░рдг рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВ, рдФрд░ рдмрд╛рдХреА рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред
рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЗрдирдкреБрдЯ / рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ (рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓реЛрдВ, рд╕реАрдорд╛ рд╕реНрдерд┐рддрд┐рдпреЛрдВ; рдЯреАрдбреАрдбреА рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдкрд░реАрдХреНрд╖рдг) рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдмрдирд╛рдирд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рд╣реИред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдбреЗрдЯрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдЯреЛрдкреЛрд▓реЙрдЬреА рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдПрдХ рдРрд╕реЗ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд╕рд╛рде рдЖрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдЬреЛ рджреЛрдиреЛрдВ рдЫреЛрдЯреЗ рд╣реЛрдВрдЧреЗ рдФрд░ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕реНрд╡рд┐рдЪ рдХрдиреЗрдХреНрд╢рди рдпреЛрдЬрдирд╛рдПрдВ ( рд╕реНрдЯрд╛рд░ , рд╕реАрд░рд┐рдпрд▓ рдХрдиреЗрдХреНрд╢рди ) рд╣реЛрддреА рд╣реИрдВред рд╢рд╛рдпрдж рдЗрд╕рдореЗрдВ рдХреБрдЫ рд╡рд┐рд╢реЗрд╖ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ... рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдХрд▓реНрдкрдирд╛ рдиреЗ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдиреЗрдЯрд╡рд░реНрдХ рдХреЛ рдЖрдХрд░реНрд╖рд┐рдд рдХрд┐рдпрд╛ (рддрддреНрд╡реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрдХреЗрддрди " рдПрд▓рдПрд▓рдЯреАрдЖрд░ рднрд╛рдЧ 0 :: рдЯреЛрдкреЛрд▓реЙрдЬреА:" рд╕реНрд╡рд┐рдЪ рдХрд╛ рд╕реАрд░рд┐рдпрд▓ рдХрдиреЗрдХреНрд╢рди " ") рдХреЗ рдЕрдВрдд рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЕрдВрдХрди рдХреЗ рд╕рдорд╛рди рд╣реИред

рдиреЛрдЯ : рдЗрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рд╕рд╡рд╛рд▓ "рдЗрд╕ рдЯреЛрдкреЛрд▓реЙрдЬреА рдореЗрдВ рдкреВрд░реНрдг рд╕реНрдХреИрди рдХрд╛ рд╕рдВрдЪрд╛рд▓рди рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ рдЕрдЧрд░ рд╕реНрд╡рд┐рдЪ рдореЗрдВ рд╕реЗ рдПрдХ ..." (рдЕрдиреБрднрд╛рдЧ рдХреЗ рдЕрдВрдд рдХреЗ рдкрд╛рд╕ " рдПрд▓рдПрд▓рдЯреАрдЖрд░ рдкрд╛рд░реНрдЯ 0 :: рдЯреЛрдкреЛрд▓реЙрдЬреА:" рд╕реНрд╡рд┐рдЪ рдХрд╛ рд╕реАрд░рд┐рдпрд▓ рдХрдиреЗрдХреНрд╢рди "), рдФрд░ рдЖрдк рдзреНрдпрд╛рди рджреЗрдВред рдХреЛрдИ рднреА рд╣реЛрд╕реНрдЯ рд╕реНрд╡рд┐рдЪ рд╕реЗ рд╕реАрдзреЗ рдЬреБрдбрд╝рд╛ рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ 3 рдФрд░ рд╕реНрд╡рд┐рдЪ рдЗрд╕ рд╕реНрд╡рд┐рдЪ рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реИрдВ (рдореИрдВрдиреЗ рдХреЗрд╡рд▓ "рдиреАрдЪреЗ рд╕реЗ рдЬреБрдбрд╝реЗ рд╕реНрд╡рд┐рдЪ" рдХреЛ рдЧрд┐рдирд╛ рд╣реИ, рдЗрд╕ рддрдереНрдп рдкрд░ рдзреНрдпрд╛рди рджрд┐рдП рдмрд┐рдирд╛ рдХрд┐ рдпрд╣ рджреВрд╕рд░реЗ рд╕реНрд╡рд┐рдЪ "рдКрдкрд░ рд╕реЗ" рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реИ), рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдореЗрдВ рдореЗрдЬрдмрд╛рди рд╣реИрдВред
рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЗрд╕ рдЖрд░реЗрдЦ рдореЗрдВ рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд (рд╡рд┐рдЪрд▓рд┐рдд) рд╡рд┐рд╡рд░рдг рд╣реИрдВред рдореИрдВ рдЗрд╕реЗ рд╣рдЯрд╛рдХрд░ рд╕рд╛рдл рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ:
- рдкреНрд░рд╕рд╛рд░рдг рдореЗрдЬрдмрд╛рди (рдпрд╣ рдЗрдирдкреБрдЯ / рдЖрдБрдХрдбрд╝реЛрдВ рдореЗрдВ рдирд╣реАрдВ рд╣реИ);
- рдкреЛрд░реНрдЯ рдПрдХ рджреВрд╕рд░реЗ рд╕реЗ рд╕реНрд╡рд┐рдЪ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВред

рдпрд╣рд╛рдВ "рд╣реЛрд╕реНрдЯ рдХреЗ рдмрд┐рдирд╛" рд╕реНрд╡рд┐рдЪ рддреБрд░рдВрдд рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВрдиреЗ рд╕рднреА рд╕реНрд╡рд┐рдЪреЛрдВ рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд┐рдпрд╛ рдХрд┐ рдЙрдирдореЗрдВ рдореЗрдЬрдмрд╛рди рдПрдХ-рджреВрд╕рд░реЗ рдХреЛ рд▓рдВрдмрд╡рдд рд░реВрдк рд╕реЗ рдУрд╡рд░рд▓реИрдк рди рдХрд░реЗрдВред рдпрд╣ рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ рдпрджрд┐ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдореИрдВ "рдореЗрдЬрдмрд╛рди рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ" рдХреЛ рдПрдХ рдкрд╛рда рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ " .....1......
" рдХреЗ рд░реВрдк рдореЗрдВ рдирд╣реАрдВ рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдПрдХ рдЖрд░реЗрдЦ рдХреЗ рд░реВрдк рдореЗрдВ (рдПрдХ рдКрд░реНрдзреНрд╡рд╛рдзрд░ рдкрд░ рдХреЗрд╡рд▓ рдПрдХ рдореЗрдЬрдмрд╛рди рд╣реИ):

рдЕрдм рдЙрди рдЖрдВрдХрдбрд╝реЛрдВ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдЬреЛ рд╣рдореЗрдВ рдЗрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдХреЛ рд╕реНрдХреИрди рдХрд░рдиреЗ рдХреЗ рд╕рднреА рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЗ рдЕрдВрдд рдореЗрдВ рдорд┐рд▓рддреЗ рд╣реИрдВред рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ 12 рд╣реЛрд╕реНрдЯ рд╣реИрдВ (рдкреНрд░рд╕рд╛рд░рдг рд╣реЛрд╕реНрдЯ рдХреЛ рдЫреЛрдбрд╝рдХрд░), рдЗрд╕рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ 132 рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдкрд░ рдбреЗрдЯрд╛ рд╣реЛрдЧрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╕рднреА рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдкрд░рд┐рдгрд╛рдо рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рдирд╣реАрдВ рд╣реЛрдВрдЧреЗ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡реЗ рдмреЗрдХрд╛рд░ рд╣реЛрдВрдЧреЗ:
рд╕рдлрд╛рдИ рдХреЗ рдмрд╛рдж, рд╕рднреА 132 рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдкрд░рд┐рдгрд╛рдореЛрдВ рдореЗрдВ рд╕реЗ, рдХреЗрд╡рд▓ 5 (рдореЗрдЬрдмрд╛рди рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдПрдВ) рд░рд╣реЗрдВрдЧреЗ:
1111111111.. 11111111.... ..111....... .....111.... 11..........
рдиреЛрдЯ : рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ " 1
" рдХреА рдПрдХ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдЫреЛрдЯреЗ рд╡рд╛рд▓реЗ рддрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреА рд╡реНрдпрд╡рд╕реНрдерд╛ рдХреАред
рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрдирд╛ рд╢реБрд░реВ рд╣реБрдЖ:
тАУ-[]--> --[ ]--[ ]--[???]--> --[???]-->
рд░реАрд╕реЗрдЯ рдмрд┐рдВрджреБ
рдореИрдВрдиреЗ рд╕реНрдкреЙрдЗрд▓рд░ рдореЗрдВ рдпрд╣ рд╕рдм рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрд╛, рд▓реЗрдХрд┐рди рдЕрдВрдд рдореЗрдВ рдореИрдВрдиреЗ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ рдпрд╣ рдХрд╣рд╛рдиреА рдХрд╛ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдкрдврд╝рддреЗ рд╕рдордп рдпрд╛рдж рдирд╣реАрдВ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред
To я╝Ъ рдХрд╛рдВрдЧ рдкрдврд╝рддреЗ рд╕рдордп рджрд┐рдорд╛рдЧ рдХреЛ рди рдЫреЛрдбрд╝реЗрдВ
[рд░реАрд╕реЗрдЯ рдмрд┐рдВрджреБ] рд╢реЗрд╖ 5 рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдкрд░рд┐рдгрд╛рдореЛрдВ рдореЗрдВ, рдкрд╣рд▓реЗ рджреЛ рдзреНрдпрд╛рди рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ: рдкрд╣рд▓реЗ рдореЗрдВ рджреВрд╕рд░рд╛ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИ, рдФрд░ рджреВрд╕рд░реЗ рдореЗрдВ рд╢реЗрд╖ рд╕рднреА рдХрдо рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдпрд╣рд╛рдБ рдореБрдЭреЗ " LLTR рднрд╛рдЧ 0 :: рдЯреЛрдкреЛрд▓реЙрдЬреА:" рд╕реНрд╡рд┐рдЪ рдХрд╛ рд╕реАрд░рд┐рдпрд▓ рдХрдиреЗрдХреНрд╢рди " " рд╕реЗ "рдЫрд╛рдпрд╛" рдпрд╛рдж рд╣реИред рдЙрд╕реА рдЦрдВрдб рдореЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЗ рдЕрдВрдд рдореЗрдВ, рд╣рдордиреЗ рдЕрднреА рдкреНрд░рд╛рдкреНрдд рдЖрдВрдХрдбрд╝реЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдирдП рдХреНрд▓рд╕реНрдЯрд░ рдмрдирд╛рдП (рдпрд╛ рдирд╣реАрдВ рдмрдирд╛рдП)ред рдЕрдм рд╣рдореЗрдВ рднреА рдРрд╕рд╛ рд╣реА рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред
рд▓реЗрдХрд┐рди рд╣рдордиреЗ рдирдП рдХреНрд▓рд╕реНрдЯрд░ рдХреИрд╕реЗ рдмрдирд╛рдП? рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдореМрдЬреВрджрд╛ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЗ " 1
" рдореЗрдЬрдмрд╛рди рдХреЗ рд╕рднреА (рдПрдХрд▓ рдирд╣реАрдВ) рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдПрдВ "рдирдпрд╛ рдХреНрд▓рд╕реНрдЯрд░" рдереАрдВ, рд╣рдореЗрдВ рдХреЗрд╡рд▓ рдмрдбрд╝реЗ рд╕рдореВрд╣реЛрдВ рд╕реЗ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдореМрдЬреВрджрд╛ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рд╕рд╛рде рдЪреМрд░рд╛рд╣реЛрдВ ("тИй"; рд░рд┐рдХреНрдд "тИЕ") рдХреЛ рдирд╣реАрдВ рдвреВрдВрдврдирд╛ рдерд╛ред рдХреНрд▓рд╕реНрдЯрд░ рд╣реЛрд╕реНрдЯ рдПрдХ рдЫреЛрдЯреЗ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рдПрдХ рд╢рд░реНрдд рдереА / рдмреНрд░рд╛рдВрдЪрд┐рдВрдЧ (рдпрджрд┐): рдЖрдкрдХреЛ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдХреМрди рд╕рд╛ рдХреНрд▓рд╕реНрдЯрд░ рдмрдбрд╝рд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдСрдкрд░реЗрд╢рди (рдП) рдмреА) рдХрд░реЗрдВ - рдмрдбрд╝реЗ рдХреНрд▓рд╕реНрдЯрд░ (рдП) рд╕реЗ рдЫреЛрдЯреЗ (рдмреА) рдХреЛ рдШрдЯрд╛рдПрдВред рдпрджрд┐ рд╢рд╛рдЦрд╛ рдХреА рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдЧрд▓рдд рд╣реИ (рдЕрдЧрд░ рдЗрд╕рдореЗрдВ "рд╢рд╛рдЦрд╛ рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдмреНрд▓реЙрдХ" рд╣реИ), рддреЛ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдХрд╛рд░рдг рд╕реАрдкреАрдпреВ рдХреА рдкреАрдбрд╝рд╛ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдирд╛), рдореИрдВрдиреЗ рд▓рдЧрднрдЧ тАЬ?:
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рд╣реИ тАЬ?:
" , рд▓реЗрдХрд┐рди рдЙрд╕ рдкрд▓ рдореЗрдВ ...
рдореИрдВ рд╢реМрдЪрд╛рд▓рдп рдкрд░ рдЦрдбрд╝рд╛ рдерд╛ рдФрд░ рдШрдбрд╝реА рд▓рдЯрдХрд╛ рджреАред рдЕрдЪрд╛рдирдХ рдлрд┐рд╕рд▓ рдЧрдпрд╛, рд╕рд┐рдВрдХ рдкрд░ рдЙрд╕рдХрд╛ рд╕рд┐рд░ рдорд╛рд░рд╛, рдФрд░ рдЬрдм рдореИрдВ рдЙрдард╛ рддреЛ рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рджреГрд╖реНрдЯрд┐ рдереА, рдореЗрд░реЗ рдорд╕реНрддрд┐рд╖реНрдХ рдореЗрдВ рдПрдХ рддрд╕реНрд╡реАрд░, рдЗрд╕ рдкрд░ рдПрдХ рджреГрд╖реНрдЯрд┐ - рдПрдХ рдзрд╛рд░рд╛ рдбреНрд░рд╛рдЗрд╡ рд╕реНрдЯреНрд░реАрдо рд╡рд┐рднрд╛рдЬрдХ ( рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд╡рд╛рдкрд╕ ) :
рдФрд░ рддреБрд░рдВрдд рдУрд╡рд░рд▓реИрдкрд┐рдВрдЧ рдХреНрд▓рд╕реНрдЯрд░реНрд╕ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдкрд░ рдЙрдирдХреЗ рдХрд╛рдо рдХреЛ рджреЗрдЦреЗрдВ (рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ, рдПрдХ рд╕реЗрдЯ (рдХреНрд▓рд╕реНрдЯрд░) рдХреЛ рдХрдбрд╝рд╛рдИ рд╕реЗ рджреВрд╕рд░реЗ рд╕реЗрдЯ рдореЗрдВ " " рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ):
.....11..... - a ..11111111.. - b ..111..111.. - c=a^b ............ - aa=a&c ..111..111.. - bb=b&c .....11..... - cc=a&b
рдЕрд╡реНрдпрд╡рд╕реНрдерд╛ рд╕рдореВрд╣реЛрдВ:
..111....... - a .......111.. - b ..111..111.. - c=a^b ..111....... - aa=a&c .......111.. - bb=b&c ............ - cc=a&b
рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐:
- "
aa
" рдореЗрдВ " a
" рдХреЗ рд▓рд┐рдП рдЕрджреНрд╡рд┐рддреАрдп рддрддреНрд╡ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ; - "
bb
" рдореЗрдВ - " bb
" рдХреЗ рд▓рд┐рдП рдЕрджреНрд╡рд┐рддреАрдп; - "
cc
" рдореЗрдВ - " a
" рдФрд░ " b
" рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдпред
рдПрдХ рдФрд░ рдЙрджрд╛рд╣рд░рдг рдХреНрд▓рд╕реНрдЯрд░рд┐рдВрдЧ ("рдЕрд╕рдВрднрд╡", рд▓реЗрдХрд┐рди рдПрдХ рдЕрдЪреНрдЫрд╛ рдЙрджрд╛рд╣рд░рдг):
...1111..... - a .....1111... - b ...11..11... - c=a^b ...11....... - aa=a&c .......11... - bb=b&c .....11..... - cc=a&b
рдиреЛрдЯ : рдЗрд╕ рддрд░рд╣ рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ (рд╣реЛрд╕реНрдЯ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛) рд╕реНрд░реЛрдд рдбреЗрдЯрд╛ рдореЗрдВ рдирд╣реАрдВ рд╣реИред
рдЙрд╕реА рддрд░рд╣, рдЖрдк рдЗрд╕рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ:
.....11..... - a .....11..... - b ............ - c=a^b ............ - aa=a&c ............ - bb=b&c .....11..... - cc=a&b
рд▓реЗрдХрд┐рди, рдереЛрдбрд╝реА рджреЗрд░ рдмрд╛рдж ...
рд╕рд┐рд░ рдкрд░ рдЪреЛрдЯ рд▓рдЧрдиреЗ рдХреЗ рдмрд╛рдж рдЪреЛрдЯ рд▓рдЧрдирд╛ рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдорди рд╕рд╛рдл тАЛтАЛрд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд╕реНрдкрд╖реНрдЯ рд╕рдорд╕реНрдпрд╛рдПрдВ рдмрдврд╝рддреА рдЬрд╛рддреА рд╣реИрдВ ...
рдЗрдирдкреБрдЯ рдкрд░, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ 2 рдЪрд░ (рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдкрд░рд┐рдгрд╛рдо / рд╣реЛрд╕реНрдЯ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ / рдХреНрд▓рд╕реНрдЯрд░ / рд╕реЗрдЯ / ...) рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА 3 рд╣реИрдВ, рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдЦрд╛рд▓реА ("тИЕ") рд╣реЛрдЧрд╛ред рдпрджрд┐ рдЖрдкрдХреЛ рддреБрд░рдВрдд "get" рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕рд▓рд┐рдП, рддреБрд░рдВрдд "it" рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдХреИрд╕реЗ рдХрд░реЗрдВ? рд╣рд╛рд▓рдд / рд╢рд╛рдЦрд╛рдУрдВ рдХрд╛ рдкреНрд░рдпреЛрдЧ рдХрд░реЗрдВ! ... рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдореИрдВ рд╡рд╣реАрдВ рд▓реМрдЯ рдЖрдпрд╛ рдЬрд╣рд╛рдБ рд╕реЗ рдореИрдВрдиреЗ рд╢реБрд░реБрдЖрдд рдХреА рдереАред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрдЧрд░ рд╕рдм рдХреБрдЫ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕рд╕реЗ "рдЫреБрдЯрдХрд╛рд░рд╛" рдорд┐рд▓рддрд╛ рд╣реИ, рдлрд┐рд░ рдЕрдВрдд рдореЗрдВ рд╣рдо рдЗрд╕рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ:
1111111111.. 11111111.... ..111....... .....111.... 11..........
рдпрд╣ рд╣реИ:
........11.. - "............", я╝Ъя╝И ..111....... .....111.... 11..........
рдпрд╣ рдкреНрд░рд╢реНрди рдкреВрдЫрдиреЗ рдХрд╛ рд╕рдордп рд╣реИ: "рдЗрд╕рд╕реЗ рдиреЗрдЯрд╡рд░реНрдХ рдЯреЛрдкреЛрд▓реЙрдЬреА рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ?" рдЕрдм рдпрд╣ рдбреЗрдЯрд╛ "рдпрд╣" рдХрд╣ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╣реЛрд╕реНрдЯ (рдЬреЛ рдХрд┐ рд╕реНрд╡рд┐рдЪ рдХреЛ рд╣реЛрд╕реНрдЯ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реИ) рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рдбреЗрдЯрд╛ рдореЗрдВ рдЕрдм рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрд╡рд┐рдЪ рдХреЗ рдЯреЛрдкреЛрд▓реЙрдЬреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЕрднрд╛рд╡ рд╣реИ (рдЕрд░реНрдерд╛рдд, рдХреИрд╕реЗ рдЬреБрдбрд╝реЗ рд╣реБрдП рд╣реИрдВ) рдПрдХ-рджреВрд╕рд░реЗ рдХреЗ рдмреАрдЪ рд╕реНрд╡рд┐рдЪ) - рд╣рдордиреЗ рдбреЗрдЯрд╛ рд░реВрдкрд╛рдВрддрд░рдг рдХреЗ рджреМрд░рд╛рди рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА рдЦреЛ рджреА рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреМрди рд╕реЗ рдХреНрд▓рд╕реНрдЯрд░ (рд╕реНрд╡рд┐рдЪ) рдореЗрдВ 2 рд╕рдмрд╕реЗ рд╕рд╣реА рд╣реЛрд╕реНрдЯ рд╣реИрдВ? рдпрджрд┐ рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдХреЛ рдПрдХ рдЕрд▓рдЧ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирддреЗ рд╣реИрдВ (рдпрд╛ рдПрдХ рд╕рдВрдХреЗрдд рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛ рдореЗрдЬрдмрд╛рди рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╕реНрд╡рд┐рдЪ рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реИрдВ), рддреЛ рдпрд╣ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдпреЗ 2 рдЪрд░рдо рд╣реЛрд╕реНрдЯ рдХрд╣реАрдВ рд╕реЗ рдЬреБрдбрд╝реЗ рдирд╣реАрдВ рд╣реИрдВ! рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ 6 рд╕реНрд╡рд┐рдЪ рд╣реИрдВ, рдФрд░ 4 рд▓рд╛рдЗрдиреЗрдВ рдмрд╛рдХреА рд╣реИрдВ, рдЬрд╣рд╛рдВ 2 рдФрд░ рд▓рд╛рдЗрдиреЗрдВ рд╣реИрдВ? рд╣рдордиреЗ рдПрдХ (рдЯрд┐рдкреНрдкрдгреА рдХреЗ рд░реВрдк рдореЗрдВ рдКрдкрд░ рд▓рд┐рдЦрд╛ рд╣реИ) рдорд┐рдЯрд╛ рджрд┐рдпрд╛, рдФрд░ рджреВрд╕рд░реЗ рдореЗрдВ, "рджреВрд░ рд╕рд╣реА рдкрд░ 2 рдореЗрдЬрдмрд╛рди" рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛ред
[ рдЧреЛрдЯреЛ рд░реАрд╕реЗрдЯ рдмрд┐рдВрджреБ ] рдЖрдЧреЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдмреЗрдХрд╛рд░ рд╣реИред рдбреЗрдб рдПрдВрдб (рдЧрд┐рдЯ рдмреНрд░рд╛рдВрдЪ)ред рдЖрдкрдХреЛ "рд░реАрд╕реЗрдЯ рдкреЙрдЗрдВрдЯ" рд▓реЗрдмрд▓ рдкрд░ рд╡рд╛рдкрд╕ рд░реЛрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЗрд╕рдХреЗ рдмрд╛рдж рдЬреЛ рдХреБрдЫ рднреА рдерд╛, рдЙрд╕реЗ рднреВрд▓рдХрд░, рд▓реЗрдХрд┐рди рдХрд╣рд╛рдиреА рдХреЗ рд▓рд┐рдП рдЗрд╕ рд╢рд╛рдЦрд╛ рдХреЛ рдЫреЛрдбрд╝ рджреЗрдВред
рдЕрдм, рдПрдХ рдФрд░ "рдореГрдд рд╢рд╛рдЦрд╛" рдореЗрдВ рдирд╣реАрдВ рдЖрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╕реНрдореГрддрд┐ рдореЗрдВ рдиреЗрдЯрд╡рд░реНрдХ рдЯреЛрдкреЛрд▓реЙрдЬреА рдХреА рдЕрдВрддрд┐рдо рд╕рдВрд░рдЪрдирд╛ (рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡) рдкрд░ рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣реА рд╣реИ, рд╣рдо "рдиреЗрдЯрд╡рд░реНрдХ рдЯреЛрдкреЛрд▓реЙрдЬреА" рдХреЗ рд╕рдордп рдЬреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ:
тАУ-[]--> --[ ]--[ ]--[???]--> <strong> </strong> --[???]-->
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ , рд╕рднреА рдореЗрдЬрдмрд╛рди рдореМрдЬреВрдж рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:
<strong>..........11</strong> <-- 1111111111.. 11111111.... ..111....... .....111.... 11..........
рджреВрд╕рд░реЗ , рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЛ рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП (рдкреНрд░рддреНрдпреЗрдХ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рд▓рд┐рдП рдореВрд▓ рдХреНрд▓рд╕реНрдЯрд░; рдлрд┐рд▓рд╣рд╛рд▓: рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХрд╛ рдмрдЪреНрдЪрд╛ ; рдиреЗрдЯрд╡рд░реНрдХ рдЖрд░реЗрдЦ рдкрд░, рдореИрдВрдиреЗ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЛ рдмрдЪреНрдЪреЛрдВ рдХреЗ рдКрдкрд░ рд░рдЦрд╛ рд╣реИ) (рдмрд╛рдИрдВ рдУрд░ рдХреНрд▓рд╕реНрдЯрд░ рдирдВрдмрд░ рдЬреЛрдбрд╝реЗ рдЧрдП рд╣реИрдВ):
0) ..........11 parent: ? 1) 1111111111.. parent: ? 2) 11111111.... parent: 1 3) ..111....... parent: 2 4) .....111.... parent: 2 5) 11.......... parent: 2
рдиреЛрдЯ : рдпрджрд┐ рдЖрдк рдЗрд╕ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдЗрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рдЖрд░реЗрдЦ рдХреА рддреБрд▓рдирд╛ рдХрд░рддреЗ рд╣реБрдП, рдпрд╣рд╛рдВ рдХреБрдЫ рдЕрдЬреАрдм рдиреЛрдЯрд┐рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдореБрдЭреЗ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВред
рд╕реНрдкреЛрдЗрд▓рд░, рдкреВрд░реА рд╕реВрдЪреА рдкрдврд╝рдиреЗ рддрдХ рдирд╣реАрдВ рдЦреЛрд▓рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ (рдЖрд░реЗрдЦ рдХреЗ рдЕрдиреБрд╕рд╛рд░), рдХреНрд▓рд╕реНрдЯрд░ 1 рдХреЗ рд▓рд┐рдП рдЬрдирдХ рдХреНрд▓рд╕реНрдЯрд░ 0 рд╣реИ, рд▓реЗрдХрд┐рди рддрдм " рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЗ рдмрдЪреНрдЪреЗ " рдХреА рд╢рд░реНрдд рдкреВрд░реА рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рд╢рд╛рдпрдж " рдкрд╣рд▓реЗ " рдореЗрдВ рд╣рдордиреЗ рдЧрд▓рддреА рдХреА, рдФрд░ " ..........11
" рдХреЗ рдмрдЬрд╛рдп " 111111111111
" рдЬреЛрдбрд╝рдиреЗ рд▓рд╛рдпрдХ рдерд╛?
рддреАрд╕рд░рд╛ , рдПрдХ рдкреЗрдбрд╝ рдореЗрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдкреЗрдбрд╝реЛрдВ (рдпрд╛рдиреА, рд╡рди ) рдХреЛ рдЬреЛрдбрд╝рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ "рдореВрд▓" рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:
-1) 111111111111 0) ..........11 parent:-1 1) 1111111111.. parent:-1 2) 11111111.... parent: 1 3) ..111....... parent: 2 4) .....111.... parent: 2 5) 11.......... parent: 2
рдЪреМрдерд╛ , рдкреНрд░рддреНрдпреЗрдХ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЗ рд╕рд╛рде рдмрдЪреНрдЪреЛрдВ рдХреА рд╕реВрдЪреА рдмрдирд╛рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛:
-1) 111111111111 children: 0,1 0) ..........11 parent:-1 1) 1111111111.. parent:-1, children: 2 2) 11111111.... parent: 1, children: 3,4,5 3) ..111....... parent: 2 4) .....111.... parent: 2 5) 11.......... parent: 2
рдФрд░ рдЕрдВрдд рдореЗрдВ , рдЕрдм рдмрдЪреНрдЪреЛрдВ рдХреЛ рдЙрдирдХреЗ рдорд╛рддрд╛-рдкрд┐рддрд╛ рд╕реЗ рдЕрд▓рдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ:
-1) ............ children: 0,1 0) ..........11 parent:-1 1) ........11.. parent:-1, children: 2 2) ............ parent: 1, children: 3,4,5 3) ..111....... parent: 2 4) .....111.... parent: 2 5) 11.......... parent: 2
рдЕрдм рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдПрдХ рдХреНрд▓рд╕реНрдЯрд░ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреА рд╣реИ, рдЕрд░реНрдерд╛рдд рдПрдХ рд╣реА рд╕реНрд╡рд┐рдЪ рд╕реЗ рдЬреБрдбрд╝реЗ рдореЗрдЬрдмрд╛рди рдХреЛ рдЕрдВрдХред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд░реБрдХреЛ, рд╣рдорд╛рд░реЗ рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ 6 рд╕реНрд╡рд┐рдЪ рд╣реИрдВ, рдФрд░ 7 рдХреНрд▓рд╕реНрдЯрд░ рд╣реИрдВ! " рд╕реНрдкреЛрдЗрд▓рд░ рдХреЗ рдКрдкрд░ рд╕реНрдкреЙрдЗрд▓рд░ рд╕реЗ рдкрд╛рда рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрдВрдд рдореЗрдВ, рдпрд╣ рдкреВрд░реА рд╕реВрдЪреА рдкрдврд╝рдиреЗ рддрдХ рдирд╣реАрдВ рдЦреБрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рд╣реИ ", рдФрд░ рд╕реНрдерд┐рддрд┐ рдХреЛ рдареАрдХ рдХрд░реЗрдВ:
0) ..........11 children: 1 1) ........11.. parent: 0, children: 2 2) ............ parent: 1, children: 3,4,5 3) ..111....... parent: 2 4) .....111.... parent: 2 5) 11.......... parent: 2
рдпрд╣ рдбреЗрдЯрд╛ рдареАрдХ "рдиреЗрдЯрд╡рд░реНрдХ рдЯреЛрдкреЛрд▓реЙрдЬреА" рд╣реИ - рдпрд╣ рд╕реНрд╡рд┐рдЪ рдХреЗ рдкреЗрдбрд╝ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдореЗрдВ рд╕реЗ рдЖрдк рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╕реНрд╡рд┐рдЪ рд╕реЗ рдЬреБрдбрд╝реЗ рд╕рднреА рд╣реЛрд╕реНрдЯ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
тАУ-[]--> --[ ]--[ ]--[???]--> <strong> </strong> --[???]-->
рдпрд╣ рд╕рдордЭрдирд╛ рдмрд╛рдХреА рд╣реИ рдХрд┐ рдбреЗрдЯрд╛ рдХреЛ рдЗрд╕ рд░реВрдк рдореЗрдВ рдХреИрд╕реЗ рд▓рд╛рдпрд╛ рдЬрд╛рдПред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╣рдордиреЗ рдЬреЛ рдХреБрдЫ рднреА рдХрд┐рдпрд╛ рд╣реИ (рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рджреВрд╕рд░реЗ, ...) рдХреЛ рдПрдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдореЗрдВ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
- "рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ" (рд╕реНрдкреЙрдЗрд▓рд░ рд╕реЗ рд╕реБрдзрд╛рд░ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ "рддреАрд╕рд░реА" рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЗ рд╕рдорд╛рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ) - рдПрдХ "рд░реВрдЯ" рдХреНрд▓рд╕реНрдЯрд░ "
111111111111
" ( рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ ) рдЬреЛрдбрд╝реЗрдВ, рдЬрд┐рд╕рдореЗрдВ (рдЬрдВрдЧрд▓ рдХреЗ рд╕рднреА рдкреЗрдбрд╝реЛрдВ рдХреЗ рдореЗрдЬрдмрд╛рди, рдореЗрдЬрдмрд╛рди рдореЗрдЬрдмрд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╣реА рд╕реНрд╡рд┐рдЪ рдкрд░ рд╕реНрдерд┐рдд рдореЗрдЬрдмрд╛рди) ), рдпрд╛рдиреА рдЗрд╕рдореЗрдВ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рд╕рднреА рд╣реЛрд╕реНрдЯ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ; - "рджреВрд╕рд░реА рдмрд╛рдд" - рдкреНрд░рддреНрдпреЗрдХ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреА рдЦреЛрдЬ рдХрд░реЗрдВ ;
- "рдЪреМрдерд╛" - рдкреНрд░рддреНрдпреЗрдХ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЗ рд▓рд┐рдП рдмрдЪреНрдЪреЛрдВ рдХреА рд╕реВрдЪреА рдмрдирд╛рдирд╛ ;
- "рдФрд░ рдЕрдВрдд рдореЗрдВ" - рдЕрдкрдиреЗ рдорд╛рддрд╛-рдкрд┐рддрд╛ рд╕реЗ рдмрдЪреНрдЪреЛрдВ рдХрд╛ рдмрд╣рд┐рд╖реНрдХрд╛рд░ ред
рдЕрдм рдЖрдк рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдореЗрдВ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ (рдереЛрдбрд╝рд╛ рдмрджрд▓рд╛ рд╣реБрдЖ рд░реВрдк):
тЧП тЧП [] тЦ║ [ ] [ ] тЦ║ / [ "" ] тЦ║ / [ ] [ ] [ ] тЦ║ тЧП [???] тЦ║ тЧП
рд╡реИрдХрд▓реНрдкрд┐рдХ рджреГрд╢реНрдп
тЧП тЦ║ [] тЦм тЦ║ [ ] [ ] тЦм / тЦ║ [ "" ] тЦм / тЦ║ [ ] [ ] [ ] тЧП тЦ║ [???] тЧП тЧП
рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ рдпрджрд┐ рдЖрдк рдЗрд╕ рдПрд▓реНрдЧреЛрд░рд┐рдердо рдХреЛ рджреВрд╕рд░реЗ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВред рдореИрдВ " LLTR рднрд╛рдЧ 1 :: рдЕрд▓рдЧ рдЯреЛрдкреЛрд▓реЙрдЬреА рдХреЗ рд╕рд╛рде рдЕрдзрд┐рдХ рдиреЗрдЯрд╡рд░реНрдХ, рдирдП рдиреЗрдЯрд╡рд░реНрдХ рдЬреЛрдбрд╝рдиреЗ " рд╕реЗ Network_ serial
рдиреЗрдЯрд╡рд░реНрдХ рдФрд░ рдЗрд╕рдХреЗ рд╕рд┐рдореБрд▓реЗрд╢рди рдкрд░рд┐рдгрд╛рдо (рдЖрдБрдХрдбрд╝реЗ) рд▓реЗрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ ред
рдиреЛрдЯ : рдореИрдВрдиреЗ рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рдиреЗрдЯрд╡рд░реНрдХ рдХреЛ рдХреНрдпреЛрдВ рдЪреБрдирд╛? рдпрд╣ рдХрд╛рдлреА рдмрдбрд╝рд╛ рд╣реИ, рдФрд░ рдЗрд╕рд╕реЗ рдПрдХрддреНрд░ рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рдореЗрдВ рдЦрд╛рдорд┐рдпрд╛рдВ рд╣реИрдВ (рдЗрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд▓рд┐рдП рдмрд┐рдЧрд╛рдбрд╝рдиреЗ рд╡рд╛рд▓реЗ "рд╕рд┐рдореБрд▓реЗрд╢рди рдкрд░рд┐рдгрд╛рдо" рджреЗрдЦреЗрдВ)ред
рдЪрд▓реЛ рдЪрд▓рддреЗ рд╣реИрдВ!
binarization
рдореЗрдЬрдмрд╛рди рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдПрдВ:
.111111.. .111111.. .111111.. .111111.. .111111.. .111111.. .......11 .......11 ..1...... ...1111.. ...1111.. ...1111.. ...1111.. .......11 .......11 1........ ...1111.. ...1111.. ...1111.. ...1111.. .......11 .......11 1........ .1....... ....1.... .....11.. .....11.. .......11 .......11 1........ .1....... ..1...... .....11.. .....11.. .......11 .......11 1........ .1....... ..1...... ...1..... ......1.. ......... ......... ......... .1....... ..1...... ...1..... ....1.... ......... ......... ......... .1....... ..1...... ...1..... ....1.... .....1... ........1 1........ .111111.. .111111.. .111111.. .111111.. .111111.. .111111.. 1........ .111111.. .111111.. .111111.. .111111.. .111111.. .111111.. .......1.
рдПрдХрд▓ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рд╕реЗ рд╢реБрджреНрдзрд┐рдХрд░рдг
.111111.. --> .111111.. .111111.. --> .111111.. .111111.. --> .111111.. .111111.. --> .111111.. .111111.. --> .111111.. .111111.. --> .111111.. .......11 --> .......11 .......11 --> .......11 ..1...... --> ...1111.. --> ...1111.. ...1111.. --> ...1111.. ...1111.. --> ...1111.. ...1111.. --> ...1111.. .......11 --> .......11 .......11 --> .......11 1........ --> ...1111.. --> ...1111.. ...1111.. --> ...1111.. ...1111.. --> ...1111.. ...1111.. --> ...1111.. .......11 --> .......11 .......11 --> .......11 1........ --> .1....... --> ....1.... --> .....11.. --> .....11.. .....11.. --> .....11.. .......11 --> .......11 .......11 --> .......11 1........ --> .1....... --> ..1...... --> .....11.. --> .....11.. .....11.. --> .....11.. .......11 --> .......11 .......11 --> .......11 1........ --> .1....... --> ..1...... --> ...1..... --> ......1.. --> ......... --> ......... ......... --> ......... ......... --> ......... .1....... --> ..1...... --> ...1..... --> ....1.... --> ......... --> ......... ......... --> ......... ......... --> ......... .1....... --> ..1...... --> ...1..... --> ....1.... --> .....1... --> ........1 --> 1........ --> .111111.. --> .111111.. .111111.. --> .111111.. .111111.. --> .111111.. .111111.. --> .111111.. .111111.. --> .111111.. .111111.. --> .111111.. 1........ --> .111111.. --> .111111.. .111111.. --> .111111.. .111111.. --> .111111.. .111111.. --> .111111.. .111111.. --> .111111.. .111111.. --> .111111.. .......1. -->
рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рд╕реЗ рд╕рдлрд╛рдИ (рд╣рдо "рдХреНрд▓рд╕реНрдЯрд░ / рд╡рди" рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ):
.111111.. .......11 ...1111.. .....11.. .........
рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП , рдореИрдВ " 1
" рдорд╛рддреНрд░рд╛ рдХреЗ рдЕрд╡рд░реЛрд╣реА рдХреНрд░рдо рдореЗрдВ рдЫрд╛рдБрдЯреВрдБрдЧрд╛ред
.111111.. ...1111.. .....11.. .......11 .........
рдиреЛрдЯ : рдпрд╣ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдореЗрдВ рдЫрдБрдЯрд╛рдИ рд╕рд╣рд┐рдд рд▓рд╛рдпрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЖрдкрдХреЛ рдХреНрдпрд╛ рд▓рдЧрддрд╛ рд╣реИ?
"рд░реВрдЯ" рдХреНрд▓рд╕реНрдЯрд░ рдЬреЛрдбрд╝рдирд╛ (рд╣рдореЗрдВ "рдХреНрд▓рд╕реНрдЯрд░ / рдЯреНрд░реА" рдорд┐рд▓рддрд╛ рд╣реИ):
111111111 .111111.. ...1111.. .....11.. .......11 .........
рдЗрд╕рдореЗрдВ 2 рдкреЗрдбрд╝реЛрдВ рдХреЗ рдореЗрдЬрдмрд╛рди (рдмрд╛рдПрдВ " .111111..
" рдФрд░ рджрд╛рдПрдВ " .......11
" рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛) рдФрд░ 1 рдореЗрдЬрдмрд╛рди (" 1........
") рдПрдХ рдкрд░ рд╕реНрдерд┐рдд рд╣реИ рдкреНрд░рд╕рд╛рд░рдг рдореЗрдЬрдмрд╛рди рдХреЗ рд╕рд╛рде рд╕реНрд╡рд┐рдЪ)ред
рдкреНрд░рддреНрдпреЗрдХ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рд▓рд┐рдП рдореВрд▓ рдЦреЛрдЬ:
0) 111111111 1) .111111.. parent: 0 2) ...1111.. parent: 1 3) .....11.. parent: 2 4) .......11 parent: 0 5) ......... parent: 4
рдиреЛрдЯ : рдпрд╣ рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдБ рдбреЗрдЯрд╛ рдЕрдВрддрд░рд╛рд▓ рдХрд╛ рдирдХрд╛рд░рд╛рддреНрдордХ рдкреНрд░рднрд╛рд╡ рдЖрдпрд╛ рдерд╛ - 5 рд╡реЗрдВ рдХреЗ рд▓рд┐рдП 4 рд╡рд╛рдВ рдХреНрд▓рд╕реНрдЯрд░ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдмрди рдЧрдпрд╛! рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдХреЛрдИ рднреА рдХреНрд▓рд╕реНрдЯрд░ 5 рд╡реЗрдВ рдХреНрд▓рд╕реНрдЯрд░ рдХрд╛ рдЬрдирдХ рдмрди рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЦрд╛рд▓реА рд╣реИ (тИЕ)ред
рдкреНрд░рддреНрдпреЗрдХ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЗ рд▓рд┐рдП рдмрдЪреНрдЪреЛрдВ рдХреА рд╕реВрдЪреА рдмрдирд╛рдирд╛:
0) 111111111 children: 1,4 1) .111111.. parent: 0, children: 2 2) ...1111.. parent: 1, children: 3 3) .....11.. parent: 2 4) .......11 parent: 0, children: 5 5) ......... parent: 4
рдорд╛рддрд╛-рдкрд┐рддрд╛ рд╕реЗ рдмрдЪреНрдЪреЛрдВ рдХрд╛ рдмрд╣рд┐рд╖реНрдХрд╛рд░:
0) 1........ children: 1,4 1) .11...... parent: 0, children: 2 2) ...11.... parent: 1, children: 3 3) .....11.. parent: 2 4) .......11 parent: 0, children: 5 5) ......... parent: 4
рдЗрд╕ рдХрджрдо рдкрд░, рд╣рдо рдПрдХ "рдиреЗрдЯрд╡рд░реНрдХ рдЯреЛрдкреЛрд▓реЙрдЬреА" рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдереЗред рдФрд░ рд╣рдореЗрдВ рдорд┐рд▓ рдЧрдпрд╛ред рдпрджрд┐ рд╣рдо рдХреЗрд╡рд▓ рдореЗрдЬрдмрд╛рдиреЛрдВ рдХреЗ рд╕реНрдерд╛рди рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ "рдиреЗрдЯрд╡рд░реНрдХ рдЯреЛрдкреЛрд▓реЙрдЬреА" рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдХрд╛рдлреА рд╕рдВрддреЛрд╖рдЬрдирдХ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╣рдорд╛рд░реЗ рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ рдПрдХ рдФрд░ рд╕реНрд╡рд┐рдЪ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛, рдЬрд┐рд╕рдореЗрдВ 0 рд╣реЛрд╕реНрдЯ рдХрд░рддрд╛ рд╣реИ!
рд╕рдм рдХреБрдЫ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрди "рдбреЗрдЯрд╛ рдЦрд╛рдорд┐рдпреЛрдВ" рдХреЛ рдЦрддреНрдо рдХрд░рдиреЗ рдХреЗ рдкрд╣рд▓реЗ рдЪрд░рдгреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рдмрд╛рдж рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧрд╛ред рдпрд╣ "рдмрд╛рдЗрдирд░реАрдХрд░рдг" рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
тЧП тЧП [] тЦ║ [<strong> (тИЕ), (тж▒)</strong>] [ ] [ ] тЦ║ / [ "" ] тЦ║ / [ ] [ ] [ ] тЦ║ тЧП [???] тЦ║ тЧП
рд╣рдо рдЦрд╛рд▓реА рд╕реЗрдЯ рд╣рдЯрд╛рддреЗ рд╣реИрдВ (тИЕ; " .........
"), рд▓реЗрдХрд┐рди рдХреНрдпреЛрдВ рдмреНрд░рд╣реНрдорд╛рдВрдб рд╣рдЯрд╛рддреЗ рд╣реИрдВ (тАЬ?" 111111111
")? рдЬрдм рд╣рдо "рдмрд╛рдЗрдирд░рд╛рдЗрдЬреЗрд╢рди" рдЪрд░рдг рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЙрддреНрддрд░ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред "рджреНрд╡реИрд░реАрдХрд░рдг" рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдПрдХ рд╣реА рдбреЗрдЯрд╛ (рд╡рд░реНрдгрд┐рдд рджреЛрд╖ рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛) рдкрд░ " .........
" рдФрд░ " 111111111
" рджреЛрдиреЛрдВ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░, рдХреНрдпреЛрдВрдХрд┐ рд╕рд╣реА рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдореЗрдВ " 111111111
" рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ " .........
" рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реИ, рддреЛ рд╣рдо рд╕рднреА " 111111111
" рдХреЛ рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВ (рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╡реЗ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреЛрдИ рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рд░рдЦрддреЗ рд╣реИрдВ рдбреЗрдЯрд╛ рдореЗрдВ "рдЦрд╛рдорд┐рдпрд╛рдВ" рд╣реИрдВред
рдпрджрд┐ рдЖрдк рдПрдХ рд╣реА рдиреЗрдЯрд╡рд░реНрдХ (" Network_ serial
") рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ (рд╕рдВрд╡рд░реНрдзрд┐рдд, рд╕рд╣реА) рдПрд▓реНрдЧреЛрд░рд┐рджрдо рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ "рдиреЗрдЯрд╡рд░реНрдХ рдЯреЛрдкреЛрд▓реЙрдЬреА" рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдЧреА:
0) 1........ children: 1,4 1) .11...... parent: 0, children: 2 2) ...11.... parent: 1, children: 3 3) .....11.. parent: 2 4) .......11 parent: 0
Note : , . , . , 2 ( тАЬswitch0тАЭ), 1 ( 2 ):
тАЬ тАЭ
0) 11........ children: 1,4 1) ..11...... parent: 0, children: 2 2) ....11.... parent: 1, children: 3 3) ......11.. parent: 2 4) ........11 parent: 0
0) 1...... children: 1,4 1) .1..... parent: 0, children: 2 2) ..1.... parent: 1, children: 3 3) ...11.. parent: 2 4) .....11 parent: 0
тАЬ тАЭ. тАЬ тАЭ тАЬ тАЭ. RingSync , ( : PreтАСorder ). тАЬ тАЭ :
1 1........ hostS/seed -> host0 -> . .11...... host1 -> host2 -> . ...11.... host3 -> host4 -> . .....11.. host5 -> host6 -> . .......11 host7 -> host8/leech
Note : (, ) , broadcast .
, тАЬ тАЭ ( ), (тАЬ Network_ serial
тАЭ). ( ), . :
, тАЬ тАЭ (тАЬ тАЭ):
..........11 1 hS/seed -> h10 -> h11 -> ........11.. . h8 -> h9 -> ..111....... . h2 -> h3 -> h4 -> .....111.... . h5 -> h6 -> h7 -> 11.......... . h0 -> h1/leech
( тАЬ тАЭ) . , тАУ 2, .. (тИЕ). , тАЬ тАЭ , тАЬ тАЭ ( , ), (тИЕ) ? , : тАС, тАЬтАЭ , ( , я╝Ыя╝Й; тАС, ( ).
, тАЬ тАЭ, тАж
Note : , , . .
, ( ), .
:
..........11 1 hS/seed -> <strong>h11</strong> -> <strong>h10</strong> -> ........11.. . <strong>h9</strong> -> <strong>h8</strong> -> ..111....... . h2 -> h3 -> h4 -> .....111.... . h5 -> h6 -> h7 -> 11.......... . h0 -> h1/leech
тАЬ Network_ serial
тАЭтАж
, :
switch0 -> switch1 -> switch2 -> switch3 -тФР switch4 <- switch0 <- switch1 <- switch2 <-----------тФШ
тАж тАЬтАЭ тАЬ switch0 <- switch1 <- switch2
тАЭ. :
switch0 -> switch4 -тФР switch3 <- switch2 <- switch1 <- switch0 <-----------тФШ
:
, , , !
Note : , .. тАЬ тАЭ.
Note : тАЬ тАЭ, тАЬ тАЭ ( ; тАУ L0 ) тАУ .
, тАЬ тАЭ .
Note : , тАУ .
() : тАЬ тАЭ ( LLTR 0:: : тАЬ тАЭ ) :
- тАУ ;
- тАУ ;
- тАУ ( );
- тАУ ( ) тАУ , .
Note : тАЬ тАУ тАЭ тАЬ , тАЭ, , , .
Note : тАУ ( ). тАУ ( ) . , ( ): ( ); ( ).
:
тЧП тЧП [] тЦ║ [ (тИЕ), (тж▒)] [ ] [ ] тЦ║ / [ "" ] тЦ║ / [ ] [ ] [ ] тЦ║ тЧП [ /] тЦ║ тЧП
тАЬ тАЭ тАЬ Network_ serial
тАЭ :
1 1........ hostS/seed -> host0 -> . .......11 host7 -> host8 -> . .11...... host1 -> host2 -> . ...11.... host3 -> host4 -> . .....11.. host5 -> host6/leech
тАЬ тАЭ, .
тАЬ тАЭ . тАЬ тАЭ :
s0) ..........11 1 hS/seed -> h10 -> h11 -> s1) ........11.. . h8 -> h9 -> s3) ..111....... . h2 -> h3 -> h4 -> s4) .....111.... . h5 -> h6 -> h7 -> s5) 11.......... . h0 -> h1/leech
? , , , ( ):
s0 -> s1 -> s2 -> s3 -тФР тФМ- s4 <- s2 <------тФШ тФФ------> s2 -> s5
Note : тАЬ s#
тАЭ тАЬ тАЭ (. ).
# TL;DR
:
- (~~ kтАСmedoids ~~) + (тИЕ), (тж▒) + :
a min
a max
- 2
- + (тИЕ), (тж▒)
- :
- ( : )
- ( O(nlogn) O(1) )
- ( nth_element implementations complexities )
a medL
(medLow) a medR
(medHi)- 2 ,
- +
- + тАЬтАЭ :
- + тАЬтАЭ
- +
bitCount
( max min)
- :
- min (min) (max) ( ) , ;
bitCount(a i )==bitCount(a i |a min )
, : a i ==a i |a min
- , ( ) тАУ
- min ( )
- () :
- ( тАЬтАЭ тАЬтАЭ)
- :
- тАЬтАЭ, max , or|=a i ,
a max &=~or
( тАЬ a max ^=or
тАЭ тАУ )
( a max
a min
, .. , )
- /:
- (RingSync)
Note :
, .
. ( ), .
тАЬ , тАЭ
, , (тАЬ {тАж}
тАЭ) () . ():
тАЬтАЭ, ():
, :
? TensorsFlowing
рдпрд╛рдиреА тАУ , тАЬ, тАЭ тАУ .
?
:
- тАУ ( ) , . тАЬтАЭ , .. тАЬтАЭ тАЬтАЭ . , тАЬ тАЭ, .
- тАУ тАЬтАЭ / , , . . , (Interprocedural optimization, Whole program optimization; LinkтАСtime optimization) тАЬтАЭ тАУ .
Note : : .. (2D/3D , , *, тАж). (), , , ( , , 24 , ; , ACPI ), ( ) , я╝Ъя╝И. (, , тАж) , тАС . , , тАС. ( тАЬтАЭ тАЬтАЭ), тАЬ *тАЭ. , тАУ , , , . () тАУ , . тАУ ( ), . тАУ , //тАС/ /. (debug) тАС .
Note : Debug , (, тАУ { 9 , ; тАУ ├Ч16 ( 1.2 1.5); тЖТ }), warning' .
Note : , , , тАС. , , ( тАЬ тАЭ ) .
# Tooo Long; Didn't Read; Visualize, plz.
Note : , ( GIF тАЬTensorsFlowingтАЭ тАЬ тАЭ). GIF тАЬTensorsFlowingтАЭ GIF тАЬ Loop over python list animation тАЭ. , GIF , тАЬ тАЭ / . , тАС 1:1, тАЬ тАЭ.
Note : GIF ( тАЬLoop over python list animationтАЭ), . , , . ( я╝Ыя╝Й
Note : ( ) ( ). , .
Note : GIF ( тАЬScroll DownтАЭ) тАУ (Ctrl+R), GIF . ( , ; , тАС <oembed>
? )
#1
int average;{ int max,min; max=min=countFill[i][0]; for(int j=1;j<numHosts;j++){ max=countFill[i][j]>max?countFill[i][j]:max; min=countFill[i][j]<min?countFill[i][j]:min; } average=(max+min)/2; }
Note : GIF тАж
#2
int lo=0; struct CnN{ int Count; }iFill[numHosts]; for(int j=0,hi=numHosts-1;j<numHosts;j++){ if(countFill[i][j]<average) iFill[lo++].Count=countFill[i][j]; else iFill[hi--].Count=countFill[i][j]; } bitCluster[i]=0; if(lo==0||lo==numHosts) continue;
Note : ( ) .
#3
int averageMed;{ CnN *iFillLo=&iFill[0]; CnN *iFillHi=&iFill[lo]; const int hi=numHosts-lo; if(lo>1) std::nth_element(iFillLo,&iFillLo[lo/2],&iFillLo[lo],[](const CnN a,const CnN b){return a.Count<b.Count;}); if(hi>1) std::nth_element(iFillHi,&iFillHi[hi/2],&iFillHi[hi],[](const CnN a,const CnN b){return a.Count<b.Count;}); averageMed=(iFillLo[lo/2].Count+iFillHi[hi/2].Count)/2; }
Note : std::nth_element()
, , ( + = ).
#4
for(unsigned int j=0;j<numHosts;j++) bitCluster[i]|=( (countFill[i][j]<averageMed)?1:0 )<<j;
#5
bitCluster[i] = bitCluster[i]^(1<<((i/(numHosts-1))+(i%(numHosts-1)+1))%numHosts) ? bitCluster[i]:0;
Note : GIF
ред ReadMe ( ; тАС , ).
...
3тАС 1.92 , , 1.6 - 2 . , 3тАС ( ) ( Go тАУ 2 , тАУ 2 - 4 ). (4 ), 2.5 LLTR.
+ TODO' + .
, тАС , , , 2 .
Note : , / , тАж
рд╕реНрдкреЙрдЗрд▓рд░
2 ?
# Tooo Long; Didn't Read; Visualize, plz.
TODO[old]: (1 тАУ gif_1, , 2 тАУ gif_2, , тАж)
TODO: ,
? ( )
TODO: ( GIF тАЬTensorsFlowingтАЭ, тАС тАУ ),
( Note, GIF , , , YouTube. : 4:2:0 TVтАС ( 16 - 235 ). , тАУ (). : SVG тАУ , тАЬ тАСтАЭ; SWF тАУ RIP)
( ), std (, ) ( );
( тАЬ 1
тАЭ == тАЬ 1
тАЭ ). рдПрдХ рдЙрджрд╛рд╣рд░рдг:
0) 111111111111 1) 1111111111.. 2) 11111111.... 3) ..111....... 4) .....111.... <- , 2тАС, 3тАС 5) 11..........
(.. ), .. тАЬ 1
тАЭ ( ) (. тАЬ тАЭ тАЬ тАЭ). тАЬ 1
тАЭ, ..:
0) 111111111111 1) 1111111111.. 0 2) 11111111.... 1 3) ..111....... 2 4) .....111.... 2 5) 11.......... 4
( , тАУ + (+), )
( тАЬтАЭ). CPU, + . , , , , .
...
3: OMNeT++
LLTR 3: OMNeT++
Golang. ( , )
( , OMNeT++ c Qtenv)
( тАЬbackground/freshтАЭ тАЬ.nedтАЭ {тАЬ grey99
тАЭ тЖТ тАЬ -,-,0;bgi=background/fresh
тАЭ}, тАЬblueprint/print-26.pngтАЭ Qtenv тАЬLLTR 1:: тАЭ)
( , тАЬOMNetProject (v0.9) lltdappтАЭ)
( , тАЬhostSтАЭ тАУ ( ) . , , тАУ broadcast , unicast , .. тАУ , . , тАУ тАЬ тАЭ. тАЬ тАУ тАЭ, : тАЬ тАЭ тАУ тАЬSerialтАЭ тАЬ 1тАЭ ( тАУ тАЬ тАЭ). тАУ (, , broadcast unicast )[ rand , , тАУ , тАУ ])
( Precision Time Protocol (PTP) 2016-04-12)
( тАУ , , тАЬa3_v0.3_ft0.1.0тАЭ, тАЬa3_v0.3.0тАЭ тАУ , ; тАЬftтАЭ тАУ fixed time)
.
TODO [x]: , , . тАЬ TODO [x]тАЭ тАЬ тАЭ ( )
рд╕рдВрджрд░реНрдн:
4:
LLTR 4:
тИА habrauser тИИ {user тИИ Habrahabr | user тАЬтАЭ},
(, . )
рд╕рдВрджрд░реНрдн:
, (hostsCount) тАУ . . ? (: )
(, тАЬтАЭ, {тАЬтАЭ,тАЬтАЭ,тАЬтАЭ})
( ( ) [ ; тАЬ тАЭ], тАУ nтАС тАЬ тАЭ; , LLTR, )
Permutation of bitsets (тАЬlexicographicтАЭ order) derivation (mathematical induction)
( , __ [ , , , ]):
n=4; k=2 bitset i 0011 <- 0 0101 <- 1 1001 <- 2 0110 <- 3 1010 <- 4 1100 <- 5
Note: , .. bitset k i < bitset k i+1 , i тАУ тАЬ тАЭ; k тАУ ; n тАУ .
тАЬтАЭ ( ; /; , тАЬтАЭ/), ?
- ( тАЬB9тАЭ) ( тАЬ тАЭ O_o; , )
- тАЬ
_tmain()
тАЭ ( ) - , , тАУ тАЬ
med()
тАЭ тАЬ demed()
тАЭ
, :
:
тАЬ тАЭ (тАЬ тАЭ; тАЬPermutations of multisetsтАЭ).
рдЕрдВрддрд░ рдХреНрдпрд╛ рд╣реИ? ( [abcdef]), ( [000011]).
, ( ):
a => 0 b => 0 c => 0 d => 0 e => 1 f => 1
, , .. , , [abcdfe] тЗТ [000011], [000011] . (, )
{{000011}}.
{abcdef} 6! ( nuclphys.sinp.msu.ru/mathan/p1/m0204.html ).
.
, , ( [000011]) , ( (тАЬ1тАЭ) 2! ├Ч (тАЬ0тАЭ) 4! ) = 2! ├Ч 4! = 2! ├Ч (6тИТ2)! ред
= 6! тИХ (2! ├Ч (6тИТ2)!).
( nuclphys.sinp.msu.ru/mathan/p1/m0204.html ), ( ru.wikipedia.org/wiki/?stable=1 ) тАУ . . тАЬ тАЭ ( ru.wikipedia.org/wiki/?stable=1 ), тАЬтАЭ тАЬ1тАЭ тАЬ0тАЭ тАУ ( ru.wikipedia.org/wiki/?stable=1#___ ).
EN: тЖТ тЖТ combination: ( kтАСcombination with repetitions / kтАСmulticombination / multisubset ), ( en.wikipedia.org/wiki/Combination?stable=1#Example_of_counting_multisubsets ), тАЬStars and BarsтАЭ ( en.wikipedia.org/wiki/Stars_and_bars_(combinatorics)?stable=1#Proofs_via_the_method_of_stars_and_bars ). (/ ): тАЬ1тАЭ тАУ Star, тАЬ0тАЭ тАУ Bar.
, тАЬStars and BarsтАЭ тАЬтАЭ ( тАЬ тАЭ тАУ kтАСcombination with repetitions) тАЬ тАЭ (permutations of multisets): en.wikipedia.org/wiki/Permutation?stable=1#Permutations_of_multisets .
RU: ru.wikipedia.org/wiki/?stable=1#__
PS stackoverflow.com/a/24257996 , ( тАУ : n!тИХ((nтИТk)!); nтй╡k; (nтИТk)!тЗТ1; n! ).
PPS [ alisey Trif ] тАС / ( тАЬPermutations of multisetsтАЭ), ?
5: OMNeT++ 2
LLTR 5: OMNeT++ 2
( LLTR-Process sequence, тАУ { тАЬLLTD-Process (vFinal)тАЭ}, тАУ , i тЖТ dstId, )
рд╕рдВрджрд░реНрдн:
6+7: +
LLTR 6:
, Golang.
рд╕рдВрджрд░реНрдн:
LLTR 7: (: тАЬ тАЭ тАУ )
( 4 { //WiтАСFi}, 3 ? тАУ 2 ! тАУ MacBook, WiтАСFi Ethernet Thunderbolt)
( , тАЬ тАЭ, , тАЬ тАЭ)
( WiтАСFi UDP broadcast тАУ WNIC //. : How to override wifi broadcast speed limit? , Why does my UDP Broadcast wireless communication is capped at 1MBs? . 3 Mbps, 5 Mbps { }. MacBook {WiтАСFi } SuperтАС, broadcastтАС, unicast, {WiтАСFi- тАС} unicastтАС broadcast { тАУ WiтАСFi}. , WiтАСFi- тАУ CPU . тАС.)
( UDPтАС, !? : Windows тАЬтАЭ {Windows NIC ?..}, API, тАЬ CPUтАЭ { Win8 API, тАж (. тАЬLLTD/flood/main.goтАЭ)}. тАЬ тАЭ. тАУ API , тАЬтАЭ . *nix { API}, , тАЬтАЭ {. тАЬLLTD/flood/main.goтАЭ}. : тАЬ iperf3 and microbursts тАЭ)
( тЖТ . { ; SMB}: тЖТ тЖТ тЖТ MacBook . , .)
( тАЬLLTD/Prepare test environment.txtтАЭ)
рд╕рдВрджрд░реНрдн:
( тАЬLLTD/Client.goтАЭ, тАЬтАСтАЭ тАУ тАЬLLTD/flood/main.goтАЭ)
( {Client1} NIC , тАУ , , тАЬ тАЭ : тАЬ interface always deadтАЭ)
Note: тАУ WiтАСFi ( ADSLтАС/, ADSL тАУ )
Note: тАС : тАЬтАЭ 100 Mbps unicast ; 100 Mbps broadcast . ( , /, )
TODO : : ( тАУ ; ; +1/тИТ1 ). Google Wave, Google Docs, Discus. :
- тАУ
- тАУ ,
- :
- , (.. ) тАУ тАЬтАЭ тАЬ тАЭ тАУ (.. тАЬтАЭ )
UserJS/UserCSS, , , .. , .
тАУ тАУ , UI (, , ) ( , тАЬтАЭ). тАЬтАЭ UserCSS. , , , ( ), ( ) ( ).
( ) ( ). ( UserJS UserCSS; Opera Presto , Firefox )
тАУ тАЬ OMNeT++ 2тАЭ.
TODO [x]: () + , + , , OMNeT++ v5.0b1 INET v3.0.0 + , ( ), тАУ /
:
- OMNetProjectLLTD lltdapp + sim тАУ LLTR , тАЬLLTDтАЭ (тАЬRтАЭ тАУ тАЬDтАЭ, //) [ тАЬ 1тАЭ, .. article_1 a1_v0.30.0
] { , } - OMNetProject (before v0.9) lltdapp тАУ (тАЬLLTDClient.ccтАЭ: , DISCARDтАС тАЬтАЭ ARP) [ article_1 ] { тАЬfor diff (LLTR)тАЭ тАУ (diff) , , }
- OMNetProject (v0.9) lltdapp тАУ (тАЬLLTDClient.ccтАЭ: тАЬ
trafCount[stepN]++
тАЭ): (. тАЬ timeCalcEnd
тАЭ тАЬ timeoutCalc
тАЭ), (тАЬstat.txtтАЭ: ) [ 3] { тАЬ , тАЭ, .. , } - Timers (QPC) тАУ тАУ ( тАЬTimers.cppтАЭ; тАЬ The Windows Timestamp Project: Adjustment of System Time (NTP) тАЭ) [ 6] { , Golang, тАЬ 6тАЭ}
- OMNetProject (v0.9.1) lltdapp тАУ , : (тАЬLLTDClient.ccтАЭ: тАЬ
sntpTimeOffset
тАЭ тАЬ sntpLatency
тАЭ тАУ , ) [ 3] - тАЬfixed event timeтАЭ тАУ :
- OMNetProject (v0.9.3) lltdapp тАУ v0.9.1 + , + v0.9.2ft [ 3]
- Get sequence (math induction) тАУ : unicast_src_host i+1 = unicast_dst_host i , .. , (unicast dst), , (unicast src) [ 4] { , тАЬтАЭ ( ) тАУ тАЬтАЭ , : тАЬ тАЭ ( ), , , }
- OMNetProject (v0.9.4) lltdapp тАУ : , тАЬ тАЭ [ 5]
- OMNetProject (vFinal) lltdapp тАУ [ 5]
- LLTD-Process (vFinal) тАУ [ 5]
- GoLLTD тАУ Go (тАЬLLTD/old/main.old.goтАЭ) + + (тАЬLLTD/Prepare test environment.txtтАЭ) + , : тАЬTimers/тАЭ, тАЬSNTP/тАЭ, тАЬLLTD/flood/broadcast.txtтАЭ, тАЬLLTD/Prepare test environment.txtтАЭ, тАЬLLTD/flood/old/main.goтАЭ, тАЬLLTD/flood/main.goтАЭ, тАЬLLTD/тАЭ [ 6,7]
( ) (), . тАЬ тАЭ тАУ , .
Note : тАУ , ( ) тАУ .
тАЬ тАЭ, , тАЬ тАЭ.
тАЬ тАЭ, , :
тАУ . , тАУ тАЬ тАЭ.
Note : тАЬтАЭ тАУ ( тИТ1 ) ( ) (: ; ; тАУ ); тАЬтАСтАСтАСтАЭ тАУ ( ) , , ( ), , { тАЬтАЭ ( ) тАУ , , тАЬ ?тАЭ; + тАЬ ' ', тАЭ, : (cookie) viewтАСonly}
Note : (тАС)
# CheckтАСlist (TODO's)
TODO, .
PNG{SVG} (SVG thumbnail PNG) :
- PNG:
- [ 778px, 756px] тАС ( . )
- тАС 7z (un[7z]me), ( тАУ тАЬ тАЭ, тАС , тАС )
- [ Photoshop] тАЬSave for WebтАЭ тЖТ PNG 24+alpha
- [ GIMP] тАЬ8bpc RGBAтАЭ ( ), тАЬ Save for Web тАЭ
- 256 + alphaтАС
- [ Adobe Fireworks] (Ctrl+Shift+X) тЖТ PNGтАС8 + alpha
- []
- тАЬтАЭ , Image Catalyst ( тАЬтАЭ 2 : 2.1 2.5 , ):
- тАЬтАЭ Image Catalyst 2.1 ([5] Xtreme profile)
Tools\config.ini
[options] ; , "true" "false". fs = true ; PNG. 0, %NUMBER_OF_PROCESSORS%. threatpng = 0 ; . , "true" "false". up = false [JPEG] ; Metadata. Metadata JPEG, "true" "false" , . dc = true ;Delete comment field (as left by progs like Photoshop & Compupic). de = true ;Strip Exif section (smaller JPEG file, but lose digicam info). di = true ;Delete IPTC section (from Photoshop, or Picasa). dx = true ;Deletex XMP section. du = true ;Delete non image sections except for Exif and comment sections. [PNG] ; ColorType BitDepth. ColorType BitDepth PNG, "true" "false". nc = true ; -. "Dirty Transparency" PNG c -, "true" "false". na = true ; Chunks. ; Chunks Chunks, "remove" Chunks Chunks, . ; Chunks Chunks, "keep" Chunks Chunks, . ; Chunks: ;text = iTXt,tEXt,zTXt ;color = cHRM,sRGB,iCCP,gAMA ;misc = bKGD,pHYs,sBIT,sPLT,hIST,tIME ;all = all of noncritical chunks hunks = remove all
Note : тАЬ Image Catalyst 2.1 . Enter. тАЭ, , , ( тАЬImage Catalyst 2.1тАЭ тАЬImage-Catalyst-2.1тАЭ)
- тАЬтАЭ Image Catalyst 2.5 ([1] Xtreme profile)
Tools\config.ini
[options] ;Number of streams. If value early 0, is used value of parameter %NUMBER_OF_PROCESSORS%. thread=0 ;Automatic replacement of original images by the optimized. outdir=true ;Check update update=false [PNG] ;Parameters of optimization of PNG: ;/a# - PNG dirty transparency 0=Clean, 1=Optimize; ;/g# - PNG gamma 0=Remove, 1=Apply & Remove, 2=Keep; ;/na - PNG don't change RGB values for fully transparent pixels; ;/nc - PNG don't change ColorType and BitDepth; ;/np - PNG don't change Palette. xtreme=/a1 /g0 advanced=/a0 /g0 ;Remove PNG Metadata (Chunks). chunks=true [JPEG] ;Remove JPEG Metadata. metadata=true [GIF] ;Remove GIF Metadata. giftags=true
Note : тАЬ Attention: running 2 of Image Catalyst. тАЭ, , , ( тАЬiCatalyst-2.5тАЭ)
merge_min.bat
@echo off setlocal enabledelayedexpansion :: Copy file from source to destination directory only if :: source file is smaller in size than in destination directory echo Src dir: %~f1 echo Dst dir: %~f2 echo --- for /r "%~1" %%A in (*) do ( set FileA=%%~fA set FileB=!FileA:%~f1=%~f2! set FileASize=%%~zA for %%Z in ("!FileB!") do set FileBSize=%%~zZ if !FileASize! LSS !FileBSize! copy "!FileA!" "!FileB!" )
- тАЬ.svgтАЭ ( ) тАУ (SVG) (un[7z]me)
- SVG:
- {SVG 1.1; UTF-8; ; : ; : тАЬ1:100тАЭ; } ( , 2 тАУ 1тАС )
- transform SVG ( 90 ) ( SVG ):
- DevTools transform ( тАЬ
[transform]
тАЭ) - тАЬ
Rotate90AndSwapWH()
тАЭ ( тАЬ тАЭ)
Rotate90AndSwapWH()
Sub Rotate90AndSwapWH() Dim sr As ShapeRange, s As Shape, w#, h# Set sr = ActiveSelectionRange On Error Resume Next boostStart2 "Rotate 90 and Swap WH" For Each s In sr s.GetSize w, h s.Rotate -90 s.SetSizeEx s.CenterX, s.CenterY, w, h Next s boostFinish2 End Sub
+ boostStart2/boostFinish2:
:
Private Sub boostStart2(ByVal unDo$) On Error Resume Next ActiveDocument.BeginCommandGroup unDo Optimization = True EventsEnabled = False End Sub Private Sub boostFinish2() On Error Resume Next EventsEnabled = True Optimization = False ActiveWindow.Refresh ActiveDocument.EndCommandGroup
- :
- ( )
- XML ( )
- ( ):
- тАЬ
DOCTYPE
тАЭ тАЬ Creator
тАЭ тАЬ 96ppi
тАЭ ( ppi CorelDRAW SVG) - тАЬ
metadata
тАЭ, тАЬ id
тАЭ ( ) - svg:
- тАЬ
xmlns
тАЭ тАЬ xml:space
тАЭ - тАЬ
xmlns:xlink
тАЭ - [, тАЬ
style
тАЭ тАЬ fill-rule:evenodd; clip-rule:evenodd
тАЭ] тАЬ version
тАЭ тАЬ style
тАЭ ` style="margin:16px auto" shape-rendering="geometricPrecision" fill-rule="evenodd" clip-rule="evenodd" xmlns="http://www.w3.org/2000/svg" version="1.1" baseProfile="full"
`
- ( ) `
"
` ` "
`
- ( <rect> <g>), , тАЬ
viewBox
тАЭ ( <svg>)- , SVG , CorelDRAW тАУ , , , ( , )
- SVG optimiser :
- :
- Whitespace: pretty
- Style type: optimal
- Truncate * numbers: unchanged
- ( , тАЬRemove clean groupтАЭ, )
- <svg>
- <style> тАУ SVG optimiser CDATA ( )
- XML
- PNG SVG:
- тАЬPNG_SVG.batтАЭ ( 7-Zip SVG: тАЬ
-txz -m0=LZMA2:lc1:pb0 -mx
тАЭ)
PNG_SVG.bat
@echo off setlocal enabledelayedexpansion :: PNG+7Zip{SVG} echo PNG dir: %~f1 echo SVG dir: %~f2 echo --- for /r "%~2" %%A in (*.svg) do ( set SVG=%%~fA set PNG=!SVG:%~f2=%~f1!.png "%ProgramFiles%\7-Zip\7z.exe" a dummy -txz -m0=LZMA2:d96m:fb74:lc1:pb0 -mx -so -- "!SVG!" >> "!PNG!" )
тАЬ LZMA2:d96m:fb74:lc1:pb0
тАЭ?
тАС ( тАЬRingSync_no_problem.svgтАЭ):
- "LZMA2:d96m:fb64" 6804 byte - "LZMA2:d96m:fb74" 6800 byte - "LZMA2:d96m:fb74:lc2" 6812 byte - "LZMA2:d96m:fb57:lc2" 6780 byte - "LZMA2:d96m:fb57:lc1" 6768 byte - "LZMA2:d96m:fb56:lc1" 6760 byte - "LZMA2:d96m:fb49:lc1" 6760 byte - "LZMA2:d96m:fb56:lc1:pb0" 6696 byte - "LZMA2:d96m:fb46:lc1:pb0" 6688 byte (fb44-fb47) - "LZMA2:d96m:fb63:lc1:pb0" 6688 byte - "LZMA2:d96m:fb66:lc1:pb0" 6684 byte - "LZMA2:d96m:fb74:lc1:pb0" 6692 byte
svg тАЬ LZMA2:d96m
тАЭ (fb64), тАЬ LZMA2:d96m:fb74:lc1:pb0
тАЭ .
Note : Image Catalyst: ping timeout, ( 2.5) ( 2.1 тАУ )
Image Catalyst.bat
v2.1 diff:
182c182 < if defined thrt >nul 2>&1 ping -n 1 -w 500 127.255.255.255 & goto:waithreat --- > if defined thrt >nul 2>&1 timeout /t 1 /nobreak & goto:waithreat 203c203 < 1>nul 2>&1 ping -n 1 -w 500 127.255.255.255 --- > 1>nul 2>&1 timeout /t 1 /nobreak 237c237 < if exist "%~1" (1>nul 2>&1 ping -n 1 -w 500 127.255.255.255 & goto:waitflag) --- > if exist "%~1" (1>nul 2>&1 timeout /t 1 /nobreak & goto:waitflag) 513c513 < if exist "%tmppath%\typelog.lck" (1>nul 2>&1 ping -n 1 -w 500 127.255.255.255 & goto:savelog) --- > if exist "%tmppath%\typelog.lck" (1>nul 2>&1 timeout /t 1 /nobreak & goto:savelog) 534c534 < if "%jpeg%" equ "0" if "%png%" equ "0" 1>nul ping -n 1 -w 500 127.255.255.255 2>nul & goto:finmessage --- > if "%jpeg%" equ "0" if "%png%" equ "0" 1>nul timeout /t 1 /nobreak 2>nul & goto:finmessage 572c572 < 1>nul ping -n 1 -w 500 127.255.255.255 2>nul --- > 1>nul timeout /t 1 /nobreak 2>nul
V2.5 diff:
319,320c319 < call:division float 1024 100 < call:echostd " In - !float! " --- > call:echostd " In - !float! " 322d320 < call:division change 1024 100 324,325c322 < call:division float 1024 100 < call:echostd " Out - !float! (!change! , %5%%%%%%)" --- > call:echostd " Out - !float! (!change! , %5%%%%%%)" 362,363c359,360 < set /a "ww=%random%%%%1" < 1>nul 2>&1 ping -n 1 -w %ww% 127.255.255.255 --- > set /a "ww=%random%%%%1/1000" > 1>nul 2>&1 timeout /t %ww% /nobreak 707c704 < if %jpeg% equ 0 if %png% equ 0 if %gif% equ 0 1>nul 2>&1 ping -n 1 -w 500 127.255.255.255 & goto:finmessage --- > if %jpeg% equ 0 if %png% equ 0 if %gif% equ 0 1>nul 2>&1 timeout /t 1 /nobreak & goto:finmessage 741d737 < call:division changePNG 1024 100 747d742 < call:division changeJPG 1024 100 753d747 < call:division changeGIF 1024 100 800c794 < call:echostd " Total %1: %%change%1%% , %%perc%1%%%%%%" --- > call:echostd " Total %1: %%change%1%% , %%perc%1%%%%%%"
Note : Image Catalyst ( ) CP866, diff, , .
:
- 778px тАУ (780px тАУ тИТ 2px )
- 756px тАУ (758px тАУ тИТ 2px )
- 738px тАУ (740px тАУ тИТ 2px )
- Image Catalyst v2.1 v2.5, ( тАЬ merge_min.bat тАЭ).
- тАУ : habrastorage тАЬdwbmwbyvlzes80cep1hvcdb5iy.pngтАЭ () HTTPтАС тАЬ
Content-Disposition : inline ;...
тАЭ, , , (): тАЬdwbmwbyvlzes80cep1hvcdb5iy.png#real-name.pngтАЭ. , тАУ ( ). SVG тАУ (), , тАж - (id, name). . ( тАУ , , тАУ )
- , ( ).
- тАС (un[7z]me), habrastorage тАУ , CloudFlare Polish .
Note : habrastorage SVG ( ): ( ), PNG{SVG} ( SVG, , тАУ ) ( , , / тАУ тАС / , )
git:
Note : habrahabr <oembed> , GitHub , .
Note : TODOтАС , 43 KiB ( тАЬ 0тАЭ), 69 KiB ( тАЬ 1тАЭ), 45 KiB ( ).
