<p>xxHash рддреНрд░реБрдЯрд┐ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЪреЗрдХрд╕рдо рдХреЗ рд░реВрдк рдореЗрдВ</p>

рдХреЛ рдирд┐рд░реНрдорд┐рдд 16 рдЬреБрд▓ре░ 2019  ┬╖  11рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: Cyan4973/xxHash

рдЬрд┐рди рдЪреАрдЬреЛрдВ рдХреЛ рдореИрдВ рд▓рдЧрд╛рддрд╛рд░ рд╕рдордЭрдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реВрдВ рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдпрд╣ рд╣реИ рдХрд┐ рд╣реИрд╢ рдХреИрд╕реЗ рдЪреЗрдХрд╕рдо рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рдпрд╛ рдЙрдиреНрд╣реЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП), рдХреНрдпреЛрдВрдХрд┐ рдкрд░рдВрдкрд░рд╛рдЧрдд рд░реВрдк рд╕реЗ рд╣реИрд╢ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рд╣реИрд╢ рдЯреЗрдмрд▓ рдХреЗ рд▓рд┐рдП (рдбреАрдЬреЗрдмреА 2 рдкреБрд░рд╛рдиреЗ рдкреНрд░рд╢рдВрд╕рдХ рдкрд╕рдВрджреАрджрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рджрд┐рдорд╛рдЧ рдореЗрдВ рдЖрддрд╛ рд╣реИ)ред рд╣рд╛рд▓рд╛рдБрдХрд┐ PIC/Arduino рднреАрдбрд╝ рдХреЗ рднреАрддрд░, рд▓реЛрдЧ рдЕрднреА рднреА рдкреБрд░рд╛рдиреЗ рд╕рд╛рдзрд╛рд░рдг 8-рдмрд┐рдЯ рдЪреЗрдХрд╕рдо, 16-рдмрд┐рдЯ рдлреНрд▓реЗрдЪрд░ рд╕рдо рдпрд╛ 16-рдмрд┐рдЯ CRC рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЖрдк рдирдП рдЪреЗрдХрд╕рдо рдкрд░ рдЬреНрдпрд╛рджрд╛ рдЪрд░реНрдЪрд╛ рдирд╣реАрдВ рджреЗрдЦрддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдЬ рдХреЗ рдХрдерд┐рдд рддреЗрдЬ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рд╕рд╛рде рдмреЗрд╣рддрд░ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВред рдХреНрдпрд╛ рд╣реИрд╢ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдЧрдгрдирд╛рдУрдВ рдХреЗ рдкреНрд░рдХрд╛рд░ рдмрд╣реБрдд рдзреАрдореЗ рд╣реИрдВ? (рд╕реАрдЖрд░рд╕реА рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ xxHash рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдореЗрдВ рдзреАрдорд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рд╡рдЬреВрдж ..) рдпрд╛ 8 рдпрд╛ 16 рдмрд┐рдЯ рддрдХ рдХрдо рд╣реЛрдиреЗ рдкрд░ рд╣реИрд╢ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдХреБрдЫ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рдЦрд░рд╛рдм рд╣реИ?

рдореИрдВрдиреЗ рдкрдврд╝рд╛ рд╣реИ рдХрд┐ xxHash рдХреЛ рдкрд╣рд▓реЗ lz4 рдХреЗ рд▓рд┐рдП рдЪреЗрдХрд╕рдо рдХреЗ рд░реВрдк рдореЗрдВ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдХреБрдЫ рдЕрдиреНрдп рд╣реИрд╢ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдЬреИрд╕реЗ SeaHash рдХреЛ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рднреА рдЪреЗрдХрд╕рдорд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рддреБрд▓рдирд╛ рдХреЗ рд▓рд┐рдП, CRC-32 рдХрд╛ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдХреБрдЫ рд╕рдВрдкреАрдбрд╝рди рд╕реНрд╡рд░реВрдкреЛрдВ (рдЬреИрд╕реЗ ZIP/RAR) рдореЗрдВ рднреАред рдореИрдВрдиреЗ рдпрд╣ рднреА рдкрдврд╝рд╛ рд╣реИ рдХрд┐ рд╕реАрдЖрд░рд╕реА рдореЗрдВ рдХреБрдЫ рдЧрдгрд┐рддреАрдп рдЧреБрдг рд╣реИрдВ рдЬреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдмрд╣реБрдкрджреЛрдВ рдЖрджрд┐ рдХреЗ рд▓рд┐рдП рддреНрд░реБрдЯрд┐ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИрдорд┐рдВрдЧ рджреВрд░реА рд╕рд╛рдмрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдХрдИ рдорд╛рдпрдиреЛрдВ рдореЗрдВ рд╣реИрд╢ рдЕрдзрд┐рдХ рдЕрд░рд╛рдЬрдХ рд╣реИрдВ, рдЕрдзрд┐рдХ рдЫрджреНрдо-рд╕рдВрдЦреНрдпрд╛-рдЬрдирд░реЗрдЯрд░ рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ, рдРрд╕реА рдЧрд╛рд░рдВрдЯреА рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ, рдХрдо рд╕реЗ рдХрдо рд╡рд╣ рд╣реИ рдпрд╣ рдореБрдЭреЗ рдХреИрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИред

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

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рд╕реАрдЖрд░рд╕реА рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдЖрдо рддреМрд░ рдкрд░ рд╣реИрдорд┐рдВрдЧ рджреВрд░реА рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рддрд╣рдд рддреНрд░реБрдЯрд┐ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдЧрд╛рд░рдВрдЯреА рджреЗрддрд╛ рд╣реИред рд╕реАрдорд┐рдд рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдмрд┐рдЯ рдлрд╝реНрд▓рд┐рдк рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, CRC _necessily_ рдПрдХ рднрд┐рдиреНрди рдкрд░рд┐рдгрд╛рдо рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛ред

рдпрд╣ рдЙрди рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╕рд╛рдмрд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдХреЗрд╡рд▓ рдХреБрдЫ рдмрд┐рдЯреНрд╕ рдлреНрд▓рд┐рдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред
рдХреБрдЫ рджрд╢рдХ рдкрд╣рд▓реЗ, рдпрд╣ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рд╕рд╛рдорд╛рдиреНрдп рдерд╛, рдЦрд╛рд╕рдХрд░ рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдореЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕рд┐рдЧреНрдирд▓ рдЕрднреА рднреА рдмрд╣реБрдд "рдХрдЪреНрдЪрд╛" рдерд╛, рдЗрд╕рд▓рд┐рдП рднреМрддрд┐рдХ рдкрд░рдд рдкрд░ рдЬреНрдЮрд╛рдд рдмрд┐рдЯ рдлрд╝реНрд▓рд┐рдк рдПрдХ рдЪреАрдЬрд╝ рдереАред

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕ рд╕рдВрдкрддреНрддрд┐ рдХреА рд╡рд┐рддрд░рдг рд▓рд╛рдЧрдд рд╣реИред рдПрдХ рдмрд╛рд░ "рд╕реБрд░рдХреНрд╖рд┐рдд" рд╣реИрдорд┐рдВрдЧ рджреВрд░реА рдкрд╛рд░ рд╣реЛ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдЯрдХреНрдХрд░ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдФрд░ рднреА рдЦрд░рд╛рдм рд╣реЛ рдЬрд╛рддреА рд╣реИред рдпрд╣ рдкрд┐рдЬрди рд╣реЛрд▓ рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рддрд╛рд░реНрдХрд┐рдХ рдкрд░рд┐рдгрд╛рдо рд╣реИред рдХрд┐рддрдирд╛ рдмреБрд░рд╛? рдЦреИрд░, рдпрд╣ рд╕рдЯреАрдХ рд╕реАрдЖрд░рд╕реА рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЕрдЪреНрдЫрд╛ рд╕реАрдЖрд░рд╕реА 3x - 7x рдмрджрддрд░ рд░реЗрдВрдЬ рдореЗрдВ рд╣реЛрдЧрд╛ред рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рд┐рд░реНрдл 2-3 рдмрд┐рдЯреНрд╕ рдлреИрд▓рд╛рд╡ рдореЗрдВ рдХрдореА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЗрддрдирд╛ рднрдпрд╛рдирдХ рдирд╣реАрдВ рд╣реИред рдлрд┐рд░ рднреАред

рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд "рдЖрджрд░реНрд╢" рд╡рд┐рддрд░рдг рд╕рдВрдкрддреНрддрд┐ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╡рд╛рд▓реЗ рд╣реИрд╢ рдХреЗ рд╕рд╛рде: рдХреЛрдИ рднреА рдкрд░рд┐рд╡рд░реНрддрди, рдЪрд╛рд╣реЗ рд╡рд╣ рдПрдХ рдмрд┐рдЯ рдпрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рдЖрдЙрдЯрдкреБрдЯ рд╣реЛ, рдЯрдХрд░рд╛рд╡ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреА рдмрд┐рд▓реНрдХреБрд▓ 1/2 ^ n рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред рдпрд╣ рд╕рдордЭрдирд╛ рдЖрд╕рд╛рди рд╣реИ: рдЯрдХреНрдХрд░ рдХрд╛ рдЬреЛрдЦрд┐рдо рд╣рдореЗрд╢рд╛ рд╕рдорд╛рди рд╣реЛрддрд╛ рд╣реИред рд╕реАрдЖрд░рд╕реА рдХреЗ рд╕рд╛рде рд╕реАрдзреА рддреБрд▓рдирд╛ рдореЗрдВ, рдЬрдм рд╣реИрдорд┐рдВрдЧ рджреВрд░реА рдЫреЛрдЯреА рд╣реЛрддреА рд╣реИ рддреЛ рдЯрдХреНрдХрд░ рдХреА рджрд░ рдмрджрддрд░ рд╣реЛрддреА рд╣реИ (рдХреНрдпреЛрдВрдХрд┐ рдпрд╣> 0 рд╣реИ), рд▓реЗрдХрд┐рди рд╣реИрдорд┐рдВрдЧ рджреВрд░реА рдмрдбрд╝реА рд╣реЛрдиреЗ рдкрд░ рдпрд╣ рдмреЗрд╣рддрд░ рд╣реЛрддрд╛ рд╣реИред

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

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

рдпрд╣ рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдХреЗрд╡рд▓ рдЪреЗрдХрд╕рдорд┐рдВрдЧ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдПрдХ "рдЖрджрд░реНрд╢" рд╣реИрд╢ рдХреА рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдВрдкрддреНрддрд┐ рдпрд╣ рд╣реИ рдХрд┐, рд╣реИрд╢ рд╕реЗ рдмрд┐рдЯреНрд╕ рдХреЗ рдХрд┐рд╕реА рднреА рдЦрдВрдб рдХреЛ рдирд┐рдХрд╛рд▓рддреЗ рд╕рдордп, рдпрд╣ рдЕрднреА рднреА рдЗрд╕ 1 / 2^n рдЯрдХрд░рд╛рд╡ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдЕрдиреНрдп рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдмрд┐рдЯреНрд╕ рдХреЗ рд╕реНрд░реЛрдд рдХреЗ рд░реВрдк рдореЗрдВ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рд╣реИрд╢ рдЯреЗрдмрд▓ рдпрд╛ рдмреНрд▓реВрдо рдлрд┐рд▓реНрдЯрд░ред рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рд╕реАрдЖрд░рд╕реА рдРрд╕реА рдЧрд╛рд░рдВрдЯреА рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдХреБрдЫ рдмрд┐рдЯреНрд╕ рдмрд╣реБрдд рдЕрдиреБрдорд╛рдирд┐рдд рдпрд╛ рдЕрддреНрдпрдзрд┐рдХ рд╕рд╣рд╕рдВрдмрджреНрдз рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдЬрдм рдЙрдиреНрд╣реЗрдВ рд╣реИрд╢ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП рдирд┐рдХрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдлреИрд▓рд╛рд╡ рдмрд╣реБрдд рдЦрд░рд╛рдм рд╣реЛрддрд╛ рд╣реИред

рдХреЛрдИ рдХрд╣ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЪреЗрдХрд╕рдо рдФрд░ рд╣реИрд╢рд┐рдВрдЧ рдХреЗрд╡рд▓ 2 рдЕрд▓рдЧ-рдЕрд▓рдЧ рдбреЛрдореЗрди рд╣реИрдВ, рдФрд░ рднреНрд░рдорд┐рдд рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рджрд░рдЕрд╕рд▓, рдпрд╣реА рд╕рд┐рджреНрдзрд╛рдВрдд рд╣реИред рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдФрд░ рдХреНрд╖реЗрддреНрд░ рдЕрднреНрдпрд╛рд╕ рдХреА рдЙрдкреЗрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИред рдПрдХрд╛рдзрд┐рдХ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ "рдорд┐рдХреНрд╕рд░" рд░рдЦрдирд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдПрдХ рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╡рд╕реНрдерд┐рдд рд╣реЛ рдЬрд╛рдПрдВрдЧреЗ рдФрд░ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреВрд▓ рдЬрд╛рдПрдВрдЧреЗред рдореИрдВ рдЧрд┐рдирддреА рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдХрд┐ рдореИрдВрдиреЗ рдХрд┐рддрдиреА рдмрд╛рд░ рд╕реАрдЖрд░рд╕реА 32 рдХреЛ рд╣реИрд╢рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рд╣реИ, рд╕рд┐рд░реНрдл рдЗрд╕рд▓рд┐рдП рдХрд┐ рдпрд╣ "рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдкрд░реНрдпрд╛рдкреНрдд" рд▓рдЧрд╛ред рдпрд╣ рдХрд╣рдирд╛ рдЖрд╕рд╛рди рд╣реИ рдХрд┐ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдпрд╣ рд▓рдЧрд╛рддрд╛рд░ рд╣реЛрддрд╛ рд╣реИред
рдЗрд╕ рдорд╛рд╣реМрд▓ рдореЗрдВ, рджреЛрдиреЛрдВ рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдП рдЧрдП рд╕рдорд╛рдзрд╛рди рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░рдирд╛ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред

PIC/Arduino рднреАрдбрд╝ рдХреЗ рднреАрддрд░, рд▓реЛрдЧ рдЕрднреА рднреА рдкреБрд░рд╛рдиреЗ рд╕рд╛рдзрд╛рд░рдг 8-рдмрд┐рдЯ рдЪреЗрдХрд╕рдо, 16-рдмрд┐рдЯ рдлреНрд▓реЗрдЪрд░ рдпреЛрдЧ рдпрд╛ 16-рдмрд┐рдЯ CRC рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред
(...)
8 рдпрд╛ 16 рдмрд┐рдЯ рддрдХ рдХрдо рд╣реЛрдиреЗ рдкрд░ рд╣реИрд╢ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЗ рд╕рд╛рде рдХреБрдЫ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рдЦрд░рд╛рдм рд╣реИ?

рдПрдХ рдЕрдЪреНрдЫреЗ рд╣реИрд╢ рдХреЗ рдЧреБрдгреЛрдВ рдХреЗ рдХрд╛рд░рдг, рд╣реИрд╢ рд╕реЗ 8 рдпрд╛ 16 рдмрд┐рдЯ рдирд┐рдХрд╛рд▓рдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдВрднрд╡ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк 1/256 рдпрд╛ 1/65535 рдЯрдХрд░рд╛рд╡ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред рдореБрдЭреЗ рдЗрд╕ рдкрд░ рдХреЛрдИ рдЪрд┐рдВрддрд╛ рдирд╣реАрдВ рджрд┐рдЦрддреАред

рдмрд╕, рд╣рдореЗрдВ _рдЗрддрд┐рд╣рд╛рд╕_ рдХреА рд▓реЗрдЯреЗрдВрд╕реА рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд▓реЛрдЧреЛрдВ рдХреЛ рдЪреАрдЬреЛрдВ рдХреЗ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рддрд░реАрдХреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдЪреЗрдХрд╕рдорд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЪреЗрдХрд╕рдо рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдЕрдЧрд░ рд╡рд╣рд╛рдБ рдЕрдзрд┐рдХ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдФрд░ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдмреЗрд╣рддрд░ рд╕рдорд╛рдзрд╛рди рд╣реИрдВ, рддреЛ рдЖрджрддреЗрдВ рддреЗрдЬреА рд╕реЗ рдирд╣реАрдВ рдмрджрд▓рддреА рд╣реИрдВред

рд╕рднреА 11 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рд╕реАрдЖрд░рд╕реА рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдЖрдо рддреМрд░ рдкрд░ рд╣реИрдорд┐рдВрдЧ рджреВрд░реА рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рддрд╣рдд рддреНрд░реБрдЯрд┐ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдЧрд╛рд░рдВрдЯреА рджреЗрддрд╛ рд╣реИред рд╕реАрдорд┐рдд рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдмрд┐рдЯ рдлрд╝реНрд▓рд┐рдк рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, CRC _necessily_ рдПрдХ рднрд┐рдиреНрди рдкрд░рд┐рдгрд╛рдо рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛ред

рдпрд╣ рдЙрди рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╕рд╛рдмрд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдХреЗрд╡рд▓ рдХреБрдЫ рдмрд┐рдЯреНрд╕ рдлреНрд▓рд┐рдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред
рдХреБрдЫ рджрд╢рдХ рдкрд╣рд▓реЗ, рдпрд╣ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рд╕рд╛рдорд╛рдиреНрдп рдерд╛, рдЦрд╛рд╕рдХрд░ рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдореЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕рд┐рдЧреНрдирд▓ рдЕрднреА рднреА рдмрд╣реБрдд "рдХрдЪреНрдЪрд╛" рдерд╛, рдЗрд╕рд▓рд┐рдП рднреМрддрд┐рдХ рдкрд░рдд рдкрд░ рдЬреНрдЮрд╛рдд рдмрд┐рдЯ рдлрд╝реНрд▓рд┐рдк рдПрдХ рдЪреАрдЬрд╝ рдереАред

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕ рд╕рдВрдкрддреНрддрд┐ рдХреА рд╡рд┐рддрд░рдг рд▓рд╛рдЧрдд рд╣реИред рдПрдХ рдмрд╛рд░ "рд╕реБрд░рдХреНрд╖рд┐рдд" рд╣реИрдорд┐рдВрдЧ рджреВрд░реА рдкрд╛рд░ рд╣реЛ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдЯрдХреНрдХрд░ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдФрд░ рднреА рдЦрд░рд╛рдм рд╣реЛ рдЬрд╛рддреА рд╣реИред рдпрд╣ рдкрд┐рдЬрди рд╣реЛрд▓ рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рддрд╛рд░реНрдХрд┐рдХ рдкрд░рд┐рдгрд╛рдо рд╣реИред рдХрд┐рддрдирд╛ рдмреБрд░рд╛? рдЦреИрд░, рдпрд╣ рд╕рдЯреАрдХ рд╕реАрдЖрд░рд╕реА рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЕрдЪреНрдЫрд╛ рд╕реАрдЖрд░рд╕реА 3x - 7x рдмрджрддрд░ рд░реЗрдВрдЬ рдореЗрдВ рд╣реЛрдЧрд╛ред рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рд┐рд░реНрдл 2-3 рдмрд┐рдЯреНрд╕ рдлреИрд▓рд╛рд╡ рдореЗрдВ рдХрдореА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЗрддрдирд╛ рднрдпрд╛рдирдХ рдирд╣реАрдВ рд╣реИред рдлрд┐рд░ рднреАред

рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд "рдЖрджрд░реНрд╢" рд╡рд┐рддрд░рдг рд╕рдВрдкрддреНрддрд┐ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╡рд╛рд▓реЗ рд╣реИрд╢ рдХреЗ рд╕рд╛рде: рдХреЛрдИ рднреА рдкрд░рд┐рд╡рд░реНрддрди, рдЪрд╛рд╣реЗ рд╡рд╣ рдПрдХ рдмрд┐рдЯ рдпрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рдЖрдЙрдЯрдкреБрдЯ рд╣реЛ, рдЯрдХрд░рд╛рд╡ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреА рдмрд┐рд▓реНрдХреБрд▓ 1/2 ^ n рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред рдпрд╣ рд╕рдордЭрдирд╛ рдЖрд╕рд╛рди рд╣реИ: рдЯрдХреНрдХрд░ рдХрд╛ рдЬреЛрдЦрд┐рдо рд╣рдореЗрд╢рд╛ рд╕рдорд╛рди рд╣реЛрддрд╛ рд╣реИред рд╕реАрдЖрд░рд╕реА рдХреЗ рд╕рд╛рде рд╕реАрдзреА рддреБрд▓рдирд╛ рдореЗрдВ, рдЬрдм рд╣реИрдорд┐рдВрдЧ рджреВрд░реА рдЫреЛрдЯреА рд╣реЛрддреА рд╣реИ рддреЛ рдЯрдХреНрдХрд░ рдХреА рджрд░ рдмрджрддрд░ рд╣реЛрддреА рд╣реИ (рдХреНрдпреЛрдВрдХрд┐ рдпрд╣> 0 рд╣реИ), рд▓реЗрдХрд┐рди рд╣реИрдорд┐рдВрдЧ рджреВрд░реА рдмрдбрд╝реА рд╣реЛрдиреЗ рдкрд░ рдпрд╣ рдмреЗрд╣рддрд░ рд╣реЛрддрд╛ рд╣реИред

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

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

рдпрд╣ рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдХреЗрд╡рд▓ рдЪреЗрдХрд╕рдорд┐рдВрдЧ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдПрдХ "рдЖрджрд░реНрд╢" рд╣реИрд╢ рдХреА рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдВрдкрддреНрддрд┐ рдпрд╣ рд╣реИ рдХрд┐, рд╣реИрд╢ рд╕реЗ рдмрд┐рдЯреНрд╕ рдХреЗ рдХрд┐рд╕реА рднреА рдЦрдВрдб рдХреЛ рдирд┐рдХрд╛рд▓рддреЗ рд╕рдордп, рдпрд╣ рдЕрднреА рднреА рдЗрд╕ 1 / 2^n рдЯрдХрд░рд╛рд╡ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдЕрдиреНрдп рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдмрд┐рдЯреНрд╕ рдХреЗ рд╕реНрд░реЛрдд рдХреЗ рд░реВрдк рдореЗрдВ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рд╣реИрд╢ рдЯреЗрдмрд▓ рдпрд╛ рдмреНрд▓реВрдо рдлрд┐рд▓реНрдЯрд░ред рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рд╕реАрдЖрд░рд╕реА рдРрд╕реА рдЧрд╛рд░рдВрдЯреА рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдХреБрдЫ рдмрд┐рдЯреНрд╕ рдмрд╣реБрдд рдЕрдиреБрдорд╛рдирд┐рдд рдпрд╛ рдЕрддреНрдпрдзрд┐рдХ рд╕рд╣рд╕рдВрдмрджреНрдз рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдЬрдм рдЙрдиреНрд╣реЗрдВ рд╣реИрд╢ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП рдирд┐рдХрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдлреИрд▓рд╛рд╡ рдмрд╣реБрдд рдЦрд░рд╛рдм рд╣реЛрддрд╛ рд╣реИред

рдХреЛрдИ рдХрд╣ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЪреЗрдХрд╕рдо рдФрд░ рд╣реИрд╢рд┐рдВрдЧ рдХреЗрд╡рд▓ 2 рдЕрд▓рдЧ-рдЕрд▓рдЧ рдбреЛрдореЗрди рд╣реИрдВ, рдФрд░ рднреНрд░рдорд┐рдд рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рджрд░рдЕрд╕рд▓, рдпрд╣реА рд╕рд┐рджреНрдзрд╛рдВрдд рд╣реИред рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдФрд░ рдХреНрд╖реЗрддреНрд░ рдЕрднреНрдпрд╛рд╕ рдХреА рдЙрдкреЗрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИред рдПрдХрд╛рдзрд┐рдХ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ "рдорд┐рдХреНрд╕рд░" рд░рдЦрдирд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдПрдХ рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╡рд╕реНрдерд┐рдд рд╣реЛ рдЬрд╛рдПрдВрдЧреЗ рдФрд░ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреВрд▓ рдЬрд╛рдПрдВрдЧреЗред рдореИрдВ рдЧрд┐рдирддреА рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдХрд┐ рдореИрдВрдиреЗ рдХрд┐рддрдиреА рдмрд╛рд░ рд╕реАрдЖрд░рд╕реА 32 рдХреЛ рд╣реИрд╢рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рд╣реИ, рд╕рд┐рд░реНрдл рдЗрд╕рд▓рд┐рдП рдХрд┐ рдпрд╣ "рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдкрд░реНрдпрд╛рдкреНрдд" рд▓рдЧрд╛ред рдпрд╣ рдХрд╣рдирд╛ рдЖрд╕рд╛рди рд╣реИ рдХрд┐ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдпрд╣ рд▓рдЧрд╛рддрд╛рд░ рд╣реЛрддрд╛ рд╣реИред
рдЗрд╕ рдорд╛рд╣реМрд▓ рдореЗрдВ, рджреЛрдиреЛрдВ рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдП рдЧрдП рд╕рдорд╛рдзрд╛рди рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░рдирд╛ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред

PIC/Arduino рднреАрдбрд╝ рдХреЗ рднреАрддрд░, рд▓реЛрдЧ рдЕрднреА рднреА рдкреБрд░рд╛рдиреЗ рд╕рд╛рдзрд╛рд░рдг 8-рдмрд┐рдЯ рдЪреЗрдХрд╕рдо, 16-рдмрд┐рдЯ рдлреНрд▓реЗрдЪрд░ рдпреЛрдЧ рдпрд╛ 16-рдмрд┐рдЯ CRC рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред
(...)
8 рдпрд╛ 16 рдмрд┐рдЯ рддрдХ рдХрдо рд╣реЛрдиреЗ рдкрд░ рд╣реИрд╢ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЗ рд╕рд╛рде рдХреБрдЫ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рдЦрд░рд╛рдм рд╣реИ?

рдПрдХ рдЕрдЪреНрдЫреЗ рд╣реИрд╢ рдХреЗ рдЧреБрдгреЛрдВ рдХреЗ рдХрд╛рд░рдг, рд╣реИрд╢ рд╕реЗ 8 рдпрд╛ 16 рдмрд┐рдЯ рдирд┐рдХрд╛рд▓рдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдВрднрд╡ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк 1/256 рдпрд╛ 1/65535 рдЯрдХрд░рд╛рд╡ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред рдореБрдЭреЗ рдЗрд╕ рдкрд░ рдХреЛрдИ рдЪрд┐рдВрддрд╛ рдирд╣реАрдВ рджрд┐рдЦрддреАред

рдмрд╕, рд╣рдореЗрдВ _рдЗрддрд┐рд╣рд╛рд╕_ рдХреА рд▓реЗрдЯреЗрдВрд╕реА рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд▓реЛрдЧреЛрдВ рдХреЛ рдЪреАрдЬреЛрдВ рдХреЗ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рддрд░реАрдХреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдЪреЗрдХрд╕рдорд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЪреЗрдХрд╕рдо рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдЕрдЧрд░ рд╡рд╣рд╛рдБ рдЕрдзрд┐рдХ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдФрд░ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдмреЗрд╣рддрд░ рд╕рдорд╛рдзрд╛рди рд╣реИрдВ, рддреЛ рдЖрджрддреЗрдВ рддреЗрдЬреА рд╕реЗ рдирд╣реАрдВ рдмрджрд▓рддреА рд╣реИрдВред

рд╕реАрдЖрд░рд╕реА рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдЖрдо рддреМрд░ рдкрд░ рд╣реИрдорд┐рдВрдЧ рджреВрд░реА рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рддрд╣рдд рддреНрд░реБрдЯрд┐ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдЧрд╛рд░рдВрдЯреА рджреЗрддрд╛ рд╣реИред рд╕реАрдорд┐рдд рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдмрд┐рдЯ рдлрд╝реНрд▓рд┐рдк рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, CRC _necessily_ рдПрдХ рднрд┐рдиреНрди рдкрд░рд┐рдгрд╛рдо рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛ред

рдпрд╣ рдЙрди рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╕рд╛рдмрд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдХреЗрд╡рд▓ рдХреБрдЫ рдмрд┐рдЯреНрд╕ рдлреНрд▓рд┐рдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред
рдХреБрдЫ рджрд╢рдХ рдкрд╣рд▓реЗ, рдпрд╣ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рд╕рд╛рдорд╛рдиреНрдп рдерд╛, рдЦрд╛рд╕рдХрд░ рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдореЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕рд┐рдЧреНрдирд▓ рдЕрднреА рднреА рдмрд╣реБрдд "рдХрдЪреНрдЪрд╛" рдерд╛, рдЗрд╕рд▓рд┐рдП рднреМрддрд┐рдХ рдкрд░рдд рдкрд░ рдЬреНрдЮрд╛рдд рдмрд┐рдЯ рдлрд╝реНрд▓рд┐рдк рдПрдХ рдЪреАрдЬрд╝ рдереАред

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕ рд╕рдВрдкрддреНрддрд┐ рдХреА рд╡рд┐рддрд░рдг рд▓рд╛рдЧрдд рд╣реИред рдПрдХ рдмрд╛рд░ "рд╕реБрд░рдХреНрд╖рд┐рдд" рд╣реИрдорд┐рдВрдЧ рджреВрд░реА рдкрд╛рд░ рд╣реЛ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдЯрдХреНрдХрд░ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдФрд░ рднреА рдЦрд░рд╛рдм рд╣реЛ рдЬрд╛рддреА рд╣реИред рдпрд╣ рдкрд┐рдЬрди рд╣реЛрд▓ рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рддрд╛рд░реНрдХрд┐рдХ рдкрд░рд┐рдгрд╛рдо рд╣реИред рдХрд┐рддрдирд╛ рдмреБрд░рд╛? рдЦреИрд░, рдпрд╣ рд╕рдЯреАрдХ рд╕реАрдЖрд░рд╕реА рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЕрдЪреНрдЫрд╛ рд╕реАрдЖрд░рд╕реА 3x - 7x рдмрджрддрд░ рд░реЗрдВрдЬ рдореЗрдВ рд╣реЛрдЧрд╛ред рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рд┐рд░реНрдл 2-3 рдмрд┐рдЯреНрд╕ рдлреИрд▓рд╛рд╡ рдореЗрдВ рдХрдореА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЗрддрдирд╛ рднрдпрд╛рдирдХ рдирд╣реАрдВ рд╣реИред рдлрд┐рд░ рднреАред

рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд "рдЖрджрд░реНрд╢" рд╡рд┐рддрд░рдг рд╕рдВрдкрддреНрддрд┐ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╡рд╛рд▓реЗ рд╣реИрд╢ рдХреЗ рд╕рд╛рде: рдХреЛрдИ рднреА рдкрд░рд┐рд╡рд░реНрддрди, рдЪрд╛рд╣реЗ рд╡рд╣ рдПрдХ рдмрд┐рдЯ рдпрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рдЖрдЙрдЯрдкреБрдЯ рд╣реЛ, рдЯрдХрд░рд╛рд╡ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреА рдмрд┐рд▓реНрдХреБрд▓ 1/2 ^ n рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред рдпрд╣ рд╕рдордЭрдирд╛ рдЖрд╕рд╛рди рд╣реИ: рдЯрдХреНрдХрд░ рдХрд╛ рдЬреЛрдЦрд┐рдо рд╣рдореЗрд╢рд╛ рд╕рдорд╛рди рд╣реЛрддрд╛ рд╣реИред рд╕реАрдЖрд░рд╕реА рдХреЗ рд╕рд╛рде рд╕реАрдзреА рддреБрд▓рдирд╛ рдореЗрдВ, рдЯрдХреНрдХрд░ рдХреА рджрд░ рдЦрд░рд╛рдм рд╣реЛрддреА рд╣реИ (рдХреНрдпреЛрдВрдХрд┐ рдпрд╣> 0 рд╣реИ) рдЬрдм рд╣реИрдорд┐рдВрдЧ рджреВрд░реА рдЫреЛрдЯреА рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рд╣реИрдорд┐рдВрдЧ рджреВрд░реА рдмрдбрд╝реА рд╣реЛрдиреЗ рдкрд░ рдпрд╣ рдмреЗрд╣рддрд░ рд╣реЛрддрд╛ рд╣реИред

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

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

рдпрд╣ рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдХреЗрд╡рд▓ рдЪреЗрдХрд╕рдорд┐рдВрдЧ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдПрдХ "рдЖрджрд░реНрд╢" рд╣реИрд╢ рдХреА рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдВрдкрддреНрддрд┐ рдпрд╣ рд╣реИ рдХрд┐, рд╣реИрд╢ рд╕реЗ рдмрд┐рдЯреНрд╕ рдХреЗ рдХрд┐рд╕реА рднреА рдЦрдВрдб рдХреЛ рдирд┐рдХрд╛рд▓рддреЗ рд╕рдордп, рдпрд╣ рдЕрднреА рднреА рдЗрд╕ 1 / 2^n рдЯрдХрд░рд╛рд╡ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдЕрдиреНрдп рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдмрд┐рдЯреНрд╕ рдХреЗ рд╕реНрд░реЛрдд рдХреЗ рд░реВрдк рдореЗрдВ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рд╣реИрд╢ рдЯреЗрдмрд▓ рдпрд╛ рдмреНрд▓реВрдо рдлрд┐рд▓реНрдЯрд░ред рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рд╕реАрдЖрд░рд╕реА рдРрд╕реА рдЧрд╛рд░рдВрдЯреА рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдХреБрдЫ рдмрд┐рдЯреНрд╕ рдмрд╣реБрдд рдЕрдиреБрдорд╛рдирд┐рдд рдпрд╛ рдЕрддреНрдпрдзрд┐рдХ рд╕рд╣рд╕рдВрдмрджреНрдз рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдЬрдм рдЙрдиреНрд╣реЗрдВ рд╣реИрд╢ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП рдирд┐рдХрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдлреИрд▓рд╛рд╡ рдмрд╣реБрдд рдЦрд░рд╛рдм рд╣реЛрддрд╛ рд╣реИред

рдХреЛрдИ рдХрд╣ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЪреЗрдХрд╕рдо рдФрд░ рд╣реИрд╢рд┐рдВрдЧ рдХреЗрд╡рд▓ 2 рдЕрд▓рдЧ-рдЕрд▓рдЧ рдбреЛрдореЗрди рд╣реИрдВ, рдФрд░ рднреНрд░рдорд┐рдд рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рджрд░рдЕрд╕рд▓, рдпрд╣реА рд╕рд┐рджреНрдзрд╛рдВрдд рд╣реИред рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдФрд░ рдХреНрд╖реЗрддреНрд░ рдЕрднреНрдпрд╛рд╕ рдХреА рдЙрдкреЗрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИред рдПрдХрд╛рдзрд┐рдХ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ "рдорд┐рдХреНрд╕рд░" рд░рдЦрдирд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдПрдХ рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╡рд╕реНрдерд┐рдд рд╣реЛ рдЬрд╛рдПрдВрдЧреЗ рдФрд░ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреВрд▓ рдЬрд╛рдПрдВрдЧреЗред рдореИрдВ рдЧрд┐рдирддреА рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдХрд┐ рдореИрдВрдиреЗ рдХрд┐рддрдиреА рдмрд╛рд░ рд╕реАрдЖрд░рд╕реА 32 рдХреЛ рд╣реИрд╢рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рд╣реИ, рд╕рд┐рд░реНрдл рдЗрд╕рд▓рд┐рдП рдХрд┐ рдпрд╣ "рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдкрд░реНрдпрд╛рдкреНрдд" рд▓рдЧрд╛ред рдпрд╣ рдХрд╣рдирд╛ рдЖрд╕рд╛рди рд╣реИ рдХрд┐ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдпрд╣ рд▓рдЧрд╛рддрд╛рд░ рд╣реЛрддрд╛ рд╣реИред
рдЗрд╕ рдорд╛рд╣реМрд▓ рдореЗрдВ, рджреЛрдиреЛрдВ рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдП рдЧрдП рд╕рдорд╛рдзрд╛рди рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░рдирд╛ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред

PIC/Arduino рднреАрдбрд╝ рдХреЗ рднреАрддрд░, рд▓реЛрдЧ рдЕрднреА рднреА рдкреБрд░рд╛рдиреЗ рд╕рд╛рдзрд╛рд░рдг 8-рдмрд┐рдЯ рдЪреЗрдХрд╕рдо, 16-рдмрд┐рдЯ рдлреНрд▓реЗрдЪрд░ рдпреЛрдЧ рдпрд╛ 16-рдмрд┐рдЯ CRC рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред
(...)
8 рдпрд╛ 16 рдмрд┐рдЯ рддрдХ рдХрдо рд╣реЛрдиреЗ рдкрд░ рд╣реИрд╢ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЗ рд╕рд╛рде рдХреБрдЫ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рдЦрд░рд╛рдм рд╣реИ?

рдПрдХ рдЕрдЪреНрдЫреЗ рд╣реИрд╢ рдХреЗ рдЧреБрдгреЛрдВ рдХреЗ рдХрд╛рд░рдг, рд╣реИрд╢ рд╕реЗ 8 рдпрд╛ 16 рдмрд┐рдЯ рдирд┐рдХрд╛рд▓рдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдВрднрд╡ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк 1/256 рдпрд╛ 1/65535 рдЯрдХрд░рд╛рд╡ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред рдореБрдЭреЗ рдЗрд╕ рдкрд░ рдХреЛрдИ рдЪрд┐рдВрддрд╛ рдирд╣реАрдВ рджрд┐рдЦрддреАред

рдмрд╕, рд╣рдореЗрдВ _рдЗрддрд┐рд╣рд╛рд╕_ рдХреА рд▓реЗрдЯреЗрдВрд╕реА рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд▓реЛрдЧреЛрдВ рдХреЛ рдЪреАрдЬреЛрдВ рдХреЗ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рддрд░реАрдХреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдЪреЗрдХрд╕рдорд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЪреЗрдХрд╕рдо рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдЕрдЧрд░ рд╡рд╣рд╛рдБ рдЕрдзрд┐рдХ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдФрд░ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдмреЗрд╣рддрд░ рд╕рдорд╛рдзрд╛рди рд╣реИрдВ, рддреЛ рдЖрджрддреЗрдВ рддреЗрдЬреА рд╕реЗ рдирд╣реАрдВ рдмрджрд▓рддреА рд╣реИрдВред

рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╕реАрдЖрд░рд╕реА 32 рдХреЗ рд╕рд╛рде рдФрд░ рдПрдЪрдбреА = 6 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдпрд╣ рдХрд┐рд╕реА рднреА 5-рдмрд┐рдЯ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдпрд╣ 2 ^ 31 = рд▓рдЧрднрдЧ 204 рдПрдордмреА рддрдХ рдХреЗ рдлрдЯрдиреЗ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддрд╛ рд╣реИ
рдФрд░ рд╕рднреА рд╕рд┐рдВрдЧрд▓-рдмрд┐рдЯ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдВ
xxHash рдореЗрдВ, рдХрд┐рддрдиреЗ рдмрд┐рдЯреНрд╕ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рд╣рдо рдХрд┐рд╕реА рддреНрд░реБрдЯрд┐ рдХрд╛ рдкрддрд╛ рди рд▓рдЧрд╛ рд╕рдХреЗрдВ?
рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рд╣реИрд╢ рдореЗрдВ рднреА 1-рдмрд┐рдЯ рдкрд░рд┐рд╡рд░реНрддрди рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рдбрд╛рдЗрдЬреЗрд╕реНрдЯ рдмрдирд╛рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рд╣рдо рдЯрдХреНрдХрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдмрд┐рдЯреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреА рдЧрдгрдирд╛ рдХреИрд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдиреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ рдПрдХ рдФрд░ рдкреНрд░рд╢реНрди рд╣реИ:

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

рдпрд╣ рдмреБрд░рд╛ рдХреНрдпреЛрдВ рд╣реИ? рдпрджрд┐ рдмрд┐рдЯреНрд╕ рдХрд┐рд╕реА рддрд░рд╣ рд╕рд╣рд╕рдВрдмрджреНрдз рд╣реИрдВ рддреЛ рдХреНрдпрд╛ рд╣рдо рдЗрд╕ рд╕рд╣рд╕рдВрдмрдВрдз рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрд╖рддрд┐рдЧреНрд░рд╕реНрдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕реБрдзрд╛рд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

xxHash рдореЗрдВ, рдХрд┐рддрдиреЗ рдмрд┐рдЯреНрд╕ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рд╣рдо рдПрдХ рддреНрд░реБрдЯрд┐ (рдпрд╛ рдЯрдХрд░рд╛рд╡) рдХрд╛ рдкрддрд╛ рди рд▓рдЧрд╛ рд╕рдХреЗрдВ

1 рдмрд┐рдЯред

xxHash рдПрдХ рдЧреИрд░-рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд╝рд┐рдХ рд╣реИрд╢ рдлрд╝рдВрдХреНрд╢рди рд╣реИ, рдЪреЗрдХрд╕рдо рдирд╣реАрдВред рдпрд╣ рдХреЛрдИ рд╣реИрдорд┐рдВрдЧ рджреВрд░реА рдпрд╛ рдЯрдХреНрдХрд░ рдкреНрд░рддрд┐рд░реЛрдз рдЧрд╛рд░рдВрдЯреА рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдЬрдмрдХрд┐ рдпрд╣ рдЗрд╕ рдкрд░ рдПрдХ рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдпрд╣ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИред рдпрд╣ рдПрдХ рд░рд┐рдВрдЪ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд░реМрддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдЬреИрд╕рд╛ рд╣реИред рдЬрд╝рд░реВрд░, рдпрд╣ рдХрд╛рдо рдкреВрд░рд╛ рдХрд░ рджреЗрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд░рд┐рдВрдЪ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрдо рдкреНрд░рднрд╛рд╡реА рд╣реИ рдФрд░ рдЗрд╕рд╕реЗ рдиреБрдХрд╕рд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

xxHash рдореЗрдВ, рдХрд┐рддрдиреЗ рдмрд┐рдЯреНрд╕ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рд╣рдо рдПрдХ рддреНрд░реБрдЯрд┐ (рдпрд╛ рдЯрдХрд░рд╛рд╡) рдХрд╛ рдкрддрд╛ рди рд▓рдЧрд╛ рд╕рдХреЗрдВ

1 рдмрд┐рдЯред

xxHash рдПрдХ рдЧреИрд░-рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд╝рд┐рдХ рд╣реИрд╢ рдлрд╝рдВрдХреНрд╢рди рд╣реИ, рдЪреЗрдХрд╕рдо рдирд╣реАрдВред рдпрд╣ рдХреЛрдИ рд╣реИрдорд┐рдВрдЧ рджреВрд░реА рдпрд╛ рдЯрдХреНрдХрд░ рдкреНрд░рддрд┐рд░реЛрдз рдЧрд╛рд░рдВрдЯреА рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдЬрдмрдХрд┐ рдпрд╣ рдЗрд╕ рдкрд░ рдПрдХ рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдпрд╣ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИред рдпрд╣ рдПрдХ рд░рд┐рдВрдЪ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд░реМрддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдЬреИрд╕рд╛ рд╣реИред рдЬрд╝рд░реВрд░, рдпрд╣ рдХрд╛рдо рдкреВрд░рд╛ рдХрд░ рджреЗрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд░рд┐рдВрдЪ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрдо рдкреНрд░рднрд╛рд╡реА рд╣реИ рдФрд░ рдЗрд╕рд╕реЗ рдиреБрдХрд╕рд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдХреНрдпрд╛ рдЖрдкрдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╣рдо рдХреЗрд╡рд▓ 1 рдмрд┐рдЯ рдбреЗрдЯрд╛ рдмрджрд▓рдХрд░ рдбрд┐рдХреЛрдбрд░ рдХреЛ рдмреЗрд╡рдХреВрдл рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ?
рдпрд╣ рдЯрдХрд░рд╛рд╡ рдкреИрджрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ? (рдпрд╣ рдбрд░рд╛рд╡рдирд╛ рд╣реИ) рдФрд░ рдЗрд╕ рддрд░рд╣ рдХреЗ рдЯрдХрд░рд╛рд╡ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдбрд╛рдЗрдЬреЗрд╕реНрдЯ рдЖрдХрд╛рд░ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИ

рдХреНрдпрд╛ рдЖрдкрдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╣рдо рдХреЗрд╡рд▓ 1 рдмрд┐рдЯ рдбреЗрдЯрд╛ рдмрджрд▓рдХрд░ рдбрд┐рдХреЛрдбрд░ рдХреЛ рдмреЗрд╡рдХреВрдл рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ?

2 рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рд╛рдордЧреНрд░рд┐рдпреЛрдВ рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реИрд╢ рдорд╛рдиреЛрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП, рдЯрдХрд░рд╛рд╡ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣рдореЗрд╢рд╛ 1 / 2^64 (рдЕрдЪреНрдЫреА рдЧреБрдгрд╡рддреНрддрд╛ рд╡рд╛рд▓реЗ 64-рдмрд┐рдЯ рд╣реИрд╢ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рд▓рд┐рдП, рдЬреИрд╕реЗ xxh64 рдпрд╛ xxh3 ), рдЬреЛ рднреА рд╣реЛ рдЙрди 2 рд╕рд╛рдордЧреНрд░рд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рд╕рдВрд╢реЛрдзрдиреЛрдВ рдХреА рдорд╛рддреНрд░рд╛ред

рдЗрд╕рдХрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдорддрд▓рдм рд╣реИ рдХрд┐, рдХрдо рд╕реЗ рдХрдо рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдПрдХ рдмрд┐рдЯ рдХреЗ рдкрд░рд┐рд╡рд░реНрддрди рд╕реЗ рдЯрдХрд░рд╛рд╡ рдЙрддреНрдкрдиреНрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдЕрдм, рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдпрд╣ рдкреНрд░рд╛рдпрд┐рдХрддрд╛ 1 / 2^64 , рдЬреЛ рдХрд┐ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЕрд╕реАрдо рд╣реИред
рд▓реЛрдЧ рдЗрд╕ рд╡рд┐рд╖рдп рдХреЛ рд╕рдордЭрдиреЗ рдореЗрдВ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдЦрд░рд╛рдм рд╣реИрдВред рд╡реЗ рдХрднреА-рдХрднреА рдЗрд╕реЗ "рдЫреЛрдЯрд╛" рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рдЬреНрдпрд╛рджрд╛рддрд░ рд▓реЛрдЧреЛрдВ рдХреЗ рджрд┐рдорд╛рдЧ рдореЗрдВ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд░рд╛рд╢рд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреИрд╕реЗ ~ 10%ред

рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд╡рд┐рдЪрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЗрд╕ рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рджреЗрдЦрдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ:
collision probabilities

рдпрд╛рдиреА : 1 / 2 ^ 64 рд╕реАрдзреЗ рдХрд┐рд╕реА рдХреЗ рд╕рд┐рд░ рдкрд░ рдзреВрдордХреЗрддреБ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╕реЗ рдмрд╣реБрдд рдХрдо рд╣реИ, рдФрд░ рд░рд╛рд╖реНрдЯреНрд░реАрдп рд▓реЙрдЯрд░реА _3 рдмрд╛рд░ рд▓рдЧрд╛рддрд╛рд░ рдЬреАрддрдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрдо рд╣реИ (рдЬреЛ рдХрд┐ рд╕рдВрджрд┐рдЧреНрдз рд╣реЛрдЧрд╛)ред рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ "рд╢реВрдиреНрдп" рдХреЗ рдмрд╣реБрдд рдХрд░реАрдм рд╣реИред рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдмрдЧ рдХреЗ рдЕрдиреНрдп рд╕реНрд░реЛрддреЛрдВ рд╕реЗ рд╢реБрд░реВ рдХрд░рдХреЗ, рдХрд┐рд╕реА рднреА рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдШрдЯрдХреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ _much_ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рд╕рд╛рде рдЯреВрдЯрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реЛрддреА рд╣реИред

рдпрджрд┐ рдХреЛрдИ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ 1-рдмрд┐рдЯ рдЯрдХрд░рд╛рд╡ рдХреЛ рдЦреЛрдЬрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рддреЛ рдЙрд╕реЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╣реБрдд рд╣реА рд╡рд┐рд╢рд╛рд▓ рдЗрдирдкреБрдЯ рдФрд░ рдПрдХ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдорд╛рддреНрд░рд╛ рдореЗрдВ рд╢рдХреНрддрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдлрд┐рд░ рднреА, рдПрдХ рд╕рдорд╛рдзрд╛рди рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ: рдирд┐рдпреЛрдЬрд┐рдд рдЕрдВрдХрдЧрдгрд┐рдд рдХреА рдкреНрд░рдХреГрддрд┐ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реБрдП, рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдпрджрд┐ рдПрдХ рдмрд┐рдЯ рд╕рдВрд╢реЛрдзрди рдХреЗ рд╕рд╛рде рдЯрдХрд░рд╛рд╡ рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реЛрдЧрд╛ред рдореЗрд░реА рдЕрдкрдиреА рд╢рд░реНрдд рд╣реИ рдХрд┐ рдЗрд╕рдореЗрдВ рдХрдо рд╕реЗ рдХрдо 2 рдмрд┐рдЯреНрд╕ рд▓рдЧрддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рднреА, рдЙрдиреНрд╣реЗрдВ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЗрдирдкреБрдЯ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рддрд╛рдХрд┐ рд╡рд╛рдВрдЫрд┐рдд рдЙрджреНрджреЗрд╢реНрдп рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдореМрдХрд╛ рдорд┐рд▓ рд╕рдХреЗ, рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рдВрд╢реЛрдзрди рдХреЛ рдЕрдм "рдпрд╛рджреГрдЪреНрдЫрд┐рдХ" рдирд╣реАрдВ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХреЗ рджрд╛рдпрд░реЗ рд╕реЗ рдмрд╛рд╣рд░ рдПрдХ рдЧреИрд░-рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд┐рдХ рд╣реИрд╢ред

рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрджреНрдзреГрдд рдкрд╛рда рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдпрд╣ рд╕рдм рдмрддрд╛рддрд╛ рд╣реИ: рд╡рд╛рд╕реНрддрд╡рд┐рдХ crc рдореЗрдВ рд╣реИрдорд┐рдВрдЧ рджреВрд░реА рдХреА рдЧрд╛рд░рдВрдЯреА рд╣реИред рдпрд╣ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдЕрддреАрдд рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рдЬрдм рд╕рд┐рдЧреНрдирд▓ рдмрд┐рдЯ рд╕реНрддрд░ рдкрд░ рд╕рдВрд╢реЛрдзрд┐рдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рд╣реЛрддреЗ рдереЗ, рдФрд░ рдЬрдм рдЪреЗрдХрд╕рдо рд╕реНрд╡рдпрдВ рдЫреЛрдЯрд╛ рдерд╛ (16 рдпрд╛ 32 рдмрд┐рдЯ)ред рдПрдХ 16-рдмрд┐рдЯ рд╣реИрд╢ рдПрд▓реНрдЧреЛрд░рд┐рдердо рдореЗрдВ рдмрд╣реБрдд рдХрдо рдмрд┐рдЯ рдлрд╝реНрд▓рд┐рдк рд╡рд╛рд▓реЗ рдЯрдХрд░рд╛рд╡ рдХреЛ рдпрд╛рдж рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдирдЧрдгреНрдп рдореМрдХрд╛ рд╣реЛрдЧрд╛, рдЬрд┐рд╕рд╕реЗ рдпрд╣ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдХрдо рдЙрдкрдпреБрдХреНрдд рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рд▓реЗрдХрд┐рди рдЕрдм рдЯреЗрдмрд▓ рдкрд░ 64-рдмрд┐рдЯ рдпрд╛ 128-рдмрд┐рдЯ рд╣реИрд╢ рдХреЗ рд╕рд╛рде, рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдпрд╣ рдЕрдм рдПрдХ рдЦрддрд░рдирд╛рдХ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИ, рдХреЗрд╡рд▓ рдЗрд╕рд▓рд┐рдП рдХрд┐ рдЯрдХрд░рд╛рд╡ рдХреА рд╕рдВрднрд╛рд╡рдирд╛, рдЗрд╕рд▓рд┐рдП рдЕрдирд┐рд░реНрдзрд╛рд░рд┐рдд рднреНрд░рд╖реНрдЯрд╛рдЪрд╛рд░, рдЕрдерд╛рд╣ рд░реВрдк рд╕реЗ рдХрдо рд╣реИред

рдХреБрдЫ рдмрд┐рдЯреНрд╕ рдмрд╣реБрдд рдЕрдиреБрдорд╛рдирд┐рдд рдпрд╛ рдЕрддреНрдпрдзрд┐рдХ рд╕рд╣рд╕рдВрдмрджреНрдз рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдЬрдм рдЙрдиреНрд╣реЗрдВ рд╣реИрд╢ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП рдирд┐рдХрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдлреИрд▓рд╛рд╡ рдмрд╣реБрдд рдЦрд░рд╛рдм рд╣реЛрддрд╛ рд╣реИред

рдпрд╣ рдмреБрд░рд╛ рдХреНрдпреЛрдВ рд╣реИ?

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

рдпрджрд┐ рдмрд┐рдЯреНрд╕ рдХрд┐рд╕реА рддрд░рд╣ рд╕рд╣рд╕рдВрдмрджреНрдз рд╣реИрдВ рддреЛ рдХреНрдпрд╛ рд╣рдо рдЗрд╕ рд╕рд╣рд╕рдВрдмрдВрдз рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрд╖рддрд┐рдЧреНрд░рд╕реНрдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕реБрдзрд╛рд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рдЕрд▓рдЧ рд╡рд┐рд╖рдп рд╣реИред
рдПрдХ рд╕реАрдЖрд░рд╕реА рдХреЗ рд╕рд╛рде рдХреНрд╖рддрд┐рдЧреНрд░рд╕реНрдд рдЗрдирдкреБрдЯ рдХреА рдорд░рдореНрдордд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдПрдХ рд╕реАрдЖрд░рд╕реА рдХреЗрд╡рд▓ рдПрдХ рддреНрд░реБрдЯрд┐ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрд╕реЗ рд╕реБрдзрд╛рд░ рдирд╣реАрдВ рд╕рдХрддрд╛ред

рд╕реЗрд▓реНрдл-рд░рд┐рдкреЗрдпрд░рд┐рдВрдЧ рдбреЗрдЯрд╛ рдПрдХ рд╡рд┐рд╖рдп рд╣реИ, рдФрд░ рд╡рд┐рднрд┐рдиреНрди (рдФрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХрдореНрдкреНрдпреВрдЯреЗрд╢рдирд▓ рд░реВрдк рд╕реЗ рд╢рд╛рдорд┐рд▓) рддрдХрдиреАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдХрдирд╡рд▓реНрд╢рдирд▓ рдХреЛрдбред рдпрд╣ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИред

рдпрджрд┐ рдХреЛрдИ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ 1-рдмрд┐рдЯ рдЯрдХрд░рд╛рд╡ рдХреЛ рдЦреЛрдЬрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рддреЛ рдЙрд╕реЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╣реБрдд рд╣реА рд╡рд┐рд╢рд╛рд▓ рдЗрдирдкреБрдЯ рдФрд░ рдПрдХ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдорд╛рддреНрд░рд╛ рдореЗрдВ рд╢рдХреНрддрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдлрд┐рд░ рднреА, рдПрдХ рд╕рдорд╛рдзрд╛рди рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ: рдирд┐рдпреЛрдЬрд┐рдд рдЕрдВрдХрдЧрдгрд┐рдд рдХреА рдкреНрд░рдХреГрддрд┐ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реБрдП, рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдпрджрд┐ рдПрдХ рдмрд┐рдЯ рд╕рдВрд╢реЛрдзрди рдХреЗ рд╕рд╛рде рдЯрдХрд░рд╛рд╡ рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реЛрдЧрд╛ред рдореЗрд░реА рдЕрдкрдиреА рд╢рд░реНрдд рд╣реИ рдХрд┐ рдЗрд╕рдореЗрдВ рдХрдо рд╕реЗ рдХрдо 2 рдмрд┐рдЯреНрд╕ рд▓рдЧрддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рднреА, рдЙрдиреНрд╣реЗрдВ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЗрдирдкреБрдЯ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рддрд╛рдХрд┐ рд╡рд╛рдВрдЫрд┐рдд рдЙрджреНрджреЗрд╢реНрдп рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдореМрдХрд╛ рдорд┐рд▓ рд╕рдХреЗ, рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рдВрд╢реЛрдзрди рдХреЛ рдЕрдм "рдпрд╛рджреГрдЪреНрдЫрд┐рдХ" рдирд╣реАрдВ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХреЗ рджрд╛рдпрд░реЗ рд╕реЗ рдмрд╛рд╣рд░ рдПрдХ рдЧреИрд░-рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд┐рдХ рд╣реИрд╢ред

261 XXH3 рдХреЗ 64-рдмрд┐рдЯ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдПрдХрд▓ рдмрд┐рдЯ рдЯрдХрд░рд╛рд╡ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдмреАрдЬ-рдирд┐рд░реНрднрд░ рд╣реИ рдФрд░ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдЗрдирдкреБрдЯ рдкрд░ рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ; рдЕрдзрд┐рдХ рдкреВрд░реНрдг рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдореЗрд░рд╛ рдкрд┐рдЫрд▓рд╛ рдХрдерди рдЗрдирдкреБрдЯ> 240 рдмрд╛рдЗрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдмрдбрд╝реЗ рдЖрдХрд╛рд░ рдХреЗ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рд▓реЗрдХрд┐рди рд╣рд╛рдВ, рдЖрдХрд╛рд░ рдХреА рд╕реАрдорд┐рдд рд╕реАрдорд╛ рдореЗрдВ рдЬрд╣рд╛рдВ рдЗрдирдкреБрдЯ рдХреЛ 64-рдмрд┐рдЯ secret рдореЗрдВ рд╕реЗ рдПрдХ рд╕реЗ рдореЗрд▓ рдЦрд╛рдирд╛ рд╣реИ, рдПрдХ рд╕рд┐рдВрдЧрд▓-рдмрд┐рдЯ рдЯрдХрд░рд╛рд╡ рд╕рдВрднрд╡ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рд╕реНрд╡реАрдХрд╛рд░реНрдп рд▓рдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рд╕рдЯреАрдХ рд╕реНрдерд╛рди рдкрд░ рдПрдХ рд╕рдЯреАрдХ 64-рдмрд┐рдЯ рдЗрдирдкреБрдЯ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдЯрдХреНрдХрд░ рдЕрднреА рднреА рдЗрд╕ 1 / 2^64 рдХреНрд╖реЗрддреНрд░ рдХреЗ рднреАрддрд░ рд╣реИ, рдпрд╣ рдорд╛рдирддреЗ рд╣реБрдП рдХрд┐ рдЗрдирдкреБрдЯ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╣реИ (рдЕрд░реНрдерд╛рдд рдЯрдХреНрдХрд░ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрдЬреАрдирд┐рдпрд░ рдирд╣реАрдВ)ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдорд┐рд▓рд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП secret рдХреЛ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ _secret_ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдПрдХ рдмрд╛рд╣рд░реА рд╣рдорд▓рд╛рд╡рд░ рдХреЛ рдЗрд╕реЗ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рддрд░реАрдХреЗ рд╕реЗ рдЬрдмрд░рджрд╕реНрддреА рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдХреНрдпрд╛ рдЖрдкрдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╣рдо рдХреЗрд╡рд▓ 1 рдмрд┐рдЯ рдбреЗрдЯрд╛ рдмрджрд▓рдХрд░ рдбрд┐рдХреЛрдбрд░ рдХреЛ рдмреЗрд╡рдХреВрдл рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ?

2 рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рд╛рдордЧреНрд░рд┐рдпреЛрдВ рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реИрд╢ рдорд╛рдиреЛрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП, рдЯрдХрд░рд╛рд╡ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣рдореЗрд╢рд╛ 1 / 2^64 (рдЕрдЪреНрдЫреА рдЧреБрдгрд╡рддреНрддрд╛ рд╡рд╛рд▓реЗ 64-рдмрд┐рдЯ рд╣реИрд╢ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рд▓рд┐рдП, рдЬреИрд╕реЗ xxh64 рдпрд╛ xxh3 ), рдЬреЛ рднреА рд╣реЛ рдЙрди 2 рд╕рд╛рдордЧреНрд░рд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рд╕рдВрд╢реЛрдзрдиреЛрдВ рдХреА рдорд╛рддреНрд░рд╛ред

рдЗрд╕рдХрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдорддрд▓рдм рд╣реИ рдХрд┐, рдХрдо рд╕реЗ рдХрдо рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдПрдХ рдмрд┐рдЯ рдХреЗ рдкрд░рд┐рд╡рд░реНрддрди рд╕реЗ рдЯрдХрд░рд╛рд╡ рдЙрддреНрдкрдиреНрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдЕрдм, рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдпрд╣ рдкреНрд░рд╛рдпрд┐рдХрддрд╛ 1 / 2^64 , рдЬреЛ рдХрд┐ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЕрд╕реАрдо рд╣реИред
рд▓реЛрдЧ рдЗрд╕ рд╡рд┐рд╖рдп рдХреЛ рд╕рдордЭрдиреЗ рдореЗрдВ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдЦрд░рд╛рдм рд╣реИрдВред рд╡реЗ рдХрднреА-рдХрднреА рдЗрд╕реЗ "рдЫреЛрдЯрд╛" рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рдЬреНрдпрд╛рджрд╛рддрд░ рд▓реЛрдЧреЛрдВ рдХреЗ рджрд┐рдорд╛рдЧ рдореЗрдВ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд░рд╛рд╢рд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреИрд╕реЗ ~ 10%ред

рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд╡рд┐рдЪрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЗрд╕ рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рджреЗрдЦрдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ:
collision probabilities

рдпрд╛рдиреА : 1 / 2 ^ 64 рд╕реАрдзреЗ рдХрд┐рд╕реА рдХреЗ рд╕рд┐рд░ рдкрд░ рдзреВрдордХреЗрддреБ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╕реЗ рдмрд╣реБрдд рдХрдо рд╣реИ, рдФрд░ рд░рд╛рд╖реНрдЯреНрд░реАрдп рд▓реЙрдЯрд░реА _3 рдмрд╛рд░ рд▓рдЧрд╛рддрд╛рд░ рдЬреАрддрдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрдо рд╣реИ (рдЬреЛ рдХрд┐ рд╕рдВрджрд┐рдЧреНрдз рд╣реЛрдЧрд╛)ред рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ "рд╢реВрдиреНрдп" рдХреЗ рдмрд╣реБрдд рдХрд░реАрдм рд╣реИред рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдмрдЧ рдХреЗ рдЕрдиреНрдп рд╕реНрд░реЛрддреЛрдВ рд╕реЗ рд╢реБрд░реВ рдХрд░рдХреЗ, рдХрд┐рд╕реА рднреА рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдШрдЯрдХреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ _much_ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рд╕рд╛рде рдЯреВрдЯрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реЛрддреА рд╣реИред

рдпрджрд┐ рдХреЛрдИ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ 1-рдмрд┐рдЯ рдЯрдХрд░рд╛рд╡ рдХреЛ рдЦреЛрдЬрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рддреЛ рдЙрд╕реЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╣реБрдд рд╣реА рд╡рд┐рд╢рд╛рд▓ рдЗрдирдкреБрдЯ рдФрд░ рдПрдХ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдорд╛рддреНрд░рд╛ рдореЗрдВ рд╢рдХреНрддрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдлрд┐рд░ рднреА, рдПрдХ рд╕рдорд╛рдзрд╛рди рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ: рдирд┐рдпреЛрдЬрд┐рдд рдЕрдВрдХрдЧрдгрд┐рдд рдХреА рдкреНрд░рдХреГрддрд┐ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реБрдП, рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдпрджрд┐ рдПрдХ рдмрд┐рдЯ рд╕рдВрд╢реЛрдзрди рдХреЗ рд╕рд╛рде рдЯрдХрд░рд╛рд╡ рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реЛрдЧрд╛ред рдореЗрд░реА рдЕрдкрдиреА рд╢рд░реНрдд рд╣реИ рдХрд┐ рдЗрд╕рдореЗрдВ рдХрдо рд╕реЗ рдХрдо 2 рдмрд┐рдЯреНрд╕ рд▓рдЧрддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рднреА, рдЙрдиреНрд╣реЗрдВ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЗрдирдкреБрдЯ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рддрд╛рдХрд┐ рд╡рд╛рдВрдЫрд┐рдд рдЙрджреНрджреЗрд╢реНрдп рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдореМрдХрд╛ рдорд┐рд▓ рд╕рдХреЗ, рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рдВрд╢реЛрдзрди рдХреЛ рдЕрдм "рдпрд╛рджреГрдЪреНрдЫрд┐рдХ" рдирд╣реАрдВ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХреЗ рджрд╛рдпрд░реЗ рд╕реЗ рдмрд╛рд╣рд░ рдПрдХ рдЧреИрд░-рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд┐рдХ рд╣реИрд╢ред

рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрджреНрдзреГрдд рдкрд╛рда рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдпрд╣ рд╕рдм рдмрддрд╛рддрд╛ рд╣реИ: рд╡рд╛рд╕реНрддрд╡рд┐рдХ crc рдореЗрдВ рд╣реИрдорд┐рдВрдЧ рджреВрд░реА рдХреА рдЧрд╛рд░рдВрдЯреА рд╣реИред рдпрд╣ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдЕрддреАрдд рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рдЬрдм рд╕рд┐рдЧреНрдирд▓ рдмрд┐рдЯ рд╕реНрддрд░ рдкрд░ рд╕рдВрд╢реЛрдзрд┐рдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рд╣реЛрддреЗ рдереЗ, рдФрд░ рдЬрдм рдЪреЗрдХрд╕рдо рд╕реНрд╡рдпрдВ рдЫреЛрдЯрд╛ рдерд╛ (16 рдпрд╛ 32 рдмрд┐рдЯ)ред рдПрдХ 16-рдмрд┐рдЯ рд╣реИрд╢ рдПрд▓реНрдЧреЛрд░рд┐рдердо рдореЗрдВ рдмрд╣реБрдд рдХрдо рдмрд┐рдЯ рдлрд╝реНрд▓рд┐рдк рд╡рд╛рд▓реЗ рдЯрдХрд░рд╛рд╡ рдХреЛ рдпрд╛рдж рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдирдЧрдгреНрдп рдореМрдХрд╛ рд╣реЛрдЧрд╛, рдЬрд┐рд╕рд╕реЗ рдпрд╣ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдХрдо рдЙрдкрдпреБрдХреНрдд рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рд▓реЗрдХрд┐рди рдЕрдм рдЯреЗрдмрд▓ рдкрд░ 64-рдмрд┐рдЯ рдпрд╛ 128-рдмрд┐рдЯ рд╣реИрд╢ рдХреЗ рд╕рд╛рде, рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдпрд╣ рдЕрдм рдПрдХ рдЦрддрд░рдирд╛рдХ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИ, рдХреЗрд╡рд▓ рдЗрд╕рд▓рд┐рдП рдХрд┐ рдЯрдХрд░рд╛рд╡ рдХреА рд╕рдВрднрд╛рд╡рдирд╛, рдЗрд╕рд▓рд┐рдП рдЕрдирд┐рд░реНрдзрд╛рд░рд┐рдд рднреНрд░рд╖реНрдЯрд╛рдЪрд╛рд░, рдЕрдерд╛рд╣ рд░реВрдк рд╕реЗ рдХрдо рд╣реИред

рдХреБрдЫ рдмрд┐рдЯреНрд╕ рдмрд╣реБрдд рдЕрдиреБрдорд╛рдирд┐рдд рдпрд╛ рдЕрддреНрдпрдзрд┐рдХ рд╕рд╣рд╕рдВрдмрджреНрдз рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдЬрдм рдЙрдиреНрд╣реЗрдВ рд╣реИрд╢ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП рдирд┐рдХрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдлреИрд▓рд╛рд╡ рдмрд╣реБрдд рдЦрд░рд╛рдм рд╣реЛрддрд╛ рд╣реИред

рдпрд╣ рдмреБрд░рд╛ рдХреНрдпреЛрдВ рд╣реИ?

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

рдпрджрд┐ рдмрд┐рдЯреНрд╕ рдХрд┐рд╕реА рддрд░рд╣ рд╕рд╣рд╕рдВрдмрджреНрдз рд╣реИрдВ рддреЛ рдХреНрдпрд╛ рд╣рдо рдЗрд╕ рд╕рд╣рд╕рдВрдмрдВрдз рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрд╖рддрд┐рдЧреНрд░рд╕реНрдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕реБрдзрд╛рд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рдЕрд▓рдЧ рд╡рд┐рд╖рдп рд╣реИред
рдПрдХ рд╕реАрдЖрд░рд╕реА рдХреЗ рд╕рд╛рде рдХреНрд╖рддрд┐рдЧреНрд░рд╕реНрдд рдЗрдирдкреБрдЯ рдХреА рдорд░рдореНрдордд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдПрдХ рд╕реАрдЖрд░рд╕реА рдХреЗрд╡рд▓ рдПрдХ рддреНрд░реБрдЯрд┐ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрд╕реЗ рд╕реБрдзрд╛рд░ рдирд╣реАрдВ рд╕рдХрддрд╛ред

рд╕реЗрд▓реНрдл-рд░рд┐рдкреЗрдпрд░рд┐рдВрдЧ рдбреЗрдЯрд╛ рдПрдХ рд╡рд┐рд╖рдп рд╣реИ, рдФрд░ рд╡рд┐рднрд┐рдиреНрди (рдФрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХрдореНрдкреНрдпреВрдЯреЗрд╢рдирд▓ рд░реВрдк рд╕реЗ рд╢рд╛рдорд┐рд▓) рддрдХрдиреАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдХрдирд╡рд▓реНрд╢рдирд▓ рдХреЛрдбред рдпрд╣ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИред

рдХреНрдпрд╛ рдЖрдк рдЗрди рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

  1. LZ4 рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдбреЗрдЯрд╛ рдмреНрд▓реЙрдХ рдХреЗ рд▓рд┐рдП рд╕рд╛рдордЧреНрд░реА рдЪреЗрдХрд╕рдо рд╣реИ, рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ 1 рдЬреАрдмреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ 10 ^ 6 рдкреИрдХреЗрдЯ рд╣реИрдВ
    рдЯрдХреНрдХрд░ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ 1/2^32 = 0.0000000002 рд╣реИ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЕрдЧрд░ рд╣рдо 10^10 (рдпрд╣ рд╡рд┐рд╢рд╛рд▓ рдЖрдХрд╛рд░) рдкреИрдХреЗрдЯ рднреЗрдЬрддреЗ рд╣реИрдВ рддреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ 2 рдЯрдХрд░рд╛рд╡ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ (рдХрдмреВрддрд░ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЗ рдЖрдзрд╛рд░ рдкрд░) рд▓реЗрдХрд┐рди рдЕрдЧрд░ рд╣рдо рдЗрд╕ рд░рд╛рд╢рд┐ рд╕реЗ рдХрдо рднреЗрдЬрддреЗ рд╣реИрдВ, рддреЛ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдЯрдХреНрдХрд░ рджреЗрдЦрдиреЗ рдореЗрдВ рдХрд╛рдлреА рдЧрд┐рд░рд╛рд╡рдЯ рдЖрдПрдЧреА рддрд╛рдХрд┐ рд╣рдо рд╕рднреА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХреЗрдВ, рдбрд┐рдХреЛрдбрд░ рдЪреЗрдХрд╕рдо рдХреА рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдкреИрдХреЗрдЯ рдЪреЗрдХрд╕рдо рд╕реЗ рдЗрд╕рдХреА рддреБрд▓рдирд╛ рдХрд░рддрд╛ рд╣реИ, рдХреНрдпрд╛ рдпрд╣ рд╕рд╣реА рд╣реИ?
  2. рд╕рд╛рдордЧреНрд░реА рдЪреЗрдХрд╕рдо рд╕рдВрдкреАрдбрд╝рд┐рдд рдлрд╝рд╛рдЗрд▓ рдкрд░ рдЪреЗрдХрд╕рдо рдХреА рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИ (рдпрд╣ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИ рдФрд░ рд╣рдо рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрд░рдо рд╕реЗ рдмрд╛рд╣рд░ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдпрд╛ рдЯрдХрд░рд╛рд╡ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рд╕реАрд╕реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЯрдХрд░рд╛рд╡ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ 1/2 ^ 32 рд╣реИ рдФрд░ рдлрд┐рд░ рдпрд╣ рд╣реЛрдЧрд╛ 1/2 ^ 64 рд╣реЛред)

рд╡рд░реНрдгрд┐рдд рдкрд░рд┐рджреГрд╢реНрдп рд╣реИ:

  • LZ4-рд╕рдВрдкреАрдбрд╝рд┐рдд рдбреЗрдЯрд╛ рджреВрд╖рд┐рдд рд╣реЛ рд░рд╣рд╛ рд╣реИ (рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдПрдХ рдмрд╣реБрдд рд╣реА рджреБрд░реНрд▓рдн рдШрдЯрдирд╛ рд╣реИ)
  • рд╣реИрд╢ рдЯрдХреНрдХрд░ рдХреЗ рдХрд╛рд░рдг рднреНрд░рд╖реНрдЯрд╛рдЪрд╛рд░ рдХрд╛ рдкрддрд╛ рдирд╣реАрдВ рдЪрд▓рд╛ред

LZ4 рдлреНрд░реЗрдо рдкреНрд░рд╛рд░реВрдк XXH32 , рдПрдХ 32-рдмрд┐рдЯ рд╣реИрд╢, рдПрдХ рд╕рд╛рдереА рдЪреЗрдХрд╕рдо рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
рдпрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдкреВрд░реНрдг рдлреНрд░реЗрдо рдХреА рд╕рд╛рдордЧреНрд░реА рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ, рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ рдлреНрд░реЗрдо рдХреА _uncompressed_ рд╕рд╛рдордЧреНрд░реА (рдбреАрдХрдВрдкреНрд░реЗрд╕рди рдХреЗ рдмрд╛рдж), рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди рдФрд░ рдбрд┐рдХреЛрдбрд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рджреЛрдиреЛрдВ рдХреЛ рдорд╛рдиреНрдп рдХрд░рддрд╛ рд╣реИред
рдпрд╣ рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ рдЗрд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдмреНрд▓реЙрдХ рдкрд░ рднреА рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдпрд╣ рдкреНрд░рддреНрдпреЗрдХ рдмреНрд▓реЙрдХ рдХреА _compressed_ рд╕рд╛рдордЧреНрд░реА рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИред
рджреЛрдиреЛрдВ рдХрд╛ рд╕рдВрдЪрдпрди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдкрддрд╛ рдирд╣реАрдВ рдЪрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рднреНрд░рд╖реНрдЯрд╛рдЪрд╛рд░ рдХреЛ ___all___ рд▓рд╛рдЧреВ рдЪреЗрдХрд╕рдо рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкрд╛рд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдпрд╣ рдорд╛рдирддреЗ рд╣реБрдП рдХрд┐ рдмреНрд▓реЙрдХ рдЪреЗрдХрд╕рдо рд╕рдХреНрд╖рдо рд╣реИ, рдФрд░ рдпрд╣ рдорд╛рдирддреЗ рд╣реБрдП рдХрд┐ рднреНрд░рд╖реНрдЯрд╛рдЪрд╛рд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдПрдХ рд╣реА рдмреНрд▓реЙрдХ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИ, рдмреНрд▓реЙрдХ рдФрд░ рдлреНрд░реЗрдо рдЪреЗрдХрд╕рдо рджреЛрдиреЛрдВ рдХреЛ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ 1 / 2^32 x 1 / 2^32 = 1 / 2^64 ред

рдЕрдм, рдпрджрд┐ рджреВрд╖рд┐рдд рдбреЗрдЯрд╛ рдХрдИ рдмреНрд▓реЙрдХреЛрдВ рдореЗрдВ рд░рд╣рддрд╛ рд╣реИ, рдпрд╛ рддреЛ рдХрдИ рднреНрд░рд╖реНрдЯрд╛рдЪрд╛рд░ рдХреА рдШрдЯрдирд╛рдУрдВ рдХреЗ рдХрд╛рд░рдг, рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рдмрдбрд╝рд╛ рджреВрд╖рд┐рдд рдЕрдиреБрднрд╛рдЧ рд▓рдЧрд╛рддрд╛рд░ рдмреНрд▓реЙрдХреЛрдВ рдХреЛ рдХрд╡рд░ рдХрд░рддрд╛ рд╣реИ, рддреЛ рднреНрд░рд╖реНрдЯрд╛рдЪрд╛рд░ рдХрд╛ рдкрддрд╛ рди рд▓рдЧрдирд╛ _рдФрд░ рднреА рдХрдард┐рди рд╣реИред рдЗрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдкреНрд░рддреНрдпреЗрдХ рдмреНрд▓реЙрдХ рдЪреЗрдХрд╕рдо рдХреЗ рд╕рд╛рде рдЯрдХрд░рд╛рд╡ рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рдорд╛рдирддреЗ рд╣реБрдП рдХрд┐ рднреНрд░рд╖реНрдЯрд╛рдЪрд╛рд░ 2 рдмреНрд▓реЙрдХреЛрдВ рдореЗрдВ рдлреИрд▓рд╛ рд╣реБрдЖ рд╣реИ, рдЗрд╕ рднреНрд░рд╖реНрдЯрд╛рдЪрд╛рд░ рдХреЗ рдЕрдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░рд╣рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ 1 / 2^32 x 1 / 2^32 x 1 / 2^32 = 1 / 2^96 ред рдЦрдЧреЛрд▓реАрдп рд░реВрдк рд╕реЗ рдЫреЛрдЯрд╛ред

рдЗрд╕ рддрдереНрдп рдХреА рдЧрд┐рдирддреА рдирд╣реАрдВ рдХрд░рдирд╛ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рджреВрд╖рд┐рдд рдмреНрд▓реЙрдХ рдХреЛ рдбреАрдХрдВрдкреНрд░реЗрд╕рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рджреНрд╡рд╛рд░рд╛ рдЕрдбрд┐рдХреЛрдбреЗрдмрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╣рдЪрд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдЙрд╕рдХреЗ рдКрдкрд░ рдЖрддрд╛ рд╣реИред

рддреЛ рд╣рд╛рдБ, рдмреНрд▓реЙрдХ рдФрд░ рдлреНрд░реЗрдо рдЪреЗрдХрд╕рдо рдХреЗ рд╕рдВрдпреЛрдЬрди рд╕реЗ рднреНрд░рд╖реНрдЯрд╛рдЪрд╛рд░ рдХреА рдШрдЯрдирд╛рдУрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдирд╛рдЯрдХреАрдп рд░реВрдк рд╕реЗ рдмрдврд╝ рдЬрд╛рддреА рд╣реИред

рд╡рд░реНрдгрд┐рдд рдкрд░рд┐рджреГрд╢реНрдп рд╣реИ:

* LZ4-compressed data being corrupted (which is already a pretty rare event by itself)

* Corruption remaining undetected due to hash collision.

LZ4 рдлреНрд░реЗрдо рдкреНрд░рд╛рд░реВрдк XXH32 , рдПрдХ 32-рдмрд┐рдЯ рд╣реИрд╢, рдПрдХ рд╕рд╛рдереА рдЪреЗрдХрд╕рдо рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
рдпрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдкреВрд░реНрдг рдлреНрд░реЗрдо рдХреА рд╕рд╛рдордЧреНрд░реА рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ, рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ рдлреНрд░реЗрдо рдХреА _uncompressed_ рд╕рд╛рдордЧреНрд░реА (рдбреАрдХрдВрдкреНрд░реЗрд╕рди рдХреЗ рдмрд╛рдж), рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди рдФрд░ рдбрд┐рдХреЛрдбрд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рджреЛрдиреЛрдВ рдХреЛ рдорд╛рдиреНрдп рдХрд░рддрд╛ рд╣реИред
рдпрд╣ рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ рдЗрд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдмреНрд▓реЙрдХ рдкрд░ рднреА рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдпрд╣ рдкреНрд░рддреНрдпреЗрдХ рдмреНрд▓реЙрдХ рдХреА _compressed_ рд╕рд╛рдордЧреНрд░реА рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИред
рджреЛрдиреЛрдВ рдХрд╛ рд╕рдВрдЪрдпрди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдкрддрд╛ рдирд╣реАрдВ рдЪрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рднреНрд░рд╖реНрдЯрд╛рдЪрд╛рд░ рдХреЛ _ рд╕рднреА _ рд▓рд╛рдЧреВ рдЪреЗрдХрд╕рдореЛрдВ рдХреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкрд╛рд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдпрд╣ рдорд╛рдирддреЗ рд╣реБрдП рдХрд┐ рдмреНрд▓реЙрдХ рдЪреЗрдХрд╕рдо рд╕рдХреНрд╖рдо рд╣реИ, рдФрд░ рдпрд╣ рдорд╛рдирддреЗ рд╣реБрдП рдХрд┐ рднреНрд░рд╖реНрдЯрд╛рдЪрд╛рд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдПрдХ рд╣реА рдмреНрд▓реЙрдХ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИ, рдмреНрд▓реЙрдХ рдФрд░ рдлреНрд░реЗрдо рдЪреЗрдХрд╕рдо рджреЛрдиреЛрдВ рдХреЛ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ 1 / 2^32 x 1 / 2^32 = 1 / 2^64 ред

рдЕрдм, рдпрджрд┐ рджреВрд╖рд┐рдд рдбреЗрдЯрд╛ рдХрдИ рдмреНрд▓реЙрдХреЛрдВ рдореЗрдВ рд░рд╣рддрд╛ рд╣реИ, рдпрд╛ рддреЛ рдХрдИ рднреНрд░рд╖реНрдЯрд╛рдЪрд╛рд░ рдХреА рдШрдЯрдирд╛рдУрдВ рдХреЗ рдХрд╛рд░рдг, рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рдмрдбрд╝рд╛ рджреВрд╖рд┐рдд рдЕрдиреБрднрд╛рдЧ рд▓рдЧрд╛рддрд╛рд░ рдмреНрд▓реЙрдХреЛрдВ рдХреЛ рдХрд╡рд░ рдХрд░рддрд╛ рд╣реИ, рддреЛ рднреНрд░рд╖реНрдЯрд╛рдЪрд╛рд░ рдХрд╛ рдкрддрд╛ рди рд▓рдЧрдирд╛ _рдФрд░ рднреА рдХрдард┐рди рд╣реИред рдЗрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдкреНрд░рддреНрдпреЗрдХ рдмреНрд▓реЙрдХ рдЪреЗрдХрд╕рдо рдХреЗ рд╕рд╛рде рдЯрдХрд░рд╛рд╡ рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рдорд╛рдирддреЗ рд╣реБрдП рдХрд┐ рднреНрд░рд╖реНрдЯрд╛рдЪрд╛рд░ 2 рдмреНрд▓реЙрдХреЛрдВ рдореЗрдВ рдлреИрд▓рд╛ рд╣реБрдЖ рд╣реИ, рдЗрд╕ рднреНрд░рд╖реНрдЯрд╛рдЪрд╛рд░ рдХреЗ рдЕрдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░рд╣рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ 1 / 2^32 x 1 / 2^32 x 1 / 2^32 = 1 / 2^96 ред рдЦрдЧреЛрд▓реАрдп рд░реВрдк рд╕реЗ рдЫреЛрдЯрд╛ред

рдЗрд╕ рддрдереНрдп рдХреА рдЧрд┐рдирддреА рдирд╣реАрдВ рдХрд░рдирд╛ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рджреВрд╖рд┐рдд рдмреНрд▓реЙрдХ рдХреЛ рдбреАрдХрдВрдкреНрд░реЗрд╕рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рджреНрд╡рд╛рд░рд╛ рдЕрдбрд┐рдХреЛрдбреЗрдмрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╣рдЪрд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдЙрд╕рдХреЗ рдКрдкрд░ рдЖрддрд╛ рд╣реИред

рддреЛ рд╣рд╛рдБ, рдмреНрд▓реЙрдХ рдФрд░ рдлреНрд░реЗрдо рдЪреЗрдХрд╕рдо рдХреЗ рд╕рдВрдпреЛрдЬрди рд╕реЗ рднреНрд░рд╖реНрдЯрд╛рдЪрд╛рд░ рдХреА рдШрдЯрдирд╛рдУрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдирд╛рдЯрдХреАрдп рд░реВрдк рд╕реЗ рдмрдврд╝ рдЬрд╛рддреА рд╣реИред

рдХреНрдпрд╛ рдордХреНрдЦреА рдкрд░ LZ4 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ? рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ, рдЬреИрд╕реЗ рд╣реА рдЖрдкрдХреЛ рдЗрд╕рдореЗрдВ рд╕реЗ рдХреБрдЫ рдорд┐рд▓ рдЬрд╛рдП, рдбреЗрдЯрд╛ рдХреЛ рдХрдВрдкреНрд░реЗрд╕/рдбрд┐рдХрдВрдкреНрд░реЗрд╕ рдХрд░реЗрдВред рдпрд╣ рдХрд┐рд╕реА рддрд░рд╣ рдкрд╛рдЗрдкрд▓рд╛рдЗрдирд┐рдВрдЧ рд╣реИред
xxHash рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?

рдХреНрдпрд╛ рдордХреНрдЦреА рдкрд░ LZ4 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ? рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ, рдЬреИрд╕реЗ рд╣реА рдЖрдкрдХреЛ рдЗрд╕рдореЗрдВ рд╕реЗ рдХреБрдЫ рдорд┐рд▓ рдЬрд╛рдП, рдбреЗрдЯрд╛ рдХреЛ рдХрдВрдкреНрд░реЗрд╕/рдбрд┐рдХрдВрдкреНрд░реЗрд╕ рдХрд░реЗрдВред

рдпрд╣ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдореЛрдб рд╣реИред рдЬреА рд╣рд╛рдВ рд╕рдВрднрд╡ рд╣реИред

xxHash рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?

рдлрд╝реНрд░реЗрдо рдЪреЗрдХрд╕рдо рд▓рдЧрд╛рддрд╛рд░ рдЕрджреНрдпрддрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдлрд╝реНрд░реЗрдо рдХреЗ рдЕрдВрдд рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдлрд╝реНрд░реЗрдо рдИрд╡реЗрдВрдЯ рдХреЗ рдЕрдВрдд рддрдХ рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЪреЗрдХрд╕рдо рдкрд░рд┐рдгрд╛рдо рдирд╣реАрдВ рд╣реИ (рдПрдХ рд╕реНрдЯреНрд░реАрдо рдореЗрдВ рдХрдИ рд╕рдВрд▓рдЧреНрди рдлрд╝реНрд░реЗрдо рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдо рддреМрд░ рдкрд░ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ)ред

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

рджреЛрдиреЛрдВ рдЪреЗрдХрд╕рдо XXH32 рдХрд╛рд░реНрдпрд░рдд рд╣реИрдВред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕