рдЖрдЗрдП рд╣рдо рдПрдХ рд╡рд┐рд╢реБрджреНрдз рд░реВрдк рд╕реЗ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд▓рдХреНрд╖реНрдп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ - рдПрдХ рдЕрдВрддрд╣реАрди рдХреИрдирд╡рд╛рд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдФрд░ рдЗрд╕реЗ рдорд╛рдЙрд╕ рдХреЗ рд╕рд╛рде рд╕реНрдХреЗрд▓ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рдеред рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдХреИрдирд╡рд╛рд╕, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдЪрд┐рддреНрд░рдордп рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рдПрдХ рдЪрд▓рддреА рд╕рдордиреНрд╡рдп рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рд╡рд┐рдЪрд╛рд░ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЗрддрдирд╛ рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рд╕рдордЭрдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореМрд▓рд┐рдХ рдЧрдгрд┐рддреАрдп рдФрд░ рднреМрддрд┐рдХ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝реА рд╣реБрдИ рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдо рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗред
рдкрд░рд┐рдгрд╛рдорд╕рдорд╕реНрдпрд╛ рдХрд╛ рдмрдпрд╛рди
рдЕрдкрдиреЗ рдХреИрдирд╡рд╛рд╕ рд╕реЗ, рд╣рдо рдХреЗрд╡рд▓ рджреЛ рдХрд╛рд░реНрдп рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ: рдорд╛рдЙрд╕ рдФрд░ рдорд╛рдЙрд╕ рдХреА рдЧрддрд┐, рд╕рд╛рде рд╣реА рд╕реНрдХреНрд░реЙрд▓ рдХрд░рддреЗ рд╕рдордп рдЬрд╝реВрдо рдХрд░рдирд╛ред рд╣рдорд╛рд░реЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВрдЧреЗред рд╣рдерд┐рдпрд╛рд░, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЪреБрдирдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд╣реИред
рд╕реНрдЯреЗрдЯ рдорд╢реАрди
рдЗрд╕ рддрд░рд╣ рдХреА рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдЙрдирдХреЗ рд░рд╛рдЬреНрдпреЛрдВ рдХреЗ рдмреАрдЪ рд╕рдВрдХреНрд░рдордг рд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддреНред рд░рд╛рдЬреНрдп рдорд╢реАрди delta:S rightarrowS рдЬрд╣рд╛рдБ рдбреЗрд▓реНрдЯрд╛ - рд░рд╛рдЬреНрдпреЛрдВ рдХреЗ рдмреАрдЪ рд╕рдВрдХреНрд░рдордг рд╕рдорд╛рд░реЛрд╣, рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдХрдИ рд░рд╛рдЬреНрдпреЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред
рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд░рд╛рдЬреНрдп рдЖрд░реЗрдЦ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

рд╕рдВрдХреНрд░рдордг рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╕рдордп, рдпрд╣ рдШрдЯрдирд╛-рдирд┐рд░реНрднрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рдпрд╣ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕реА рддрд░рд╣, рдорд╢реАрди рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред
type State = string | number; type Transition<States = State> = { to: States, where: (event: Event) => Array<boolean>, }; type Scheme<States = State> = { [key: States]: Array<Transition<States>> }; interface FSM<States = State> { constructor(state: States, scheme: Scheme<States>): void; // Returns true if the scheme had a transition, false otherwise get isActive(): boolean; // Dispatch event and try to do transition dispatch(event: Event): void; // subscribe on state change on(state: States, cb: (event: Event) => any): FSM<States>; // remove subscriber removeListener(state: States, cb: (event: Event) => any): void; };
рд╣рдо рдереЛрдбрд╝реА рджреЗрд░ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рд╕реНрдердЧрд┐рдд рдХрд░ рджреЗрдВрдЧреЗ рдФрд░ рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдп рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЬреНрдпрд╛рдорд┐рддреАрдп рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдЙрдард╛рдПрдВрдЧреЗред
рдЕрдкрдбреЗрдЯ
рдпрджрд┐ рдХреИрдирд╡рд╛рд╕ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рдореБрджреНрджрд╛ рдЗрддрдирд╛ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рд╣рдо рдЙрд╕ рдкрд░ рдзреНрдпрд╛рди рдирд╣реАрдВ рджреЗрдВрдЧреЗ, рддреЛ рд╕реНрдЯреНрд░реЗрдЪрд┐рдВрдЧ рдкрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдЦрд┐рдВрдЪрд╛рд╡ рдПрдХ рдПрдХрд▓ рдмрд┐рдВрджреБ рд╕реНрдерд┐рд░ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ - рдорд╛рдЙрд╕ рдХрд░реНрд╕рд░ред рдкреНрд░рддрд┐рд╡рд░реНрддреА рд╕реНрдерд┐рддрд┐ рдХреЛ рднреА рд╕рдВрддреБрд╖реНрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЕрд░реНрдерд╛рдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд░рд┐рд╡рд░реНрд╕ рдЕрдиреБрдХреНрд░рдо рдХреЛ рдХреИрдирд╡рд╛рд╕ рдХреЛ рдЙрд╕рдХреА рдореВрд▓ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд▓рд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдЬреНрдпрд╛рдорд┐рддрд┐ рдЙрдкрдпреБрдХреНрдд рд╣реИ? рд╣рдо рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рд╡рд┐рдорд╛рди рдХреЗ рдмрд┐рдВрджреБ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдХреБрдЫ рд╕рдореВрд╣ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ mathbbR2 rightarrow mathbbR2 , рдЬреЛ рдЖрдо рддреМрд░ рдкрд░ рдирдП рдЪрд░ рдХреА рд╢реБрд░реВрдЖрдд рджреНрд╡рд╛рд░рд╛ рд╡реНрдпрдХреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ xтА▓,yтА▓ рдкреБрд░рд╛рдиреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд:
xтА▓= varphi(x,y)yтА▓= psi(x,y)
рдЧрдгрд┐рдд рдореЗрдВ рджреНрд╡реИрдд рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдРрд╕реЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рд╕рдордиреНрд╡рдп рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдмрд╛рдж рдореЗрдВ рддрдп рдХрд┐рдП рдЧрдП рд╕реНрдерд╛рди рдХреЗ рд╕рд╛рде рд╣реА рдПрдХ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред рджреВрд╕рд░реА рд╡реНрдпрд╛рдЦреНрдпрд╛ рд╣рдорд╛рд░реЗ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред
рдЬреНрдпрд╛рдорд┐рддрд┐ рдХреА рдПрдХ рдЖрдзреБрдирд┐рдХ рд╕рдордЭ рдкреВрд░реНрд╡рдЬреЛрдВ рдХреА рд╕рдордЭ рд╕реЗ рдЕрд▓рдЧ рд╣реИред рдПрдлред рдХреНрд▓реЗрди рдХреЗ рдЕрдиреБрд╕рд╛рд░, - рдЬреНрдпрд╛рдорд┐рддрд┐ рдХреБрдЫ рдкрд░рд┐рд╡рд░реНрддрди рд╕рдореВрд╣реЛрдВ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдЖрдХреНрд░рдордгрдХрд╛рд░рд┐рдпреЛрдВ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рддреА рд╣реИред рддреЛ, рдЖрдВрджреЛрд▓рдиреЛрдВ рдХреЗ рдПрдХ рд╕рдореВрд╣ рдореЗрдВ рдбреА рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рджреЛ рдмрд┐рдВрджреБрдУрдВ рдХреЗ рдмреАрдЪ рдХреА рджреВрд░реА рд╣реИ d ((x_ {1}, y_ {1}), (x_ {2}, y_ {2})) = \ sqrt {(x_ {1} - x_ {2}) ^ 2+ (y_ / 1) } - y_ {2}) ^ 2}d ((x_ {1}, y_ {1}), (x_ {2}, y_ {2})) = \ sqrt {(x_ {1} - x_ {2}) ^ 2+ (y_ / 1) } - y_ {2}) ^ 2} ред рдЗрд╕рдореЗрдВ рд╕рдорд╛рдирд╛рдВрддрд░ рд╣рд╛рдЗрдлрд╝рдиреЗрд╢рди рд╢рд╛рдорд┐рд▓ рд╣реИ T(x,y) рд╡реЗрдХреНрдЯрд░ рдкрд░ (x,y) рд░реЛрдЯреЗрд╢рди R phi рдПрдХ рдХреЛрдг рдкрд░ рдЙрддреНрдкрддреНрддрд┐ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ phi рдФрд░ рдкреНрд░рддрд┐рдмрд┐рдВрдм Ml рдХрд┐рд╕реА рд▓рд╛рдЗрди рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рд▓ ред рдЗрд╕ рддрд░рд╣ рдХреЗ рдЖрдВрджреЛрд▓рдиреЛрдВ рдХреЛ рдкреНрд░рд╛рдердорд┐рдХ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рджреЛ рдЖрдВрджреЛрд▓рдиреЛрдВ рдХреА рд╕рдВрд░рдЪрдирд╛ рд╣рдорд╛рд░реЗ рд╕рдореВрд╣ рдХреА рд╣реИ рдФрд░ рдХрднреА-рдХрднреА рдкреНрд░рд╛рдердорд┐рдХ рд░реВрдк рд╕реЗ рдиреАрдЪреЗ рдЖрддреА рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реАрдзреА рд░реЗрдЦрд╛рдУрдВ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рджреЛ рд▓рдЧрд╛рддрд╛рд░ рджрд░реНрдкрдг рдкреНрд░рддрд┐рдмрд┐рдВрдм рд▓ рдФрд░ рдПрди рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдХреЛрдг рдкрд░ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдХреЗрдВрджреНрд░ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдПрдХ рдЪрдХреНрдХрд░ рджреЗрдВ (рдЕрдкрдиреЗ рд▓рд┐рдП рдЬрд╛рдВрдЪреЗрдВ):
Ml circMn=T(тИТaтИТb) circR Alpha circT(a,b)
рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдпрд╛ рдерд╛ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдЖрдВрджреЛрд▓рдиреЛрдВ рдХрд╛ рдПрдХ рд╕рдореВрд╣ рдбреА рдпреВрдХреНрд▓рд┐рдбрд┐рдпрди рдЬреНрдпрд╛рдорд┐рддрд┐ рдмрдирд╛рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╕реНрдЯреНрд░реЗрдЪрд┐рдВрдЧ рджреЛ рдмрд┐рдВрджреБрдУрдВ рдХреЗ рдмреАрдЪ рдХреА рджреВрд░реА рдХреЛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрдирдХреЗ рд╕рдВрдмрдВрдзред рдЗрд╕рд▓рд┐рдП, рдЖрдВрджреЛрд▓рдиреЛрдВ рдХрд╛ рдПрдХ рд╕рдореВрд╣, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕реЗ рд╣рдорд╛рд░реА рдпреЛрдЬрдирд╛ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдПрдХ рдЙрдкрд╕рдореВрд╣ рдХреЗ рд░реВрдк рдореЗрдВред
рдЬреНрдпрд╛рдорд┐рддрд┐ рдЬреЛ рд╣рдореЗрдВ рд╕реВрдЯ рдХрд░рддреА рд╣реИ, рдПрдХ рдЦрд┐рдВрдЪрд╛рд╡ рд╕рдореВрд╣ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ рдкреА рдЬрд┐рд╕рдореЗрдВ, рдЙрдкрд░реЛрдХреНрдд рдЖрдВрджреЛрд▓рдиреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣реЛрдореЛрд╕реЗрдЯреА рдХреЛ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ Sk рдЧреБрдгрд╛рдВрдХ рджреНрд╡рд╛рд░рд╛ k ред
рдЦреИрд░, рдЖрдЦрд┐рд░реАред рд░рд┐рд╡рд░реНрд╕ рддрддреНрд╡ рд╕рдореВрд╣ рдореЗрдВ рдореМрдЬреВрдж рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдФрд░ рдЗрд╕рд▓рд┐рдП рдПрдХ рддрдЯрд╕реНрде рд╣реИ рдИ (рдпрд╛ рдПрдХрд▓) рдЬреЛ рдХреБрдЫ рднреА рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП
Sk circSтИТ1k=e
рдореЗрдВ рдкрд╣рд▓реЗ рдЦреАрдВрдЪ рдХрд╛ рдорддрд▓рдм рд╣реИ
k рд╕рдордп рдФрд░ рдлрд┐рд░ рдореЗрдВ
1/k ред
рдЕрдм рд╣рдо рд╕рдореВрд╣-рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рднрд╛рд╖рд╛ рдореЗрдВ, рдорд╛рдЙрд╕ рдХрд░реНрд╕рд░ рдмрд┐рдВрджреБ рдХреЛ рдЫреЛрдбрд╝рддреЗ рд╣реБрдП, рд╕реНрдЯреНрд░реЗрдЪрд┐рдВрдЧ рдХрд╛ рд╡рд░реНрдгрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
(x, y) \ rightarrow (x, y) (T _ {(- clientX, -clientY)}} \ circ S_ {k} \ circ T _ {(clientX, clientY)})
(x, y) \ rightarrow (x, y) (T _ {(- clientX, -clientY)}} \ circ S_ {k} \ circ T _ {(clientX, clientY)})
рдиреЛрдЯ 1рд╕рд╛рдорд╛рдиреНрдп рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рдкреБрдирд░реНрд╕рдВрд░рдЪрдирд╛ рд╕рд░рд╛рд╣рдиреАрдп рдирд╣реАрдВ рд╣реИ (рдЖрдк рдкрд╣рд▓реЗ рдЕрдкрдирд╛ рдХреЛрдЯ рдФрд░ рдлрд┐рд░ рдЕрдкрдиреА рд╢рд░реНрдЯ рдЙрддрд╛рд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рдирд╣реАрдВ)ред
\ forall (x, y) \ in \ mathbb {R} ^ 2 \ neq 0 \ Rightarrow T _ {(- x, -y)} \ circ S_ {k} \ circ T _ {(x, y)}} neq S_ {k} \ circ T _ {(- x, -y)} \ circ T _ {(x, y)}}
\ forall (x, y) \ in \ mathbb {R} ^ 2 \ neq 0 \ Rightarrow T _ {(- x, -y)} \ circ S_ {k} \ circ T _ {(x, y)}} neq S_ {k} \ circ T _ {(- x, -y)} \ circ T _ {(x, y)}}
рдЖрдВрджреЛрд▓рди рдХреЛ рд╡реНрдпрдХреНрдд рдХрд░реЗрдВ T(x,y) рдФрд░ Sk рдФрд░ рдХреЛрдб рдореЗрдВ рдПрдХ рд╡реЗрдХреНрдЯрд░ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдирдХреА рд░рдЪрдирд╛
type Scalar = number; type Vec = [number, number]; type Action<A = Vec | Scalar> = (z: Vec) => (v: A) => Vec;
рджрд░реНрдж резрдпрд╣ рдмрд╣реБрдд рдЕрдЬреАрдм рд╣реИ рдХрд┐ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдХреЛрдИ рднреА рдСрдкрд░реЗрдЯрд░ рдУрд╡рд░рд▓реЛрдбрд┐рдВрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡реЗрдХреНрдЯрд░ рдФрд░ рд░реЗрдЦрд╛рдкреБрдВрдЬ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХреЗ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╡реНрдпрд╛рдкрдХ рдЙрдкрдпреЛрдЧ рдХреЗ рд╕рд╛рде "рд╢рд╛рд╕реНрддреНрд░реАрдп" рд░реВрдк рдореЗрдВ рд╡реИрдХреНрдЯрд░ рдпрд╛ рдЬрдЯрд┐рд▓ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛рдПрдВ рдЕрдВрдХрдЧрдгрд┐рддреАрдп рд╕рдВрдЪрд╛рд▓рди рдХреЛ рдмрджрд▓ рджреЗрдВрдЧреАред рдЗрд╕рд▓рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреБрдЫ рд╡реЗрдХреНрдЯрд░ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдШреВрдордирд╛ рдПрдХ рдХреЛрдиреЗ рдкрд░ phi рддреБрдЪреНрдЫ рддрд░реАрдХреЗ рд╕реЗ рд╡реНрдпрдХреНрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:
TтИТa circR phi circTa Leftrightarrowz rightarrow(zтИТa)ei phi+a
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЬреЗрдПрд╕ рдЕрджреНрднреБрдд рдкрд╛рдпрдерд╛рдЧреЙрд░рд┐рдпрди рд╡рд┐рдЪрд╛рд░ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХрд╛ рдкрд╛рд▓рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ "рджреБрдирд┐рдпрд╛ рдПрдХ рд╕рдВрдЦреНрдпрд╛ рд╣реИ", рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рдХрдо рд╕реЗ рдХрдо, рдкрд╛рдпрдердиред
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЕрдм рддрдХ рд╣рдо рдирд┐рд░рдВрддрд░ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рд╕рдореВрд╣ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХрдВрдкреНрдпреВрдЯрд░ рдирд┐рд░рдВрддрд░ рдорд╛рддреНрд░рд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП, рдкреЙрдЗрдВрдХреЗрдпрд░ рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реБрдП, рд╣рдо рдПрдХ рд╕рддрдд рд╕рдореВрд╣ рдХреЛ рдЕрд╕рддрдд рд╕рдВрдЪрд╛рд▓рди рдХреЗ рдЕрдирдВрдд рд╕рдореВрд╣ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдордЭреЗрдВрдЧреЗред рдЕрдм рдЬрдм рд╣рдордиреЗ рдЬреНрдпрд╛рдорд┐рддрд┐ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд▓рд┐рдпрд╛ рд╣реИ, рддреЛ рд╣рдореЗрдВ рдЧрддрд┐ рдХреА рд╕рд╛рдкреЗрдХреНрд╖рддрд╛ рдХреА рдУрд░ рдореБрдбрд╝ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдХреЛрд╕реНрдореЙрд▓реЙрдЬреА рдСрдл рдХреИрдирд╡рд╕ред рдореЙрдбреНрдпреВрд▓рд░ рдЧреНрд░рд┐рдб
рдПрдХ рд╕рджреА рд╕реЗ, рдорд╛рдирд╡рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ, рдмреНрд░рд╣реНрдорд╛рдВрдб рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдЬреНрдЮрд╛рдд рд╣реИред рджреВрд░ рдХреА рд╡рд╕реНрддреБрдУрдВ - рдЖрдХрд╛рд╢рдЧрдВрдЧрд╛рдУрдВ рдФрд░ рдХреНрд╡рд╛рд╕рд░реЛрдВ рдХрд╛ рдЕрд╡рд▓реЛрдХрди рдХрд░рддреЗ рд╣реБрдП, рд╣рдо рд╡рд┐рджреНрдпреБрдд рдЪреБрдореНрдмрдХреАрдп рд╕реНрдкреЗрдХреНрдЯреНрд░рдо рдХреЗ рдмрджрд▓рд╛рд╡ рдХреЛ рд▓рдВрдмреА рддрд░рдВрдЧреЛрдВ рдХреА рдУрд░ рдкрдВрдЬреАрдХреГрдд рдХрд░рддреЗ рд╣реИрдВ - рддрдерд╛рдХрдерд┐рдд рдмреНрд░рд╣реНрдорд╛рдгреНрдб рд╕рдВрдмрдВрдзреА рд░реЗрдбрд╢рд┐рдлреНрдЯред рдХреЛрдИ рднреА рдорд╛рдк рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХ, рдЕрд╡рд▓реЛрдХрди рдФрд░ рдорд╛рдк рдХреЗ рд╕рд╛рдзрдиреЛрдВ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рд╣рдо рдЕрдкрдирд╛ рдорд╛рдк рдХрд░рддреЗ рд╣реИрдВред рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рдорд╛рдкрдиреЗ рдХреЗ рдмрд┐рдирд╛, рдкреНрд░рдХреГрддрд┐ рдореЗрдВ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╕рдВрдмрдВрдзреЛрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ, рдЕрд░реНрдерд╛рдд, рдмреНрд░рд╣реНрдорд╛рдВрдб рдХреА рдЬреНрдпрд╛рдорд┐рддрд┐ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд░реЗрдЦрд╛рдЧрдгрд┐рдд рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЕрд╡рд▓реЛрдХрди рдХреЗ рдЕрдкрдирд╛ рдЕрд░реНрде рдЦреЛ рджреЗрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдп рдореЗрдВ рдЖрдХрд╛рд╢рдЧрдВрдЧрд╛рдУрдВ рдЬреИрд╕реА рднреВрдорд┐рдХрд╛рдУрдВ рдХрд╛ рд╣реЛрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдкреНрд░рдХрд╛рд╢ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рд╣рдо рдЕрдкрдиреЗ рдХреИрдирд╡рд╛рд╕ рдХреА рдЧрддрд┐ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖рддрд╛ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рддрд░рд╣ рдХреА рд╕рдВрд░рдЪрдирд╛ рдПрдХ рдЖрд╡рдзрд┐рдХ рдЬрд╛рд▓реА рд╣реЛ рд╕рдХрддреА рд╣реИ, рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рдмрд╛рд░ рджреНрд╡рд┐рдЧреБрдгрд┐рдд рд╣реЛрддреА рд╣реИ рдЬрдм рдЕрдВрддрд░рд┐рдХреНрд╖ рджреЛ рдмрд╛рд░ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рд╣реЛрддрд╛ рд╣реИред
рдЪреВрдВрдХрд┐ рдЬрд╛рд▓реА рдЖрд╡рдзрд┐рдХ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореЙрдбреНрдпреВрд▓рд░ рдмреАрдЬрдЧрдгрд┐рдд рдХреЛ рдЕрдкрдирд╛рдирд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдо рдПрдХ рд╕рдореВрд╣ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░реЗрдВрдЧреЗ рдкреА рдЯреЛрд░рд╕ рдкрд░ рднреА T2=S1 1S ред рдЪреВрдВрдХрд┐ рдореЙрдирд┐рдЯрд░ рд╕реНрдХреНрд░реАрди рдПрдХ рдирд┐рд░рдВрддрд░ рд╡рд┐рдорд╛рди рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдкреВрд░реНрдгрд╛рдВрдХ рдЬрд╛рд▓реА рд╣реИ mathbbZ2 (рд╣рдо рдЕрдм рдЙрдкреЗрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдкрд░рд┐рдорд┐рдд рд╣реИ), рдлрд┐рд░ рд╕рдореВрд╣ рдХреА рдХрд╛рд░реНрд░рд╡рд╛рдИ рдкреА рдкреВрд░реНрдгрд╛рдВрдХ рдЯреЛрд░рд╕ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП mathbbZ2p рдЬрд╣рд╛рдБ рдкреА - рдЪреМрдХреЛрд░ рдХреЗ рдХрд┐рдирд╛рд░реЗ рдХрд╛ рдЖрдХрд╛рд░ рдкреА рдкреА$ :

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдПрдХ рдмрд╛рд░ рдФрд░ рдореВрд▓ рдХреЗ рдкрд╛рд╕ рдЕрдкрдиреЗ рдЯреЛрд░рд╕ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЗрд╕ рдкрд░ рд╕рднреА рдЖрдЧреЗ рдХреА рдЧрдгрдирд╛ рдХрд░реЗрдВрдЧреЗред рдлрд┐рд░ рдорд╛рдирдХ рдХреИрдирд╡рд╛рд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рдкреНрд░рдЪрд╛рд░рд┐рдд рдХрд░реЗрдВред рдпрд╣рд╛рдБ рдПрдХ рдкрд┐рдХреНрд╕реЗрд▓ рдЪрд╛рд▓ рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдореЙрдбреНрдпреВрд▓ рдПрдХреНрд╕% рдкреА рд▓реЗрдиреЗ рдХрд╛ рдорд╛рдирдХ рд╕рдВрдЪрд╛рд▓рди рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рддрд░реНрдХ рдХреЗ рдирдХрд╛рд░рд╛рддреНрдордХ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдирдХрд╛рд░рд╛рддреНрдордХ рд▓реЛрдЧреЛрдВ рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкреВрд░реНрдгрд╛рдВрдХ рдХреА рдзрд╛рд░ рдкрд░ рдХреЛрдИ рднреА рдирд╣реАрдВ рд╣реИред рдЕрдкрдирд╛ рдХрд╛рд░реНрдп рд▓рд┐рдЦреЗрдВ x modp :
const mod = (x, p) => x >= 0 ? Math.round(x) % p : p + Math.round(x) % p;
рдЕрдм рдЕрдВрддрд┐рдо рд░рд╛рдЬреНрдп рдорд╢реАрди рдкрд░ рд╡рд╛рдкрд╕ рдФрд░
рдЗрд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВFSM рд╡рд░реНрдЧ рдЖрд╕рд╛рдиреА рд╕реЗ EventEmitter рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИ, рдЬреЛ рд╣рдореЗрдВ рд╕рджрд╕реНрдпрддрд╛ рджреЗрдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░реЗрдЧрд╛ред
class FSM<States> extends EventEmitter { static get TRANSITION() { return '__transition__'; } state: States; scheme: Scheme<States>; constructor(state: States, scheme: Scheme<States>) { super(); this.state = state; this.scheme = scheme; this.on(FSM.TRANSITION, event => this.emit(this.state, event)); } get isActive(): boolean { return typeof(this.scheme[this.state]) === 'object'; } dispatch(event: Event) { if (this.isActive) { const transition = this.scheme[this.state].find(({ where }) => where(event).every(domen => domen) ); if (transition) { this.state = transition.to; this.emit(FSM.TRANSITION, event); } } } }
рдЕрдЧрд▓рд╛, рдПрдХ рд╕рдВрдХреНрд░рдордг рдпреЛрдЬрдирд╛ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ, рдПрдХ рдХреИрдирд╡рд╛рд╕ рдмрдирд╛рдПрдВ рдФрд░
рд╕рдм рдХреБрдЫ рдЖрд░рдВрдн рдХрд░реЗрдВред canvas = document.getElementById('canvas'); ctx = canvas.getContext('2d');
рдлрд┐рд░ рдЖрдкрдХреЛ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЖрд╡рд╢реНрдпрдХ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдорд╛рди рд╕реЗрдЯ рдХрд░реЗрдВ рдФрд░ рд░рд╛рдЬреНрдп рдХреЗ рдкрд░рд┐рд╡рд░реНрддрди рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрдВред рдХреЛрдб рдХреЗ рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рд╣рд┐рд╕реНрд╕реЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
fsm.on('zooming', (event: WheelEvent) => {
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдЧреБрдгрд╛рдВрдХ k рджреНрд╡рд╛рд░рд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреБрдЫ рдЕрдиреБрдкрд╛рдд nk / k рджреНрд╡рд╛рд░рд╛ред рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдмрд┐рдВрджреБ рдкрд░ рд╣рдорд╛рд░реА рдореИрдкрд┐рдВрдЧ рдХрд╛ рдЪрд░рдг (рдП,рдмреА) рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрдХреНрдд рдХрд┐рдпрд╛
xm=(xmтИТ1тИТa)kтИЧmтИТ1+aym=(ymтИТ1тИТb)kтИЧmтИТ1+
рдпрд╛, рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ x1,y1
xm=(x1тИТa) prodmтИТ1i=1kтИЧi+aym=(y1тИТb) prodmтИТ1i=1kтИЧi+b
рдЬрд╛рд╣рд┐рд░ рд╣реИ рдЙрддреНрдкрд╛рдж prodmтИТ1i=1kтИЧi рд╡рд╣рд╛рдБ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХрджрдо рдХрд╛ рдПрдХ nonlinear рдХрд╛рд░реНрдп рд╣реИ рдФрд░ рдпрд╛ рддреЛ рдмрд╣реБрдд рдЬрд▓реНрджреА рд╢реВрдиреНрдп рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╛ рдЫреЛрдЯреЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╡рд┐рдЪрд▓рди рдХреЗ рд╕рд╛рде рдЕрдирдВрдд рддрдХ рднрд╛рдЧ рдЬрд╛рддрд╛ рд╣реИред
рд╣рдо рдЪрд░ рдЬреА рдХрд╛ рдкрд░рд┐рдЪрдп рджреЗрддреЗ рд╣реИрдВ, рдЬреЛ рд╣рдорд╛рд░реЗ рдХреИрдирд╡рд╛рд╕ рдХреЛ рджреЛрдЧреБрдирд╛ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрдкрд╛рдп рд╣реИред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдпрд╣ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЕрдВрддрд░рд╛рд▓ рдкрд░ рдирд┐рд░рдВрддрд░ рдореВрд▓реНрдп рд▓реЗрддрд╛ рд╣реИред рд░реИрдЦрд┐рдХрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП kтИЧi рд╣рдо рд╕рдЬрд╛рддреАрдп рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ
kтИЧi+1= fracki+1ki,k1=1
рдлрд┐рд░ рдкрд╣рд▓реЗ рдФрд░ рдЕрдВрддрд┐рдо рдХреЛ рдЫреЛрдбрд╝рдХрд░, рд╕рднреА рд╕рджрд╕реНрдпреЛрдВ рдХреЗ рдХрд╛рдо рдХрдо рд╣реЛ рдЬрд╛рдПрдВрдЧреЗ:
prodmтИТ1i=1kтИЧi= prodmтИТ1i=1 frackikiтИТ1= frack21 frack3k2... frackmтИТ2kmтИТ3 frackmтИТ1kmтИТ2=kmтИТ1
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЪрд░рдг рдЬрдВрдк рдЬреА рд╡рд┐рд╕реНрддрд╛рд░ рджрд░ рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХрдо рдХрд░ рджреЗрддрд╛ рд╣реИ рдХрд┐ рднрдЧреНрди рд╕рдВрд░рдЪрдирд╛ рдЬреЛ рд╣рдорд╛рд░реЗ рд╕рд╛рдордиреЗ рд╣рдореЗрд╢рд╛ рд▓реАрди рд╣реЛ рдЬрд╛рддреА рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдо рдмреНрд░рд╣реНрдорд╛рдгреНрдб рдХреЗ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рд╣рдмрд▓ рд╢рдХреНрддрд┐ рдХрд╛рдиреВрди рдХрд╛ рдПрдХ рдЕрдиреБрдорд╛рдирд┐рдд рд░реВрдкрд╛рдВрддрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред
рдпрд╣ рд╣рдорд╛рд░реЗ рдореЙрдбрд▓ рдХреА рд╕рдЯреАрдХрддрд╛ рдХреА рд╕реАрдорд╛рдУрдВ рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИред
рдХреНрд╡рд╛рдВрдЯрдо рдЙрддрд╛рд░-рдЪрдврд╝рд╛рд╡ред 2-рдПрдбрд┐рдХ рдирдВрдмрд░ рдлрд╝реАрд▓реНрдб
рдорд╛рдк рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕рдордЭрдиреЗ рд╕реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдкреИрджрд╛ рд╣реБрдИред рд╣рд╛рдЗрдЬреЗрдирдмрд░реНрдЧ рдХрд╛ рдЕрдирд┐рд╢реНрдЪрд┐рддрддрд╛ рд╕рд┐рджреНрдзрд╛рдВрдд рдЗрд╕рдХреА рд╕реАрдорд╛рдУрдВ рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рддрд╛ рд╣реИред рдПрдХ рдЖрдзреБрдирд┐рдХ рдХрдВрдкреНрдпреВрдЯрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдорд╢реАрди рд╢рдмреНрджреЛрдВ рдХреЗ рд╕рд╛рде, рдЬрд┐рд╕рдХреА рд▓рдВрдмрд╛рдИ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреА рдХреНрд╖рдорддрд╛ рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реЛрддреА рд╣реИред рдорд╢реАрди рд╢рдмреНрдж 2-рдПрдбрд┐рдХ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХрд╛ рдПрдХ рдХреНрд╖реЗрддреНрд░ рдмрдирд╛рддреЗ рд╣реИрдВ mathbbQ2 рдФрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ mathbbFn2 рдЬрд╣рд╛рдБ рдПрди - рд╢рдмреНрдж рдХреА рд▓рдВрдмрд╛рдИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдорд╛рдк рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЧрдгрдирд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЧреИрд░-рдЖрд░реНрдХрд┐рдорд┐рдбреАрдпрди рдореАрдЯреНрд░рд┐рдХ рд╕реЗ рд╕рдВрдмрджреНрдз рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
foralln in mathbbZ,z in mathbbFn2:n cdotz<2n
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдорд╛рд░реЗ рдореЙрдбрд▓ рдореЗрдВ рдЧрдгрдирд╛ рдХреА рд╕реАрдорд╛ рд╣реИред IEEE_754 рдорд╛рдирдХ рдореЗрдВ рд╕реАрдорд╛рдПрдБ рд╡рд░реНрдгрд┐рдд рд╣реИрдВред рдХреБрдЫ рдмрд┐рдВрджреБ рдкрд░ рд╢реБрд░реВ, рд╣рдорд╛рд░рд╛ рдЖрдзрд╛рд░ рдЖрдХрд╛рд░ рд╕рдЯреАрдХрддрд╛ рдХреА рд╕реАрдорд╛ рд╕реЗ рдЖрдЧреЗ рдмрдврд╝ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдореЙрдбреНрдпреВрд▓ рд▓реЗрдиреЗ рдХрд╛ рд╕рдВрдЪрд╛рд▓рди рдЫрджреНрдо-рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдЕрдиреБрдХреНрд░рдо рдЬреИрд╕реА рджрд┐рдЦрдиреЗ рд╡рд╛рд▓реА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрдЧрд╛ред рдпрд╣ рдХреЗрд╡рд▓ рд▓рд╛рдЗрди рд╣рдЯрд╛рдХрд░ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
if (g < min || g > max) return;
рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЕрдВрддрд┐рдо рд╕реАрдорд╛ рдХреА рдЧрдгрдирд╛ рдЕрд░реНрдз-рдЕрдиреБрднрд╡рдЬрдиреНрдп рд╡рд┐рдзрд┐ рджреНрд╡рд╛рд░рд╛ рдХреА рдЬрд╛рддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдХрдИ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред
рдирд┐рд╖реНрдХрд░реНрд╖
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ рджреВрд░ рд╕реЗ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ, рд╕рд┐рджреНрдзрд╛рдВрдд рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдХреИрдирд╡рд╛рд╕ рдкрд░ рдЬреБрдбрд╝реЗ рд╣реБрдП рд╣реИрдВред рдХрд╛рд░реНрд░рд╡рд╛рдИ, рдорд╛рдк рдФрд░ рдЧрдгрдирд╛ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛рдПрдВ рдПрдХ-рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рдирд┐рдХрдЯрддрд╛ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВред рдЙрдирдХреЗ рд╕рдВрдпреЛрдЬрди рдХрд╛ рдореБрджреНрджрд╛ рдЕрднреА рднреА рд╣рд▓ рдирд╣реАрдВ рд╣реБрдЖ рд╣реИред
рдкрд░рд┐рдгрд╛рдордкреБрдирд╢реНрдЪрдпрд╣ рд╕реНрдкрд╖реНрдЯ рдерд╛ рдХрд┐ рд╕реНрд░реЛрдд рдХреЛрдб рдЫреЛрдЯрд╛ рд╣реЛрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рд╕рд╛рдзрд╛рд░рдг index.html рдореЗрдВ рд╡рд┐рдХрд╛рд╕ рдХрд╛ рдиреЗрддреГрддреНрд╡ рдХрд┐рдпрд╛ред рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдЗрд╕ рд▓реЗрдЦ рдХреЛ рд▓рд┐рдЦрд╛ рд╣реИ, рдореИрдВрдиреЗ рдЯрд╛рдЗрдк рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреЛ рдЬреЛрдбрд╝рд╛ рдЬреЛ рдореИрдВрдиреЗ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЦреЗрд▓ рдХреЗ рдореИрджрд╛рди рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ред