рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рддреЗрдЬреА рд╕реЗ рдкреВрд░реНрдгрд╛рдВрдХ рдЧреБрдгрди

рдореИрдВ рдкрд╛рдардХреЛрдВ рдХреЛ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдЯреНрд░рд┐рдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЬреЛ рдореБрдЭреЗ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреА рдЕрдиреБрд╡рд╛рдж рдкреБрд╕реНрддрдХ рдореЗрдВ рдорд┐рд▓реА рдереА рдЬрд┐рд╕рдореЗрдВ рдЙрди рджреВрд░рд┐рдпреЛрдВ рдореЗрдВ рдРрд╕реЗ рдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬрдм рдЗрд╕реЗ рдЕрднреА рддрдХ рди рдХреЗрд╡рд▓ рдмрд╛рдЗрдЯ рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рд╕реНрдЯреИрдХ рдХрд╣рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд░рд╛рд╡рдирд╛ рд╣реИ, рдФрд░ рдорд╣рд╛рди рджрд┐рдХреНрдЬрд╕реНрддреНрд░ рдиреЗ рдЕрднреА рддрдХ рдСрдкрд░реЗрдЯрд░ рдХреЛ рд╢рд╛рдк рдирд╣реАрдВ рджрд┐рдпрд╛ рд╣реИ GOTO (sic, рдЕрдкрд░рдХреЗрд╕ рдореЗрдВ)ред

рдореБрдЭреЗ рдЗрд╕рдХреА рд╕рд░рд▓рддрд╛ рдФрд░ рдХреГрдкрд╛ рд╕реЗ рдпрд╣ рдЯреНрд░рд┐рдХ рдЗрддрдиреА рдкрд╕рдВрдж рдЖрдИ рдХрд┐ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕ рд╕рд╣рд╕реНрд░рд╛рдмреНрджреА рдореЗрдВ рдореИрдВ рдЫрд╛рддреНрд░реЛрдВ рдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдиреЗ рдореЗрдВ рдкреНрд░рд╕рдиреНрди рдерд╛ред

рдХрд▓реНрдкрдирд╛ рдХреАрдЬрд┐рдП рдХрд┐ 2030 рдореЗрдВ рдЪрдВрджреНрд░рдорд╛ рд╕реЗ рд▓реМрдЯрдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдЖрдкрдХреЛ рдЕрдЪрд╛рдирдХ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдЖрдкрдХрд╛ рдСрди-рдмреЛрд░реНрдб рдХрдВрдкреНрдпреВрдЯрд░ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдкреВрд░реНрдгрд╛рдВрдХ рдЧреБрдгрди рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдФрд░ рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд▓реИрдВрдбрд┐рдВрдЧ рдХреЗ рджреМрд░рд╛рди рдПрдХ рджреБрд░реНрдШрдЯрдирд╛ рдХрд╛ рдХрд╛рд░рдг рд╣реЛрдЧрд╛ред

рдЗрд╕ рдХрд╣рд╛рдиреА рдореЗрдВ рдХреБрдЫ рдЦрд╛рд╕ рд╢рд╛рдирджрд╛рд░ рдирд╣реАрдВ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреЗрдВрдЯрд┐рдпрдо рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рд╕рд╛рде рдПрдХ рдмрд╛рд░ рдХреНрдпрд╛ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реБрдИрдВ, рдФрд░ рдЬрдм рдЖрдкрдХреЛ рдЪрдВрджреНрд░рдорд╛ рдкрд░ рднреЗрдЬрд╛ рдЧрдпрд╛, рддрдм рддрдХ рдЖрдк рдкреВрд░реНрдг рдЖрдпрд╛рдд рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪреЗ рдереЗред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрд╣ рдЬрд╛рдВрдЪрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдкреНрд░реЛрд╕реЗрд╕рд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдбреНрд░рд┐рд▓ рдХрд┐рдП рдЧрдП рдереЗ рдпрд╛ рдирд╣реАрдВред

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

рдЕрдВрдХрдЧрдгрд┐рдд рдХреЗ рд╕реНрдХреВрд▓ рдкрд╛рдареНрдпрдХреНрд░рдо рд╕реЗ, рд╣рдо рдпрд╛рдж рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдмрд╣реБрд╕реНрддрд░реАрдп рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рдПрдХ рдХреЙрд▓рдо рд╕реЗ рдЧреБрдгрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рдЧреБрдгрди рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдЧреБрдгрди рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рд▓рд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдЕрдЧрд░ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рдХрдо рдЪреБрдирд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 0 рдФрд░ 1), рдЧреБрдгрди рддрд╛рд▓рд┐рдХрд╛ рдХрдо рдФрд░ рдХреЙрд▓рдо рд▓рдВрдмрд╛ рд╣реЛрдЧрд╛, рдФрд░ рдЙрдирдХреА рдЧрдгрдирд╛ рдореЗрдВ рдмрд╣реБрдд рд╕рдордп рд▓рдЧреЗрдЧрд╛ред

рдпрджрд┐, рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рд╣рдо рд▓рдВрдмреА рд╕рдВрдЦреНрдпрд╛ рд▓реЗрддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 0 рд╕реЗ 65535 рддрдХ), рддреЛ 16-рдмрд┐рдЯ рдЕрдВрдХрдЧрдгрд┐рддреАрдп рдХреЗ рд▓рд┐рдП
рдкрд░рд┐рдгрд╛рдо рд╕реАрдзреЗ рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдХреЙрд▓рдо рдЧрд╛рдпрдм рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╢рд╛рд╕реНрддреНрд░реАрдп рдкрд╛рдЗрдерд╛рдЧреЛрд░рд╕ рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдЖрдХрд╛рд░ рд▓рдЧрднрдЧ 17GB (4 * 65536 * 65536) рд╣реИ, рдЕрдЧрд░ рд╣рдо рд╡рд┐рдХрд░реНрдг рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рд╕рдорд░реВрдкрддрд╛ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдзрд╛ рд▓рдЧрднрдЧ 8.5GB рд╣реИред

рдпрд╣ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдмреАрдЬрдЧрдгрд┐рдд рдХреЛ рдпрд╛рдж рд░рдЦреЗрдВред

(a+b)2=a2+b2+2ab(1)

(aтИТb)2=a2+b2тИТ2ab(2)

(1) рд╕реЗ рдШрдЯрд╛рдПрдБ ( 1)

(a+b)2тИТ(aтИТb)2=4ab

рдФрд░ рдЖрдЧреЗ

ab=((a+b)2тИТ(aтИТb)2)/4

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╡рд░реНрдЧ рд╕рд░рдгреА рдореЗрдВ рд╡рд░реНрдЧреЛрдВ рдХреА рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рд╣реЛрдиреЗ, рд╣рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ

a * b = (sqr [a + b] - sqr [a - b]) / 4 (*)

8 * рдЯреЗрдмрд▓ (65535 + 65535) рдХрд╛ рдЖрдХрд╛рд░ рд▓рдЧрднрдЧ 8.4MB рд╣реИ, рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

8 рдмрд╛рдЗрдЯреНрд╕ рдХреА рддрд╛рд▓рд┐рдХрд╛ рддрддреНрд╡ рдХрд╛ рдЖрдХрд╛рд░ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдЕрдзрд┐рдХрддрдо рдП рдФрд░ рдмреА рдореЗрдВ, рдЙрдирдХреЗ 4 рдмрд╛рдЗрдЯреНрд╕ рдХреЗ рдпреЛрдЧ рдХрд╛ рд╡рд░реНрдЧ рдлрд┐рдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ - 2 рдмрд┐рдЯ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИрдВред

рдЖрдЧреЗ, рдореИрдВ рдХреБрдЫ рд╕реБрдзрд╛рд░ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реВрдБрдЧрд╛, рдЬреЛ рдкреБрд╕реНрддрдХ рдореЗрдВ рдирд╣реАрдВ рдерд╛ред рдореИрдВ рдЦреБрдж рдЗрд╕рдХреЗ рд╕рд╛рде рдЖрдпрд╛ рдерд╛ рдЬрдм рдореИрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдпрд╣ рдиреЛрдЯ рд▓рд┐рдЦ рд░рд╣рд╛ рдерд╛ред

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╕рдо рд╡рд░реНрдЧ рдХреЗ рджреЛ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдЯ рд╣рдореЗрд╢рд╛ 00 рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рд╡рд┐рд╖рдо рд╡рд░реНрдЧ рд╣рдореЗрд╢рд╛ 01 рд╣реЛрддрд╛ рд╣реИред рджреВрд╕рд░реА рдУрд░, рдХрд┐рд╕реА рднреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЬреЛрдбрд╝реЗ рдХреЗ рд▓рд┐рдП, рдЙрдирдХреЗ рдпреЛрдЧ рдФрд░ рдЕрдВрддрд░ рдореЗрдВ рд╕рдорд╛рди рд╕рдорд╛рдирддрд╛ рд╣реЛрддреА рд╣реИред
рдЗрд╕рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рд╕реВрддреНрд░ (*) рдореЗрдВ, рдХреЛрд╖реНрдардХ рдореЗрдВ рдШрдЯрд╛рд╡ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╣рд╛рдЗрдлрд╝рди рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗ,
рджреЛ рдХрдо рд╕реЗ рдХрдо рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдЯреНрд╕ рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝реЗред рдЗрд╕рд▓рд┐рдП, рд╡рд░реНрдЧреЛрдВ рдХреА рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рддрддреНрд╡реЛрдВ рдХреА рд╕рд╛рдордЧреНрд░реА
рдЖрдк рджрд╛рдИрдВ рдУрд░ рджреЛ рдмрд┐рдЯреНрд╕ рдХреЛ рдПрдбрд╡рд╛рдВрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЖрдзреА рдореЗрдореЛрд░реА рдмрдЪрд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдЕрдВрдд рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╣реИ

a * b = sqr4 [a + b] - sqr4 [a - b] (**)

рдЬрд╣рд╛рдВ sqr4 рд╡рд░реНрдЧреЛрдВ рдХреА рд╕рдВрд╢реЛрдзрд┐рдд рддрд╛рд▓рд┐рдХрд╛ рд╣реИред

рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдЗрд╕рдХрд╛ рдЖрдХрд╛рд░ рд▓рдЧрднрдЧ 4.2 рдПрдордмреА рд╣реИред

рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП, рд▓реБрдЖ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рдкрд╛рда рд╢рд╛рдорд┐рд▓ рд╣реИред

function create_multiplier(N) -- N     local sqr4 = {} --   for i = 1, 2 * N - 1 do local temp = 0 for j = 1, i - 1 do --    temp = temp + i - 1 --    end -- ..  "" sqr4[i] = math.floor(temp / 4) --  2  end return --   () function (i, j) if i < j then i, j = j, i end return sqr4[1 + i + j] - sqr4[1 + i - j] end end N = 256 mpy = create_multiplier(N) for i = 0, N - 1 do for j = 0, N - 1 do if i * j ~= mpy(i,j) then print("", i, j, i * j, mpy(i,j)) end end end print(" .") 

рдЖрдзреБрдирд┐рдХ рдкреНрд░реЛрд╕реЗрд╕рд░реЛрдВ рдХреЗ рд▓рд┐рдП, рдПрдХ рдбрд┐рдЬрд┐рдЯ рдЖрдХрд╛рд░ рд╣реЛрдирд╛ рдЙрдЪрд┐рдд рд╣реИ, рдЬреЛ рдХрд┐ рдЙрди рддрдХ рдЖрд╕рд╛рдиреА рд╕реЗ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдмрд╛рдЗрдЯ рдЖрдХрд╛рд░ рдХрд╛ рд╣реИред 1-рдмрд╛рдЗрдЯ рдЕрдВрдХреЛрдВ рдХреЗ рд╕рд╛рде, рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдЖрдХрд╛рд░ рдХреЗрд╡рд▓ 1022 рдмрд╛рдЗрдЯреНрд╕ рд╣реИ, рдЬреЛ рдЗрд╕ рдЪрд╛рд▓ рдХреЛ 8-рдмрд┐рдЯ рдкреНрд░реЛрд╕реЗрд╕рд░ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдЧреБрдгрди рдирд╣реАрдВ рд╣реИред

рдореИрдВ рдЗрд╕ рдиреЛрдЯ рдХреЗ рд╕рднреА рдкрд╛рдардХреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реБрдзрд╛рд░реЛрдВ рдФрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрднрд╛рд░реА рд░рд╣реВрдВрдЧрд╛ред

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


All Articles