BlessRNG рдпрд╛ рдирд┐рд╖реНрдкрдХреНрд╖рддрд╛ рдХреЗ рд▓рд┐рдП RNG рдХреА рдЬрд╛рдБрдЪ рдХрд░рдирд╛

BlessRNG рдпрд╛ рдирд┐рд╖реНрдкрдХреНрд╖рддрд╛ рдХреЗ рд▓рд┐рдП RNG рдХреА рдЬрд╛рдБрдЪ рдХрд░рдирд╛

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

рддрдм рд╡реЗ рд╡рд┐рд╡рд░рдг рдореЗрдВ рдирд╣реАрдВ рдЧрдП - рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рдерд╛ рдХрд┐ System.Random рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдиреЗ рд╕рднреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдареАрдХ рдХрд░ рджрд┐рдпрд╛ред рдЕрдм рд╣рдордиреЗ рдЗрд╕ рдкрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЧреМрд░ рдХрд░рдиреЗ рдФрд░ рдереЛрдбрд╝рд╛ рд╢реЛрдз рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛: рдХреИрд╕реЗ "рдкрдХреНрд╖рдкрд╛рддрдкреВрд░реНрдг" рдпрд╛ рдкреВрд░реНрд╡рд╛рдиреБрдорд╛рдирд┐рдд рдЖрд░рдПрдирдЬреА рд╣реИрдВ, рдФрд░ рдХрд┐рд╕реЗ рдЪреБрдирдирд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВрдиреЗ рдЙрдирдХреА "рдИрдорд╛рдирджрд╛рд░реА" рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдкрд░рд╕реНрдкрд░ рд╡рд┐рд░реЛрдзреА рд░рд╛рдп рд╕реБрдиреА рд╣реИ - рдЖрдЗрдП рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ рдХрд┐ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рддреБрд▓рдирд╛ рдШреЛрд╖рд┐рдд рдкрд░рд┐рдгрд╛рдореЛрдВ рд╕реЗ рдХреИрд╕реЗ рдХреА рдЬрд╛рддреА рд╣реИред

рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╢реИрдХреНрд╖рд┐рдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рдпрд╛ рдЖрд░рдПрдирдЬреА рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрд░рдПрдирдЬреА рд╣реИ

рдпрджрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдЬрдирд░реЗрдЯрд░ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ, рддреЛ рдЖрдк рддреБрд░рдВрдд "рдкрд░реАрдХреНрд╖рдг" рдЕрдиреБрднрд╛рдЧ рдкрд░ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред

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

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

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

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

рдкреАрдЖрд░рдПрдирдЬреА рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ, рд▓реЗрдХрд┐рди рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рднреА рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реЛрдЧрд╛:

  1. рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЖрд░рдВрднреАрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛.

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

  2. рдЕрдиреБрдХреНрд░рдо рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдпреЛрдЧреНрдпрддрд╛.

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

рдЖрдкрдХреЛ рдкреАрдЖрд░рдПрдирдЬреА рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рдмрддрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рдВрднрд╛рд╡реНрдпрддрд╛ рд╡рд┐рддрд░рдг рдХреЛ рднреА рдЬрд╛рдирдирд╛ рд╣реЛрдЧрд╛ - рдпрд╣ рдХреМрди рд╕реА рд╕рдВрдЦреНрдпрд╛рдПрдВ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛ рдФрд░ рдХрд┐рд╕ рд╕рдВрднрд╛рд╡реНрдпрддрд╛ рдХреЗ рд╕рд╛рдеред рдЕрдХреНрд╕рд░ рдпрд╣ рдпрд╛ рддреЛ рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рддрд░рдг рд╣реЛрддрд╛ рд╣реИ рдпрд╛ рд╕рдорд╛рди рд╡рд┐рддрд░рдг рд╣реЛрддрд╛ рд╣реИред
BlessRNG рдпрд╛ рдирд┐рд╖реНрдкрдХреНрд╖рддрд╛ рдХреЗ рд▓рд┐рдП RNG рдХреА рдЬрд╛рдБрдЪ рдХрд░рдирд╛
рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рддрд░рдг (рдмрд╛рдПрдВ) рдФрд░ рд╕рдорд╛рди рд╡рд┐рддрд░рдг (рджрд╛рдПрдВ)

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

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

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

рдПрдХ рдФрд░ рдЙрджрд╛рд╣рд░рдг, рдХреЗрд╡рд▓ рдЗрд╕ рдмрд╛рд░ рдПрдХ рд╡рд┐рдорд╛рди рдкрд░ - рдПрдХ рд▓рдХреНрд╖реНрдп рдкрд░ рд╢реВрдЯрд┐рдВрдЧред рд╢реВрдЯрд░ рдПрдХ рдЖрд░рдПрдирдЬреА рд╣реЛрдЧрд╛ рдЬреЛ рдЧреНрд░рд╛рдлрд╝ рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕рдВрдЦреНрдпрд╛рдУрдВ (x, y) рдХреА рдПрдХ рдЬреЛрдбрд╝реА рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред
BlessRNG рдпрд╛ рдирд┐рд╖реНрдкрдХреНрд╖рддрд╛ рдХреЗ рд▓рд┐рдП RNG рдХреА рдЬрд╛рдБрдЪ рдХрд░рдирд╛
рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ рдмрд╛рдИрдВ рдУрд░ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЬреАрд╡рди рдХреЗ рдХрд░реАрдм рд╣реИ - рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рддрд░рдг рд╡рд╛рд▓рд╛ рдЖрд░рдПрдирдЬреА рд╣реИред рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдкрдХреЛ рдЕрдВрдзреЗрд░реЗ рдЖрдХрд╛рд╢ рдореЗрдВ рддрд╛рд░реЗ рдмрд┐рдЦреЗрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рд╕рдорд╛рди рд╡рд┐рддрд░рдг рдХреЗ рд╕рд╛рде рдЖрд░рдПрдирдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╕рд╣реА рд╡рд┐рдХрд▓реНрдк рдмреЗрд╣рддрд░ рдЕрдиреБрдХреВрд▓ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╣рд╛рде рдореЗрдВ рд▓рд┐рдП рдЧрдП рдХрд╛рд░реНрдп рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЬрдирд░реЗрдЯрд░ рдЪреБрдиреЗрдВред

рдЕрдм рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ рдкреАрдПрдирдЬреА рдЕрдиреБрдХреНрд░рдо рдХреА рдПрдиреНрдЯреНрд░рд╛рдкреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдХреНрд░рдо рд╣реИ рдЬреЛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ:

89, 93, 33, 32, 82, 21, 4, 42, 11, 8, 60, 95, 53, 30, 42, 19, 34, 35, 62, 23, 44, 38, 74, 36, 52, 18, 58, 79, 65, 45, 99, 90, 82, 20, 41, 13, 88, 76, 82, 24, 5, 54, 72, 19, 80, 2, 74, 36, 71, 9, ...

рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ рдпреЗ рд╕рдВрдЦреНрдпрд╛рдПрдБ рдХрд┐рддрдиреА рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╣реИрдВ? рдЖрдЗрдП рд╡рд┐рддрд░рдг рдХреА рдЬрд╛рдБрдЪ рдХрд░рдХреЗ рд╢реБрд░реБрдЖрдд рдХрд░реЗрдВред
BlessRNG рдпрд╛ рдирд┐рд╖реНрдкрдХреНрд╖рддрд╛ рдХреЗ рд▓рд┐рдП RNG рдХреА рдЬрд╛рдБрдЪ рдХрд░рдирд╛
рдпрд╣ рдПрдХрд░реВрдкрддрд╛ рдХреЗ рдХрд░реАрдм рджрд┐рдЦрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк рджреЛ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рдЕрдиреБрдХреНрд░рдо рдХреЛ рдкрдврд╝рддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╡рд┐рдорд╛рди рдкрд░ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдпрд╣ рдорд┐рд▓рддрд╛ рд╣реИ:
BlessRNG рдпрд╛ рдирд┐рд╖реНрдкрдХреНрд╖рддрд╛ рдХреЗ рд▓рд┐рдП RNG рдХреА рдЬрд╛рдБрдЪ рдХрд░рдирд╛
рдкреИрдЯрд░реНрди рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд▓рдЧрддреЗ рд╣реИрдВред рдФрд░ рдЪреВрдБрдХрд┐ рдЕрдиреБрдХреНрд░рдо рдореЗрдВ рдбреЗрдЯрд╛ рдХреЛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рддрд░реАрдХреЗ рд╕реЗ рдХреНрд░рдордмрджреНрдз рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдЕрд░реНрдерд╛рдд рдЗрд╕рдореЗрдВ рдХрдо рдПрдиреНрдЯреНрд░рд╛рдкреА рд╣реИ), рдпрд╣ рдЙрд╕реА "рдкреВрд░реНрд╡рд╛рдЧреНрд░рд╣" рдХреЛ рдЬрдиреНрдо рджреЗ рд╕рдХрддрд╛ рд╣реИред рдХрдо рд╕реЗ рдХрдо, рдРрд╕рд╛ рдкреАрдЖрд░рдПрдирдЬреА рдХрд┐рд╕реА рд╕рдорддрд▓ рдкрд░ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИред

рдПрдХ рдФрд░ рдХреНрд░рдо:

42, 72, 17, 0, 30, 0, 15, 9, 47, 19, 35, 86, 40, 54, 97, 42, 69, 19, 20, 88, 4, 3, 67, 27, 42, 56, 17, 14, 20, 40, 80, 97, 1, 31, 69, 13, 88, 89, 76, 9, 4, 85, 17, 88, 70, 10, 42, 98, 96, 53, ...

рдпрд╣рд╛рдБ рд╣рд╡рд╛рдИ рдЬрд╣рд╛рдЬрд╝ рдкрд░ рднреА рд╕рдм рдХреБрдЫ рдареАрдХ рд▓рдЧ рд░рд╣рд╛ рд╣реИ:
BlessRNG рдпрд╛ рдирд┐рд╖реНрдкрдХреНрд╖рддрд╛ рдХреЗ рд▓рд┐рдП RNG рдХреА рдЬрд╛рдБрдЪ рдХрд░рдирд╛
рдЖрдЗрдП рд╡реЙрд▓реНрдпреВрдо рдореЗрдВ рджреЗрдЦреЗрдВ (рдПрдХ рд╕рдордп рдореЗрдВ рддреАрди рд╕рдВрдЦреНрдпрд╛рдПрдВ рдкрдврд╝реЗрдВ):
BlessRNG рдпрд╛ рдирд┐рд╖реНрдкрдХреНрд╖рддрд╛ рдХреЗ рд▓рд┐рдП RNG рдХреА рдЬрд╛рдБрдЪ рдХрд░рдирд╛
рдФрд░ рдлрд┐рд░ рд╕реЗ рдкреИрдЯрд░реНрди. рдЕрдм рдЪрд╛рд░ рдЖрдпрд╛рдореЛрдВ рдореЗрдВ рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдкреИрдЯрд░реНрди рдЗрд╕ рдЖрдпрд╛рдо рдкрд░ рдФрд░ рдмрдбрд╝реЗ рдЖрдпрд╛рдореЛрдВ рдкрд░ рдореМрдЬреВрдж рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

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

рдкрд░реАрдХреНрд╖рдг

рдпрджрд┐ рд╣рдо рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдХреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ, рддреЛ рдЙрд╕рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдХрд╛рдо рдХрд░реЗрдВ? рдпрджрд┐ рдЖрдк рдирд╣реАрдВ рдЬрд╛рдирддреЗ рдХрд┐ рдХреМрди рд╕реА рдЯреНрд░реИрдлрд┐рдХ рд▓рд╛рдЗрдЯ рдЗрд╕рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ рддреЛ рдХреНрдпрд╛ рд╕рдбрд╝рдХ рдкрд╛рд░ рдХрд░рдирд╛ рдЙрдЪрд┐рдд рд╣реИ? рдкрд░рд┐рдгрд╛рдо рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ.

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

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

рд╕рдорд╛рдзрд╛рди рд╕рд░рд▓ рдФрд░ рдкреНрд░рднрд╛рд╡реА рдерд╛ - рдЖрдБрдХрдбрд╝реЗ рдПрдХрддреНрд░ рдХрд░реЗрдВ, рд╡рд╕реНрддреБрдирд┐рд╖реНрда рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдФрд░ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рджреЗрдЦреЗрдВред

рдЕрдзреНрдпрдпрди рдХрд╛ рд╡рд┐рд╖рдп

рдпреВрдирд┐рдЯреА рдореЗрдВ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛рдПрдБ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рдХрдИ рддрд░реАрдХреЗ рд╣реИрдВ - рд╣рдордиреЗ рдкрд╛рдБрдЪ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ред

  1. рд╕рд┐рд╕реНрдЯрдо.рд░реИрдВрдбрдо.рдиреЗрдХреНрд╕реНрдЯ(). рдорд╛рдиреЛрдВ рдХреА рджреА рдЧрдИ рд╢реНрд░реЗрдгреА рдореЗрдВ рдкреВрд░реНрдгрд╛рдВрдХ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред
  2. рд╕рд┐рд╕реНрдЯрдо.рд░реИрдВрдбрдо.рдиреЗрдХреНрд╕реНрдЯрдбрдмрд▓()ред [0; рд╕реЗ рд╕реАрдорд╛ рдореЗрдВ рджреЛрд╣рд░реА рдкрд░рд┐рд╢реБрджреНрдзрддрд╛ рд╕рдВрдЦреНрдпрд╛рдПрдБ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ; 1).
  3. UnityEngine.Random.Range(). рдорд╛рдиреЛрдВ рдХреА рджреА рдЧрдИ рд╢реНрд░реЗрдгреА рдореЗрдВ рдПрдХрд▓ рд╕рдЯреАрдХ рд╕рдВрдЦреНрдпрд╛рдПрдВ (рдлрд╝реНрд▓реЛрдЯреНрд╕) рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред
  4. UnityEngine.Random.value. [0 рд╕реЗ рд╕реАрдорд╛ рдореЗрдВ рдПрдХрд▓ рдкрд░рд┐рд╢реБрджреНрдзрддрд╛ рд╕рдВрдЦреНрдпрд╛рдПрдВ (рдлреНрд▓реЛрдЯреНрд╕) рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ; 1).
  5. Unity.Mathematics.Random.NextFloat(). рдирдИ Unity.Mathematics рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ред рдорд╛рдиреЛрдВ рдХреА рджреА рдЧрдИ рд╢реНрд░реЗрдгреА рдореЗрдВ рдПрдХрд▓ рд╕рдЯреАрдХ рд╕рдВрдЦреНрдпрд╛рдПрдВ (рдлрд╝реНрд▓реЛрдЯреНрд╕) рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред

рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдореЗрдВ рд▓рдЧрднрдЧ рд╣рд░ рдЬрдЧрд╣ рдПрдХ рд╕рдорд╛рди рд╡рд┐рддрд░рдг рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, UnityEngine.Random.value рдХреЗ рдЕрдкрд╡рд╛рдж рдХреЗ рд╕рд╛рде (рдЬрд╣рд╛рдВ рд╡рд┐рддрд░рдг рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди UnityEngine.Random.Range() рдХреЗ рдЕрдиреБрд░реВрдк рд╡рд░реНрджреА рдХреА рднреА рдЙрдореНрдореАрдж рдереА) рдФрд░ Unity.Mathematics.Random .NextFloat() (рдЬрд╣рд╛рдВ рдЖрдзрд╛рд░ xorshift рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдлрд┐рд░ рд╕реЗ рдЖрдкрдХреЛ рдПрдХ рд╕рдорд╛рди рд╡рд┐рддрд░рдг рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ)ред

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдЕрдкреЗрдХреНрд╖рд┐рдд рдкрд░рд┐рдгрд╛рдо рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд▓рд┐рдП рдЧрдП рдереЗред

рддрдХрдиреАрдХ

рд╣рдордиреЗ рдПрдХ рдЫреЛрдЯрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд┐рдЦрд╛, рдЬрд┐рд╕рдиреЗ рдкреНрд░рд╕реНрддреБрдд рддрд░реАрдХреЛрдВ рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рдЕрдиреБрдХреНрд░рдо рддреИрдпрд╛рд░ рдХрд┐рдП рдФрд░ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдЖрдЧреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рд╕рд╣реЗрдЬрд╛ред

рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрдХреНрд░рдо рдХреА рд▓рдВрдмрд╛рдИ 100 рд╕рдВрдЦреНрдпрд╛ рд╣реИред
рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХрд╛ рдкрд░рд┐рд╕рд░ [0, 100) рд╣реИред

рдбреЗрдЯрд╛ рдХрдИ рд▓рдХреНрд╖реНрдп рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рд╕реЗ рдПрдХрддреНрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:

  • Windows
    - рдпреВрдирд┐рдЯреА v2018.3.14f1, рд╕рдВрдкрд╛рджрдХ рдореЛрдб, рдореЛрдиреЛ, .NET рдорд╛рдирдХ 2.0
  • macOS
    - рдпреВрдирд┐рдЯреА v2018.3.14f1, рд╕рдВрдкрд╛рджрдХ рдореЛрдб, рдореЛрдиреЛ, .NET рдорд╛рдирдХ 2.0
    - рдпреВрдирд┐рдЯреА v5.6.4p4, рд╕рдВрдкрд╛рджрдХ рдореЛрдб, рдореЛрдиреЛ, .NET рдорд╛рдирдХ 2.0
  • Android
    - рдпреВрдирд┐рдЯреА v2018.3.14f1, рдкреНрд░рддрд┐ рдбрд┐рд╡рд╛рдЗрд╕ рдмрд┐рд▓реНрдб, рдореЛрдиреЛ, .NET рдорд╛рдирдХ 2.0
  • iOS
    - рдпреВрдирд┐рдЯреА v2018.3.14f1, рдмрд┐рд▓реНрдб рдкреНрд░рддрд┐ рдбрд┐рд╡рд╛рдЗрд╕, il2cpp, .NET рдорд╛рдирдХ 2.0

рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди

рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛рдПрдБ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╣реИрдВред рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рдЕрд▓рдЧ рд░реИрдкрд░ рд╡рд░реНрдЧ рд▓рд┐рдЦреЗрдВрдЧреЗ, рдЬреЛ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП:

  1. рдорд╛рдиреЛрдВ рдХреА рд╕реАрдорд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ [рдиреНрдпреВрдирддрдо/рдЕрдзрд┐рдХрддрдо)ред рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛.
  2. рдПрдордПрдл рд▓реМрдЯрд╛рдиреЗ рдХреА рд╡рд┐рдзрд┐. рдЖрдЗрдП рдкреНрд░рдХрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдлрд╝реНрд▓реЛрдЯ рдЪреБрдиреЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рд╣реИред
  3. рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрдирд░реЗрд╢рди рд╡рд┐рдзрд┐ рдХрд╛ рдирд╛рдо. рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП, рд╣рдо рдорд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд░реНрдЧ рдХрд╛ рдкреВрд░рд╛ рдирд╛рдо + рдПрдордПрдл рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╡рд┐рдзрд┐ рдХрд╛ рдирд╛рдо рд▓реМрдЯрд╛рдПрдВрдЧреЗред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдЗрдП рдПрдХ рдЕрдореВрд░реНрдд рдШреЛрд╖рд┐рдд рдХрд░реЗрдВ рдЬрд┐рд╕реЗ IRandomGenerator рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛:

namespace RandomDistribution
{
    public interface IRandomGenerator
    {
        string Name { get; }

        float Generate();
    }
}

System.Random.Next() рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди

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

using System;

namespace RandomDistribution
{
    public class SystemIntegerRandomGenerator : IRandomGenerator
    {
        private const int DefaultFactor = 100000;
        
        private readonly Random _generator = new Random();
        private readonly int _min;
        private readonly int _max;
        private readonly int _factor;


        public string Name => "System.Random.Next()";


        public SystemIntegerRandomGenerator(float min, float max, int factor = DefaultFactor)
        {
            _min = (int)min * factor;
            _max = (int)max * factor;
            _factor = factor;
        }


        public float Generate() => (float)_generator.Next(_min, _max) / _factor;
    }
}

System.Random.NextDouble() рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди

рдпрд╣рд╛рдВ рдорд╛рдиреЛрдВ рдХреА рдирд┐рд╢реНрдЪрд┐рдд рд╕реАрдорд╛ [0; 1). рдЗрд╕реЗ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдПрдХ рдкрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рд╕рд░рд▓ рдЕрдВрдХрдЧрдгрд┐рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ: рдПрдХреНрд╕ * (рдЕрдзрд┐рдХрддрдо - рдиреНрдпреВрдирддрдо) + рдорд┐рдирдЯред

using System;

namespace RandomDistribution
{
    public class SystemDoubleRandomGenerator : IRandomGenerator
    {
        private readonly Random _generator = new Random();
        private readonly double _factor;
        private readonly float _min;


        public string Name => "System.Random.NextDouble()";


        public SystemDoubleRandomGenerator(float min, float max)
        {
            _factor = max - min;
            _min = min;
        }


        public float Generate() => (float)(_generator.NextDouble() * _factor) + _min;
    }
}

UnityEngine.Random.Range() рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди

UnityEngine.Random рд╕реНрдереИрддрд┐рдХ рд╡рд░реНрдЧ рдХреА рдпрд╣ рд╡рд┐рдзрд┐ рдЖрдкрдХреЛ рдорд╛рдиреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдФрд░ рдПрдХ рдлреНрд▓реЛрдЯ рдкреНрд░рдХрд╛рд░ рд▓реМрдЯрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред рдЖрдкрдХреЛ рдХреЛрдИ рдЕрддрд┐рд░рд┐рдХреНрдд рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ.

using UnityEngine;

namespace RandomDistribution
{
    public class UnityRandomRangeGenerator : IRandomGenerator
    {
        private readonly float _min;
        private readonly float _max;


        public string Name => "UnityEngine.Random.Range()";


        public UnityRandomRangeGenerator(float min, float max)
        {
            _min = min;
            _max = max;
        }


        public float Generate() => Random.Range(_min, _max);
    }
}

UnityEngine.Random.value рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди

рд╕реНрдерд┐рд░ рд╡рд░реНрдЧ UnityEngine.Random рдХреА рдорд╛рди рд╕рдВрдкрддреНрддрд┐ рдорд╛рдиреЛрдВ рдХреА рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕реАрдорд╛ рд╕реЗ рдПрдХ рдлреНрд▓реЛрдЯ рдкреНрд░рдХрд╛рд░ рд▓реМрдЯрд╛рддреА рд╣реИ [0; 1). рдЖрдЗрдП рдЗрд╕реЗ рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рд░реЗрдВрдЬ рдкрд░ рдЙрд╕реА рддрд░рд╣ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд░реЗрдВ рдЬреИрд╕реЗ System.Random.NextDouble() рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╕рдордпред

using UnityEngine;

namespace RandomDistribution
{
    public class UnityRandomValueGenerator : IRandomGenerator
    {
        private readonly float _factor;
        private readonly float _min;


        public string Name => "UnityEngine.Random.value";


        public UnityRandomValueGenerator(float min, float max)
        {
            _factor = max - min;
            _min = min;
        }


        public float Generate() => (float)(Random.value * _factor) + _min;
    }
}

Unity.Mathematics.Random.NextFloat() рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди

Unity.Mathematics.Random рдХреНрд▓рд╛рд╕ рдХреА NextFloat() рд╡рд┐рдзрд┐ рдлреНрд▓реЛрдЯ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдПрдХ рдлрд╝реНрд▓реЛрдЯрд┐рдВрдЧ рдкреЙрдЗрдВрдЯ рд▓реМрдЯрд╛рддреА рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдорд╛рдиреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред рдПрдХрдорд╛рддреНрд░ рдмрд╛рд░реАрдХрд┐рдпрд╛рдВ рдпрд╣ рд╣реИ рдХрд┐ Unity.Mathematics.Random рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдЙрджрд╛рд╣рд░рдг рдХреЛ рдХреБрдЫ рдмреАрдЬ рдХреЗ рд╕рд╛рде рдкреНрд░рд╛рд░рдВрдн рдХрд░рдирд╛ рд╣реЛрдЧрд╛ - рдЗрд╕ рддрд░рд╣ рд╣рдо рджреЛрд╣рд░рд╛рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЕрдиреБрдХреНрд░рдо рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рд╕реЗ рдмрдЪреЗрдВрдЧреЗред

using Unity.Mathematics;

namespace RandomDistribution
{
    public class UnityMathematicsRandomValueGenerator : IRandomGenerator
    {
        private Random _generator;
        private readonly float _min;
        private readonly float _max;


        public string Name => "Unity.Mathematics.Random.NextFloat()";


        public UnityMathematicsRandomValueGenerator(float min, float max)
        {
            _min = min;
            _max = max;
            _generator = new Random();
            _generator.InitState(unchecked((uint)System.DateTime.Now.Ticks));
        }


        public float Generate() => _generator.NextFloat(_min, _max);
    }
}

рдореЗрдирдХрдВрдЯреНрд░реЛрд▓рд░ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди

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

рдЖрдЗрдП рдбреЗрдЯрд╛рд╕реЗрдЯ рдХрд╛ рдЖрдХрд╛рд░ рдФрд░ рдПрдордПрдл рдорд╛рдиреЛрдВ рдХреА рд╕реАрдорд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ, рдФрд░ рдПрдХ рд╡рд┐рдзрд┐ рднреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдЬреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЧрдП рдФрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдЬреЗрдирд░реЗрдЯрд░ рдХреА рдПрдХ рд╕рд░рдгреА рд▓реМрдЯрд╛рддреА рд╣реИред

namespace RandomDistribution
{
    public class MainController : MonoBehaviour
    {
        private const int DefaultDatasetSize = 100000;

        public float MinValue = 0f;
        public float MaxValue = 100f;

        ...

        private IRandomGenerator[] CreateRandomGenerators()
        {
            return new IRandomGenerator[]
            {
                new SystemIntegerRandomGenerator(MinValue, MaxValue),
                new SystemDoubleRandomGenerator(MinValue, MaxValue),
                new UnityRandomRangeGenerator(MinValue, MaxValue),
                new UnityRandomValueGenerator(MinValue, MaxValue),
                new UnityMathematicsRandomValueGenerator(MinValue, MaxValue)
            };
        }

        ...
    }
}

рдЕрдм рдПрдХ рдбреЗрдЯрд╛рд╕реЗрдЯ рдмрдирд╛рддреЗ рд╣реИрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдбреЗрдЯрд╛ рдЬреЗрдирд░реЗрд╢рди рдХреЛ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдЯреЗрдХреНрд╕реНрдЯ рд╕реНрдЯреНрд░реАрдо (рд╕реАрдПрд╕рд╡реА рдкреНрд░рд╛рд░реВрдк рдореЗрдВ) рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ред рдкреНрд░рддреНрдпреЗрдХ IRandomGenerator рдХреЗ рдорд╛рдиреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрд╕рдХрд╛ рдЕрдкрдирд╛ рдЕрд▓рдЧ рдХреЙрд▓рдо рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдореЗрдВ рдЬрдирд░реЗрдЯрд░ рдХрд╛ рдирд╛рдо рд╣реЛрддрд╛ рд╣реИред

namespace RandomDistribution
{
    public class MainController : MonoBehaviour
    {
        ...
		
        private void GenerateCsvDataSet(TextWriter writer, int dataSetSize, params IRandomGenerator[] generators)
        {
            const char separator = ',';
            int lastIdx = generators.Length - 1;

            // write header
            for (int j = 0; j <= lastIdx; j++)
            {
                writer.Write(generators[j].Name);
                if (j != lastIdx)
                    writer.Write(separator);
            }
            writer.WriteLine();

            // write data
            for (int i = 0; i <= dataSetSize; i++)
            {
                for (int j = 0; j <= lastIdx; j++)
                {
                    writer.Write(generators[j].Generate());
                    if (j != lastIdx)
                        writer.Write(separator);
                }

                if (i != dataSetSize)
                    writer.WriteLine();
            }
        }

        ...
    }
}

рдЬреЛ рдХреБрдЫ рдмрдЪрд╛ рд╣реИ рд╡рд╣ рд╣реИ GenerateCsvDataSet рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдФрд░ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рд╣реЗрдЬрдирд╛, рдпрд╛ рддреБрд░рдВрдд рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдбреЗрдЯрд╛ рдХреЛ рдЕрдВрддрд┐рдо рдбрд┐рд╡рд╛рдЗрд╕ рд╕реЗ рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рд╕рд░реНрд╡рд░ рдкрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рд╣реИред

namespace RandomDistribution
{
    public class MainController : MonoBehaviour
    {
        ...
		
        public void GenerateCsvDataSet(string path, int dataSetSize, params IRandomGenerator[] generators)
        {
            using (var writer = File.CreateText(path))
            {
                GenerateCsvDataSet(writer, dataSetSize, generators);
            }
        }


        public string GenerateCsvDataSet(int dataSetSize, params IRandomGenerator[] generators)
        {
            using (StringWriter writer = new StringWriter(CultureInfo.InvariantCulture))
            {
                GenerateCsvDataSet(writer, dataSetSize, generators);
                return writer.ToString();
            }
        }

        ...
    }
}

рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реНрд░реЛрдд рдпрд╣рд╛рдВ рд╣реИрдВ GitLab.

рдирд┐рд╖реНрдХрд░реНрд╖

рдХреЛрдИ рдЪрдорддреНрдХрд╛рд░ рдирд╣реАрдВ рд╣реБрдЖ. рдЙрдиреНрд╣реЛрдВрдиреЗ рдЬреЛ рдЕрдкреЗрдХреНрд╖рд╛ рдХреА рдереА рд╡рд╣реА рдЙрдиреНрд╣реЗрдВ рдорд┐рд▓рд╛ - рд╕рднреА рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рд╕рд╛рдЬрд┐рд╢реЛрдВ рдХреЗ рд╕рдВрдХреЗрдд рдХреЗ рдмрд┐рдирд╛ рдПрдХ рд╕рдорд╛рди рд╡рд┐рддрд░рдгред рдореБрдЭреЗ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЧреНрд░рд╛рдлрд╝ рд▓рдЧрд╛рдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рджрд┐рдЦрддрд╛ - рд╡реЗ рд╕рднреА рд▓рдЧрднрдЧ рд╕рдорд╛рди рдкрд░рд┐рдгрд╛рдо рджрд┐рдЦрд╛рддреЗ рд╣реИрдВред

рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛ рдпрд╣ рд╣реИ:
BlessRNG рдпрд╛ рдирд┐рд╖реНрдкрдХреНрд╖рддрд╛ рдХреЗ рд▓рд┐рдП RNG рдХреА рдЬрд╛рдБрдЪ рдХрд░рдирд╛

рд╕рднреА рдкрд╛рдБрдЪ рдкреАрдврд╝реА рд╡рд┐рдзрд┐рдпреЛрдВ рд╕реЗ рдПрдХ рд╕рдорддрд▓ рдкрд░ рдЕрдиреБрдХреНрд░рдореЛрдВ рдХрд╛ рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝реЗрд╢рди:
BlessRNG рдпрд╛ рдирд┐рд╖реНрдкрдХреНрд╖рддрд╛ рдХреЗ рд▓рд┐рдП RNG рдХреА рдЬрд╛рдБрдЪ рдХрд░рдирд╛

рдФрд░ 3рдбреА рдореЗрдВ рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝реЗрд╢рдиред рдореИрдВ рдХреЗрд╡рд▓ System.Random.Next() рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдЫреЛрдбрд╝реВрдВрдЧрд╛ рддрд╛рдХрд┐ рд╕рдорд╛рди рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдПрдХ рд╕рдореВрд╣ рдЙрддреНрдкрдиреНрди рди рд╣реЛред
BlessRNG рдпрд╛ рдирд┐рд╖реНрдкрдХреНрд╖рддрд╛ рдХреЗ рд▓рд┐рдП RNG рдХреА рдЬрд╛рдБрдЪ рдХрд░рдирд╛

UnityEngine.Random рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рддрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрд░рд┐рдЪрдп рдореЗрдВ рдмрддрд╛рдИ рдЧрдИ рдХрд╣рд╛рдиреА рдЦреБрдж рдХреЛ рджреЛрд╣рд░рд╛рдИ рдирд╣реАрдВ рдЧрдИ: рдпрд╛ рддреЛ рдпрд╣ рд╢реБрд░реВ рдореЗрдВ рдЧрд▓рдд рдереА, рдпрд╛ рддрдм рд╕реЗ рдЗрдВрдЬрди рдореЗрдВ рдХреБрдЫ рдмрджрд▓ рдЧрдпрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдм рд╣рдореЗрдВ рдпрдХреАрди рд╣реИ.

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ