
рдмреНрд▓реЛрдлрд┐рд╢ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ
рд▓реЗрдЦ рдХреА рдирд┐рд░рдВрддрд░рддрд╛ рдореЗрдВ, рдореИрдВ рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ -
рдлреЗрдЗрд╕реНрдЯреЗрд▓ рдиреЗрдЯрд╡рд░реНрдХ ред "рд╡рд┐рд╖рдп рдореЗрдВ" рд▓реЛрдЧреЛрдВ рдиреЗ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реМ рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рд╕реБрдирд╛ рд╣реИ - рдЗрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрд╣реБрд╕рдВрдЦреНрдпрдХ рдмреНрд▓реЙрдХ рд╕рд┐рдлрд░ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдЖрдк рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ, рд╕рд╣реА рдкрд░ рддрд╕реНрд╡реАрд░ рд╕реЗ рдХреБрдЫ рднреА рд╕реНрдкрд╖реНрдЯ рд╣реИ? рдареАрдХ рд╣реИ, рдЪрд▓реЛ рдПрдХ рддрд░рд╣ рд╕реЗ (рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди) рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд?
рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдХреГрдкрдпрд╛ рдореИрдЯ рдХреЗ рдиреАрдЪреЗ
рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрдо рд╕реЗ рдХрдо рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ
рд╡рд┐рдХреАрд╕реНрдЯреЗрдХ рдХреЗ рдЖрд╕рдкрд╛рд╕
рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рд╢рдмреНрджреЛрдВ рдореЗрдВ рд╕рдордЭреЗрдВ рдХрд┐ рдпрд╣ рдХреНрдпрд╛ рд╣реИ
рд╕рд╛рджрдЧреА рдХреЗ рд▓рд┐рдП, рд╣рдо рдХреЗрд╡рд▓ рджреЛ рдмрд╛рдЗрдЯреНрд╕ рд╡рд╛рд▓реЗ рдмреНрд▓реЙрдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВрдЧреЗред рдЬреИрд╕рд╛ рдХрд┐
рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рдХрд╣рддрд╛ рд╣реИ, рдЖрдкрдХреЛ рдЗрд╕реЗ рдЖрдзрд╛ рдореЗрдВ рдХрд╛рдЯрдХрд░ рдмрд╛рдИрдВ рдУрд░
рдПрд▓ рдХрд╛ рдирд╛рдо рджреЗрдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рджрд╛рдИрдВ рдУрд░
рдЖрд░ред рддреЛ рдмрдиреЛред
рдФрд░ рдЗрд╕рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдмреНрд▓реЙрдХ рдХреЗ рджреЛ рд╣рд┐рд╕реНрд╕реЗ рд╣реИрдВ, рдФрд░ рд░рд╣рд╕реНрдпрдордп рдлрд╝рдВрдХреНрд╢рди рдПрдлред рдЖрдЗрдП рдЪрд▓рддреЗ рд╣реИрдВ
- рдкрд╣рд▓реА рдЪреАрдЬ рдЬреЛ рд╣рдореЗрдВ рд╕реАрдЦрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ XOR ( тКХ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реВрдкрд┐рдд) рдПрдХ рдЗрдирд╡реИрд▓рд┐рдб рдСрдкрд░реЗрд╢рди рд╣реИред рдХрд┐рдХ рди рдХрд░реЗрдВ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╕рд┐рд░реНрдл рдЗрддрдирд╛ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдЖрдк рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдВрдЦреНрдпрд╛ рдХреЛ рджреЛрдЧреБрдирд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдлрд┐рд░ рд╕реЗ рд╡рд╛рдВрдЫрд┐рдд рдорд┐рд▓реЗрдЧрд╛ред рдпрд╛рдиреА рдП тКХ рдмреА тКХ рдмреА == рдПред
рдпрд╣ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ рдХрд┐ рд╣рдо рдЕрдВрддрд╣реАрди рдЪреЗрди рдП that рдмреА тКХ рд╕реА тКХ рдбреА and рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ... рдФрд░ рдЕрдЧрд░ рд╣рдо рд░рд┐рд╡рд░реНрд╕ рдСрд░реНрдбрд░ рдореЗрдВ рд╕рдм рдХреБрдЫ рдХреНрд░реЙрд╕-рддрд░реНрдХ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдП рдорд┐рд▓рддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, ((100) 200) тКХ 50) 8. 150 = 8. рдЗрд╕рд▓рд┐рдП 8 тКХ 150 тКХ 50 100 200 = 100 - рджреВрд╕рд░рд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдВрджреБ рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рд╕рдордп рдореЗрдВ рдмреНрд▓реЙрдХ рдХрд╛ рдХреЗрд╡рд▓ рдЖрдзрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдмрджрд▓рддрд╛ рд╣реИ
- рдЕрдм "рдмреНрд▓реИрдХ рдмреЙрдХреНрд╕" рдпрд╛ рдлрд╝рдВрдХреНрд╢рди рдПрдл рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдлрд╝рдВрдХреНрд╢рди рдПрдл рдХрд┐рд╕реА рднреА рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдпрджреНрдпрдкрд┐ рдПрдХ рдЬрдЯрд┐рд▓ рд╣реИрд╢, рдХрдо рд╕реЗ рдХрдо рдмреЗрд╡рдХреВрдлреА рд╕реЗ 0 рд▓реМрдЯ рд░рд╣рд╛ рд╣реИ), рдХреНрдпреЛрдВрдХрд┐ рдЬрдм рд╣рдо рд░рд┐рд╡рд░реНрд╕ рдСрд░реНрдбрд░ рдореЗрдВ рд╕рдм рдХреБрдЫ (рдбрд┐рдХреНрд░рд┐рдкреНрдЯ) рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╣рдореЗрд╢рд╛ рджреВрд╕рд░рд╛ рддрд░реНрдХ рд╣реЛрддрд╛ рд╣реИ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рджреМрд░рд╛рди рдЬреИрд╕рд╛ рд╣реЛрдЧрд╛ред рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рдЗрд╕рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд▓рд╛ рдХреЗ рд╕рдорд╛рди рд╣реИ рдФрд░ рдХреНрд░рд┐рдкреНрдЯреЛрдирд╛рд▓рд┐рд╕рд┐рд╕ рдХреЗ рдирдП рддрд░реАрдХреЛрдВ рдХреЗ рдЦрд┐рд▓рд╛рдл 100% рдЧрд╛рд░рдВрдЯреА рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдпрд╣ "рд╕рдорд╛рди" рдХреИрд╕реЗ рдЖрддрд╛ рд╣реИ?
рдЪрд░рдгреЛрдВ рдореЗрдВ рддреАрди рд░рд╛рдЙрдВрдб рдХреЗ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ
рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди
реж) рд╣рдорд╛рд░реЗ рдкрд╛рд╕
рдПрд▓ рдФрд░
рдЖрд░ рдХреБрдЫ рд╕рдВрдЦреНрдпрд╛рдПрдБ рд╣реИрдВред рдЙрдиреНрд╣реЗрдВ резрежреж рдФрд░ реирежреж рд╣реЛрдиреЗ рджреЗрдВред
рдПрдл рдФрд░ рдХреБрдЫ рдлрд╝рдВрдХреНрд╢рди, рдПрд▓ рдФрд░ рд░рд╛рдЙрдВрдб рдирдВрдмрд░ рдПрди рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, F рдиреЗ рдмрд╕ рдЙрдиреНрд╣реЗрдВ modulo 256 (рддрд╛рдХрд┐ рдпрд╣ рдмрд╛рдЗрдЯ рдХреЛ рдХреНрд░реЙрд▓ рди рдХрд░реЗ) рдЬреЛрдбрд╝ рджреЗрдВред рдпрд╛рдиреА рдПрдл (рдПрд▓, рдПрди) = (рдПрд▓ + рдПрди)% 256. (% рд╡рд┐рднрд╛рдЬрди рдХрд╛ рд╢реЗрд╖ рд╣реИ)
рдПрдХ рджреМрд░ (n = 1)
1) рд╣рдо рдЖрд░ (200) рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рдПрдХреНрд╕реЛрд░рд┐рдо рдЗрд╕реЗ рдлрд╝рдВрдХреНрд╢рди рдПрдл (рдПрд▓, рдПрди) рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЗ рд╕рд╛рде рд▓реЗрддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рддред 200 200 ((100 + 1)% 256) рд╣рдореЗрдВ
173 рдорд┐рд▓рддрд╛ рд╣реИред
2) рд╣рдордиреЗ рдПрд▓ рдХреЗ рд╕реНрдерд╛рди рдкрд░ 173, рдФрд░ рдЖрд░ рдХреЗ рд╕реНрдерд╛рди рдкрд░ рдПрд▓ рдХреЗ рдкрд┐рдЫрд▓реЗ рдореВрд▓реНрдп (100), рдЕрд░реНрдерд╛рддред рд╕рдорд╛рд░реЛрд╣ R рдХреЗ рд╕рд╛рде рд╕реНрд╡реИрдк R рдФрд░ Xor R рдХрд╛ рдкрд░рд┐рдгрд╛рдоред
рджреМрд░ 2 (n = 2)
1) рдЕрдм рдПрд▓ = 173, рдЖрд░ = 100. рдЬрд╝реЛрд░рд┐рдо 100 рдПрд╕ ((173 + 2)% 256), рд╣рдореЗрдВ
203 рдорд┐рд▓рддреЗ рд╣реИрдВ
2) рд╣рдордиреЗ рдПрд▓ рдХреЗ рд╕реНрдерд╛рди рдкрд░ 203 рдФрд░ рдЖрд░ рдХреЗ рд╕реНрдерд╛рди рдкрд░ 173 рд░рдЦрд╛ред
рд░рд╛рдЙрдВрдб 3 (n = 3)
1) рдПрд▓ = 203, рдЖрд░ = 173. рдЬреЛрд░рд┐рдо 173 рдПрд╕ ((203 + 3)% 256), рд╣рдореЗрдВ
99 рдорд┐рд▓рддреЗ рд╣реИрдВ
2) рдЕрдВрддрд┐рдо рджреМрд░ рдХреЗ рдмрд╛рдж рд╕реЗ, рд╣рдо рдХреЗрд╡рд▓ R рдХреЛ рдмрджрд▓рддреЗ рд╣реИрдВ (рддрд╛рдХрд┐ рддрдм рд╣рдо рдХреНрд░рдореЛрдиреНрдирддрд┐ рди рдХрд░реЗрдВ)
рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХреЗ рдмрд╛рдж, рдПрд▓ = 203, рдЖрд░ = 99ред
рдкреНрд░рддрд┐рд▓рд┐рдкрд┐
рд╣рдо рд░рд┐рд╡рд░реНрд╕ рдСрд░реНрдбрд░ рдореЗрдВ рдЬрд╛рддреЗ рд╣реИрдВ, рдЧреЛрд▓ рдирдВрдмрд░ 3 рд╕реЗ 1 рддрдХ рдЬрд╛рддреЗ рд╣реИрдВ
рджреМрд░ 1 (n = 3)
1) рдПрд▓ = 203, рдЖрд░ = 99. рдЬрд╝реЛрд░рд┐рдо 99 рдПрд╕ ((203 + 3)% 256) рд╣рдореЗрдВ
173 рдорд┐рд▓рддрд╛ рд╣реИред рдПрдХ рдкрд░рд┐рдЪрд┐рдд рд╕рдВрдЦреНрдпрд╛?
2) L рдХреЗ рд╕реНрдерд╛рди рдкрд░ 173, R рдХреЗ рд╕реНрдерд╛рди рдкрд░ 203 рд▓рдЧрд╛рдПрдВ
рджреМрд░ 2 (n = 2)
1) рдПрд▓ = 173, рдЖрд░ = 203ред рдЗрд╕рд▓рд┐рдП, 203 (((173 + 2)% 256) =
100 ред рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд▓рдЧрднрдЧ!
2) рдПрд▓ = 100, рдЖрд░ = 173 рдмрджрд▓реЗрдВ
рджреМрд░ 3 (рдПрди = 1)
1) рдПрд▓ = 100, рдЖрд░ = 173. рд╣рдо рдЖрд░ (рдХреНрд░рдордЪрдп, рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ) рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ) = 173) ((100 + 1)% 256) =
200 URAAAA !!!
рдПрд▓ = 100, рдЖрд░ = 200. рдлрд╛рд░реНрдореЗрд╕реА рдореЗрдВ)
рдпрд╣реА рд╣реИ, рд╕рдВрдкреВрд░реНрдг рдлрд┐рд╕реНрдЯрд▓ рдиреЗрдЯрд╡рд░реНрдХ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдХреБрдЫ рдЧрдгрдирд╛ рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдмреНрд▓реЙрдХ
рдХреЗ рджреЛрдиреЛрдВ рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЗ
рд╡реИрдХрд▓реНрдкрд┐рдХ рдЕрд╡рд░реЛрдзрди рдХреЛ рдЙрдмрд╛рд▓рддрд╛ рд╣реИ, рдЬреЛ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХреЗ рджреМрд░рд╛рди
рд░рд┐рд╡рд░реНрд╕ рдСрд░реНрдбрд░ рдореЗрдВ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
рдФрд░ рдЕрдВрдд рдореЗрдВ, рдЬрд╛рд╡рд╛ рдХреЛрдб рдЬреЛ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡рд░реНрдЧ рдмреНрд▓реЙрдХрдЯреЗрд╕реНрдЯ
{
рдирд┐рдЬреА рд╕реНрдерд┐рд░ int рд░рд╛рдЙрдВрдб = 3;
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╢реВрдиреНрдп рдХреА рд▓рдбрд╝рд╛рдИ ( рдЗрдВрдЯ [] рдП, рдмреВрд▓рд┐рдпрди рд░рд┐рд╡рд░реНрд╕)
{
int рд░рд╛рдЙрдВрдб = рд░рд┐рд╡рд░реНрд╕? рд░рд╛рдЙрдВрдб: 1;
int l = [[реж];
int r = [рдПрдХ];
for ( int i = 0; рдореИрдВ <рд░рд╛рдЙрдВрдб; рдореИрдВ ++)
{
if (i <рд░рд╛рдЙрдВрдб - 1) // рдпрджрд┐ рдЕрдВрддрд┐рдо рд░рд╛рдЙрдВрдб рдирд╣реАрдВ рд╣реИ
{
int t = l;
l = r ^ f (l, рдЧреЛрд▓);
рдЖрд░ = рдЯреА;
}
рдФрд░ // рдЕрдВрддрд┐рдо рджреМрд░
{
r = r ^ f (l, рдЧреЛрд▓);
}
рджреМрд░ + = рд░рд┐рд╡рд░реНрд╕? -1: 1;
}
рдПрдХ [0] = рдПрд▓;
рдПрдХ [1] = рдЖрд░;
}
рдирд┐рдЬреА int f ( int b, int k)
{
рд╡рд╛рдкрд╕реА b + k;
}
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╢реВрдиреНрдп рдкрд░реАрдХреНрд╖рдг ()
{
int [] a = рдирдпрд╛ int [реи];
рдПрдХ [0] = 100;
рдПрдХ [рез] = реирежреж;
feist (a, false );
feist (рдП, рд╕рдЪ );
}
}
рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдпрд╣ рдкрд╕рдВрдж рдЖрдпрд╛ рд╣реЛрдЧрд╛;)