рдЯреНрдпреВрдкрд░ рд╕реВрддреНрд░ рдФрд░ рдкрд╛рдпрдерди рдореЗрдВ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди

рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЕрдЧреНрд░рджреВрдд


рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ рдмрд╣реБрдд рдкрд╣рд▓реЗ рдЗрдВрдЯрд░рдиреЗрдЯ рдЦреБрд▓рд╛ рдПрдХ рд╕реВрддреНрд░ Tupper рдХреЗ рд░реВрдк рдореЗрдВ рдмреЗрдмреАрд▓реЛрди рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдЕрджреНрднреБрдд рдФрд░ рдЕрджреНрднреБрдд рдкреНрд░рддрд┐рдпреЛрдВ рдХреА рд╕реАрдЦрд╛ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдкрд░ред рдмрд▓реНрдХрд┐, рдпрд╣ рд╕реВрддреНрд░ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЯреНрдпреВрдкрд░ рдХреА рдЕрд╕рдорд╛рдирддрд╛ рдЕрдзрд┐рдХ рд╣реИред рдЗрд╕ рдЕрд╕рдорд╛рдирддрд╛ рдХреА рдЦрд╝рд╛рд╕рд┐рдпрдд рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдЪрд╛рд░реНрдЯ рдкрд░ рдЕрдкрдиреА рдЫрд╡рд┐ рдмрдирд╛рддрд╛ рд╣реИред рдЬрд░рд╛ рдЗрд╕ рдЪрдорддреНрдХрд╛рд░ рдХреЛ рджреЗрдЦрд┐рдпреЗ!

рдЫрд╡рд┐

(рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рд╕реНрд░реЛрдд)

рдЫрд╡рд┐ рдореЗрдВ рдЬреЛ рдЖрдк рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ, рд╡рд╣реА рдЬреЗрдл рдЯреНрдпреВрдкрд░ рдХрд╛ рд╕реВрддреНрд░ рд╣реИред рд╕рдВрднрд╡рддрдГ, рдЖрдзреЗ рдкрд╛рдардХ рдкрд╣рд▓реЗ рд╣реА рдЗрд╕ рдЕрд╕рдорд╛рдирддрд╛ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЯрдВрдЧрд╕реНрдЯрди рдореЗрдВ рдЬрд╛ рдЪреБрдХреЗ рд╣реИрдВ ... рд▓реЗрдХрд┐рди рдпрд╣ рдЗрддрдирд╛ рд╕рд░рд▓ рдирд╣реАрдВ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЗрд╕ рдЫрд╡рд┐ рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЧреНрд░рд╛рдл рдкрд░ рд╕реВрддреНрд░ рдЕрдХреНрд╖ рдУрдП [рдХреЗ; рдХреЗ рд╕рд╛рде рдПрдХ рдЦрдВрдб рдкрд░ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ; k + резрел]ред рдпрд╣ рд░рд╣рд╕реНрдпрдордп рд╕рдВрдЦреНрдпрд╛ k рдХреНрдпрд╛ рд╣реИ? рдХрд╣рд╛рдВ рд╕реЗ рд▓рд╛рдПрдВ? рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдмреЗрдмреАрд▓реЛрдирд┐рдпрди рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдпрд╣ рдЕрд╕рдорд╛рдирддрд╛, 106x17 рдХреЗ рд╕рдВрдХрд▓реНрдк рдХреЗ рд╕рд╛рде рдмрд┐рд▓реНрдХреБрд▓ рдХрд┐рд╕реА рднреА рдЫрд╡рд┐ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░ рд╕рдХрддреА рд╣реИ! рдЧреНрд░рд╛рдл рдкрд░ рдкреНрд░рддреНрдпреЗрдХ рдЫрд╡рд┐ рдХреА рдЕрдкрдиреА рд╕реНрдерд┐рддрд┐ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рд╕рдВрдЦреНрдпрд╛ k рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрдЦреНрдпрд╛ k рдХреЗ рд▓рд┐рдП рдкреВрд░реЗ рдЧреНрд░рд╛рдл рдкрд░ рдПрдХ рдПрдХрд▓ рдЫрд╡рд┐ рд╣реИ !

рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рдЪрд┐рддреНрд░ рдХреЗ рд▓рд┐рдП, рд╕рдВрдЦреНрдпрд╛ k рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:

4858450636189713423582095962494202044581400587983244549483093085061934704708809928450644769865524364849997247024915119110411605739177407856919754326571855442057210445735883681829823754139634338225199452191651284348332905131193199953502413758765239264874613394906870130562295813219481113685339535565290850023875092856892694555974281546386510730049106723058933586052544096664351265349363643957125565695936815184334857605266940161251266951421550539554519153785457525756590740540157929001765967965480064427829131488548259914721248506352686630476300

рдРрд╕реЗ рд▓реЛрдЧреЛрдВ рдХреЛ рджреЗрдЦрдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ рдЬреЛ рд╕реВрддреНрд░ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рдордиреНрд╡рдп рдкрд░ рд╕реНрдХреНрд░реЙрд▓ рдХрд░реЗрдВрдЧреЗ

рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдкрд╛рдЗрдерди 3 рдореЗрдВ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╣реБрдЖ рдЬреЛ рдПрдХ рдЫрд╡рд┐ рдХреЛ рдирдВрдмрд░ k рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рдореЗрдВ рдмрджрд▓ рджреЗрдЧрд╛ рдФрд░ рдЖрдкрдХреЛ рдПрдХ рдирдВрдмрд░ рдореЗрдВ рдПрдХ рдЫрд╡рд┐ рдХреЛ рдПрдиреНрдХреЛрдб рдХрд░рдиреЗ рдХреЗ рдПрдХ рдФрд░ рд╢рд╛рдирджрд╛рд░ рддрд░реАрдХреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдПрдЧрд╛ред

рд╕рд┐рджреНрдзрд╛рдВрдд


(рдЬреЛрдбрд╝рд╛) рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?


рдЖрдЗрдП рд╕реВрддреНрд░ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ:
рдЫрд╡рд┐
рдЖрдЗрдП рдЗрд╕рдХреЗ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ:
рдЫрд╡рд┐ - рд╕рдВрдЦреНрдпрд╛ рдиреАрдЪреЗ рд╣реЛ рдЧрдИ
mod (x, y) - x рдХреЛ y рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╢реЗрд╖

рдФрд░ рдлрд┐рд░, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ, рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рд╣реИред
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рджреЛрдиреЛрдВ x рдФрд░ y рдиреАрдЪреЗ рд╣реИрдВред рдпрд╣ рд╡рд╣ рджреМрд░ рд╣реИ рдЬреЛ рдЕрдВрддрддрдГ рд╣рдореЗрдВ рдПрдХ рдкрд┐рдХреНрд╕реЗрд▓ рдЫрд╡рд┐ рджреЗрддрд╛ рд╣реИ
рдЫрд╡рд┐

рд╣рд░ рдЙрд╕ рдЪреАрдЬрд╝ рдХреЛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдВ рдЬреЛ рдЕрд╕рдорд╛рдирддрд╛ рдХреЗ рджрд╛рдИрдВ рдУрд░ рдЧреЛрд▓ рд╣реИ  рдЕрд▓реНрдлрд╛ред
рддреЛ

1/2<[ рдЕрд▓реНрдлрд╛]<=>1<=[ рдЕрд▓реНрдлрд╛]



рдЬреЛ рд╕реНрдкрд╖реНрдЯ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдкреВрд░реА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдиреАрдЪреЗ рд╣реИред

рдЖрдЬреНрдЮрд╛ рджреЗрдВ y = 17r + q, рдЬрд╣рд╛рдВ r 17 рд╕реЗ y рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреВрд░реНрдгрд╛рдВрдХ рднрд╛рдЧ рд╣реИ, рдФрд░ r рд╡рд┐рднрд╛рдЬрди рдХреЗ рд╢реЗрд╖ рднрд╛рдЧ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдо рд╕реВрддреНрд░ рдореЗрдВ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ [y/17]рдЖрд░ рдкрд░, рдФрд░ mod(y,17)рдХреНрд╖ рдкрд░ред

рд╣рдореЗрдВ рдорд┐рд▓рддрд╛ рд╣реИ

1<=mod(qтИЧ2тИТ17тИТрдЖрд░,2)


рд╡рд░рдирд╛

1<=mod(q/217x+r,2)



mod (  рдЕрд▓реНрдлрд╛, 2) 2 рдорд╛рди рд▓реЗрддрд╛ рд╣реИ - 0 рдпрд╛ 1. рддрджрдиреБрд╕рд╛рд░, рдпрд╣ рдЕрд╕рдорд╛рдирддрд╛ рдХрд╣реЗрдЧреА рдХрд┐ рдХреНрдпрд╛ рд╕рдВрдЦреНрдпрд╛ q/217x+rрдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдпрд╛ рдирд╣реАрдВред

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЫрд╡рд┐ рдХреЛ рдХреНрд░рдорд╢рдГ рдЕрдВрддрд░рд╛рд▓ [N, N + 16] рдореЗрдВ рджреЗрдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ q=[y/17]рдЫрд╡рд┐ рдХреА рдкреВрд░реА рдКрдВрдЪрд╛рдИ рдкрд░ рд╕реНрдерд┐рд░ рд░рд╣рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╕рдВрдЦреНрдпрд╛ r рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рд╕рдВрдкреВрд░реНрдг рдЫрд╡рд┐ рдореЗрдВ рдпрд╣ 0 рд╕реЗ 16 рддрдХ рднрд┐рдиреНрди рд╣реЛрддрд╛ рд╣реИ)ред

рдФрд░ рдЕрдм рдХреЗрдХ рдкрд░ рдЪреЗрд░реАред рд╕рдВрдЦреНрдпрд╛ [q/217x+r]рдЕрдЬреАрдм рд╣реЛрдЧрд╛ рдЕрдЧрд░ рдФрд░ рдХреЗрд╡рд▓ рдЕрдЧрд░ рдмрд┐рдЯ рд╕рдВрдЦреНрдпрд╛ (17x + r) рдХреНрдпреВ рдХреЗ рдмрд╛рдЗрдирд░реА рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдореЗрдВ 1 рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИред рдФрд░ рдЪреВрдВрдХрд┐ рд╕рдВрдЦреНрдпрд╛ рдХреНрдпреВ рд▓рдЧрд╛рддрд╛рд░ рдЕрдкрдиреА рдКрдВрдЪрд╛рдИ рдФрд░ рдЗрд╕рдХреЗ рдмрд╛рдЗрдирд░реА рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЗ рд╕рд╛рде рдмрджрд▓ рд░рд╣реА рд╣реИ, рд╣рдореЗрдВ рд╣рд░ рдмрд╛рд░ рдПрдХ рдЕрдиреВрдареА рдЫрд╡рд┐ рдорд┐рд▓рддреА рд╣реИ! рдареАрдХ рд╡реИрд╕рд╛ рд╣реА рд╣реИ, рдЬреЛ рдЯреЗрдВрдкрд░ рдХрд╛ рдлреЙрд░реНрдореВрд▓рд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдЕрдм рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдЬрд┐рд╕ рдКрдВрдЪрд╛рдИ рдкрд░ рд╣рдо рдЕрдкрдиреА рдЫрд╡рд┐ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЙрд╕рдХреА рдЧрдгрдирд╛ рдХреИрд╕реЗ рдХрд░реЗрдВ

рд╕рдВрдЦреНрдпрд╛ k рдХреА рдЧрдгрдирд╛ рдХрд╛ рд╕рд┐рджреНрдзрд╛рдВрдд


рдЯреНрдпреВрдкрд░ рдиреЗ рд╕реНрд╡рдпрдВ рдХрд┐рд╕реА рднреА 106x17 рдЫрд╡рд┐ рдХреЗ рд▓рд┐рдП рд╕рдВрдЦреНрдпрд╛ k рдХреА рдЧрдгрдирд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ (рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ!) рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИ:

  1. рдЫрд╡рд┐ рдХреЛ рдХрд╛рд▓реЗ рдФрд░ рд╕рдлреЗрдж рдореЗрдВ рдмрджрд▓реЗрдВ
  2. рдкреНрд░рддреНрдпреЗрдХ рдкрд┐рдХреНрд╕реЗрд▓ рдХреЛ рдиреАрдЪреЗ рд╕реЗ рдКрдкрд░ рддрдХ, рдмрд╛рдПрдВ рд╕реЗ рджрд╛рдПрдВ рдФрд░ рдмрдлрд╝рд░ рдореЗрдВ рдкрдврд╝реЗрдВред рдпрджрд┐ рдкрд┐рдХреНрд╕реЗрд▓ рдХрд╛рд▓рд╛ рд╣реИ - рддреЛ 1 рдбрд╛рд▓реЗрдВ, рдпрджрд┐ рд╕рдлреЗрдж - 0ред
  3. рдмрд╛рдЗрдирд░реА рдХреЛ рджрд╢рдорд▓рд╡ рдореЗрдВ рдмрджрд▓реЗрдВ рдФрд░ 17 рд╕реЗ рдЧреБрдгрд╛ рдХрд░реЗрдВ
  4. рд▓рд╛рдн!

рд╕рдВрдЦреНрдпрд╛ k рд╕реЗ рдПрдХ рдЫрд╡рд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рд╕рдм рдХреБрдЫ рдареАрдХ рд╡рд┐рдкрд░реАрдд рдХрд░рддреЗ рд╣реИрдВред рдареАрдХ рд╣реИ, рдЪрд▓реЛ рдХреЛрдбрд┐рдВрдЧ рдЬрд╛рдУ!

рдХреЛрдб


UPD: рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ, рд▓реЛрдЧреЛрдВ рдиреЗ рдХреЛрдб рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕реБрдзрд╛рд░ рдХрд┐рдпрд╛, рдЗрд╕реЗ рд╕рд░рд▓ рдФрд░ рдЕрдзрд┐рдХ рдкрд╛рд░рджрд░реНрд╢реА рдмрдирд╛рдпрд╛ред рдЗрд╕ рд▓реЗрдЦ рдиреЗ рдЕрдкрдбреЗрдЯ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдХреЛрдб рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ - рдЬреАрдердм рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдкрд░ рдЬрд╛рдПрдВ (рдЬрдм рддрдХ рдЖрдк рдЗрд╕реЗ рдкреНрд░рддрд┐рдмрджреНрдз рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдЦ рдХреЗ рдЕрдВрдд рдореЗрдВ рд▓рд┐рдВрдХ рдХрд░реЗрдВ) рдФрд░ рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ

K рд╕реЗ рдЫрд╡рд┐ рддрдХ


рдпреБрдкреАрдбреА


рдЯрд┐рдкреНрдкрдгреАрдХрд╛рд░реЛрдВ рдХреЗ рдЕрдиреБрд░реЛрдз рдкрд░, рдЗрд╕ рдЕрд╕рдорд╛рдирддрд╛ рдФрд░ k рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЫрд╡рд┐ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рддрд░реАрдХрд╛ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛! рдЕрдм рд╣рдо рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рддреЛрдбрд╝ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ, рдмрд╛рдЗрдирд░реА рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рдХрд░реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рд╕реАрдзреЗ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╣реА рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░реЗрдВрдЧреЗ!

рдирдВрдмрд░ k рдХреЛ рдбрд┐рдХреЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЯреИрдкрд░ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛



рд╣рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗ рдирдВрдмрд░ k рдорд┐рд▓рддрд╛ рд╣реИ, рдЙрд╕рдХреА рдЖрдБрдЦреЛрдВ рдХреЛ рдмрдВрдж рдХрд░рдХреЗ рд╣рдо рдЗрд╕реЗ 17 рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдмрд╛рдЗрдирд░реА рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░рддреЗ рд╣реИрдВред

 def from_k_to_bin(k: int) -> list: k //= 17 binary = bin(k)[2:] 

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

 def from_k_to_bin(k: int) -> list: k //= 17 binary = bin(k)[2:] #   RadicalDreamer binary = ("0" * (1802 - len(binary))) + binary 

рдЕрдЧрд▓рд╛, рдПрдХ рджреЛ-рдЖрдпрд╛рдореА рд╕реВрдЪреА рдШреЛрд╖рд┐рдд рдХрд░реЗрдВ рдЬрд┐рд╕рдореЗрдВ рд╣рдо рдЫрд╡рд┐ рдХреА рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░реЗрдВрдЧреЗред рдлрд┐рд░ рд╣рдо рдЙрди рд╕рднреА рдмрд┐рдЯреНрд╕ рдХреЛ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдЬреЛ рд╣рдо рдкрдврд╝рддреЗ рд╣реИрдВ (рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рди рднреВрд▓реЗрдВ рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдирдВрдмрд░ k рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдиреАрдЪреЗ рд╕реЗ рдКрдкрд░ рддрдХ, рдмрд╛рдПрдВ рд╕реЗ рджрд╛рдПрдВ)

 lists = [[] for x in range(17)] #C   RadicalDreamer for x in range(1802): lists[-(x % 17)].append(binary[x]) <b> !</b> <source lang="python"> #-----!-----# image = Image.new("1", (106,17), (0)) # -  10617 draw = image.load() for y in range(17): for x in range(106): image.putpixel(xy=(105-x,16-y), value=(int(lists[y][x]),)) #    ,      lists image.save("image.png") #  

рдЖрдЗрдП рдирдВрдмрд░ k рдХреЛ рдкреБрд╢ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ, рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рд▓реЗрдЦ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ, рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ:

рдЫрд╡рд┐

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рдм рдХреБрдЫ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЕрдм рд╣рдо рдХрд┐рд╕реА рднреА рдХрд╢реНрдореАрд░ рдХреЛ рдбрд┐рдХреЛрдб рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВ!

K рд╕реЗ рдЪрд┐рддреНрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрд╕рдорд╛рдирддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛



рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЕрдЬрдЧрд░ рдореЗрдВ рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦреЗрдВ:
 def f(x,y): return ((y//17)//(1 << (17*x+(y%17))))%2 

// рдФрд░ << рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдмрд╣реБрдд рд╕рд░рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдЧрд╛рд░рдВрдЯреА рд╣реИ рдХрд┐ рд╕рдВрдЦреНрдпрд╛ x рдФрд░ y рдкреВрд░реНрдгрд╛рдВрдХ рд╣реЛрдВрдЧреЗ !

рд╣рдо рдлрд┐рд░ рд╕реЗ рдПрдХ рджреЛ-рдЖрдпрд╛рдореА рд╕реВрдЪреА рдмрдирд╛рддреЗ рд╣реИрдВ, рдЬрд╣рд╛рдВ рд╣рдо рдЫрд╡рд┐ рдХреЗ рдмрд┐рдЯреНрд╕ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░реЗрдВрдЧреЗ рдФрд░ рдЗрд╕рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд▓рд┐рдЦреЗрдВрдЧреЗ рдЬрд┐рд╕рдореЗрдВ рд▓реВрдкреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛

 lists = [[] for x in range(17)] for y in range(16,-1,-1): for x in range(105,-1,-1): lists[y].append(int(f(x,y+k) > 1/2)) 


рдФрд░ рдлрд┐рд░, рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдо рдкреАрдЖрдИрдПрд▓ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдЪрд┐рддреНрд░ рдмрдирд╛рддреЗ рд╣реИрдВред

рдкреВрд░рд╛ рдХрд╛рд░реНрдп рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
 def from_k_to_bin(k: int) -> list: lists = [[] for x in range(17)] for y in range(16,-1,-1): for x in range(105,-1,-1): lists[y].append(int(f(x,y+k) > 1/2)) return lists 


рдЪрд┐рддреНрд░ рдореЗрдВ k


рдЦреИрд░, рдЕрдм рд╣рдо рдХрд┐рд╕реА рднреА рдЫрд╡рд┐ рдХреЛ рд╕рдВрдЦреНрдпрд╛ k рдореЗрдВ рдмрджрд▓рдирд╛ рд╕реАрдЦреЗрдВрдЧреЗред

рдкрд╣рд▓реЗ рд╣рдо рдЦреБрдж рд╣реА рдЫрд╡рд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ

 def get_image() -> Image: name = input("   (      ):") try: im = Image.open(name) except Exception: print("!") exit(0) return im 

рдЗрд╕рдХрд╛ рдЖрдХрд╛рд░ рдЬрд╛рдВрдЪреЗрдВ

 _SIZE_WIDTH = 106 _SIZE_HEIGHT = 17 image = get_image() width, height = image.size flag_okay = False if width == _SIZE_WIDTH and height == _SIZE_HEIGHT: flag_okay = True if not flag_okay: print("  ") print(width, height) exit(0) print(" !") 

рд╣рдо рдЫрд╡рд┐ рдХреЛ рдХрд╛рд▓реЗ рдФрд░ рд╕рдлреЗрдж рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдкрд┐рдХреНрд╕реЗрд▓ рджреНрд╡рд╛рд░рд╛ рдкрд┐рдХреНрд╕реЗрд▓ рдкрдврд╝рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ:

 image = image.convert('1') byteset = "" for x in range(105,-1,-1): for y in range(0,17): #c m03r   if image.getpixel((x,y)) > 127: byteset += '1' else: byteset += '0' 

рдпрд╣ рдХреЗрд╡рд▓ рджрд╢рдорд▓рд╡ рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛрдиреЗ рдФрд░ 17 рд╕реЗ рдЧреБрдгрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИред

 k = int(byteset,2)*17 print(" :") print(k) 

рдЕрдЪреНрдЫрд╛, рдЪрд▓рд┐рдП рдЯреЗрд╕реНрдЯ рдХрд░рддреЗ рд╣реИрдВ!

рдореИрдВрдиреЗ рд╣рдмреНрд░ рд▓реЛрдЧреЛ рдХреЛ рдХреЛрдб рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдпрд╣рд╛рдБ рд╕реНрд░реЛрдд рдЫрд╡рд┐ рд╣реИ:

рдЫрд╡рд┐

рд╣рдо рдХрд╛рд░реНрдпрдХреНрд░рдо рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЫрд╡рд┐ рдирд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ:

рдЫрд╡рд┐

рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд k рдорд┐рд▓рд╛:

4858487703217654168507377107565676789145697178497253677539145555247620343537955749299116772611982962556356527603203744742682135448820545638134012705381689785851604674225344958377377969928942310236199337805399065932982909660659786056259547094494380793146587709009524498386724160055692719747815828234655968636671461350354316223620304956111171025410498514602810746287134775641383930152393933036921599511277388743068766568352667661462097979110006690900253037600818522726237351439443865433159187625289316917268254866954663750093103703327097252478959

рдЖрдЗрдП рдЗрд╕реЗ рд╣рдорд╛рд░реЗ рд╕реНрд╡рдпрдВ рдХреЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдкрд░ рджреЗрдЦреЗрдВред

рдпрд╣рд╛рдБ рд╣рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдЫрд╡рд┐ рд╣реИ:

рдЫрд╡рд┐

рдХрд╛рд▓реЗ рдФрд░ рд╕рдлреЗрдж рд░рдВрдЧ рдореЗрдВ рдЫрд╡рд┐ рдХреЗ рдереЛрдбрд╝реЗ рдЯреЗрдврд╝реЗ рдЕрдиреБрд╡рд╛рдж рдХреЗ рдХрд╛рд░рдг рдпрд╣ рдереЛрдбрд╝рд╛ рд╡рд┐рдХреГрдд рд╣реЛ рдЧрдпрд╛ рдерд╛ред

рдкрд░рд┐рдгрд╛рдо


рд╕реНрд░реЛрдд рдХреЛрдб: Github

рд╕реНрд░реЛрдд: рд╡рд┐рдХреА рд▓реЗрдЦ

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


All Articles