
แแแแแจแแแแก แจแแแฃแจแแแแแแกแแก แฎแจแแ แแ แกแแญแแ แแ แ แแฆแแช แจแแแแฎแแแแแแแแแกแแแ แแแแแแจแแ แแแ: Unity-แก แแแแกแแแแก แแฅแแก แกแแแฃแแแ แ Random แแ System.Random แแแก แแแ แแแแแฃแ แแ แแ แกแแแแแก. แแ แแฎแแ, แแ แ-แแ แ แแ แแแฅแขแแ, แแกแแแ แจแแแแแญแแแแแแ แแแแ แฉแ, แ แแ แแ แแแแก แจแแฃแซแแแ แแแแกแฎแแแแแแฃแแแ แแแฃแจแแแก (แแฃแแชแ แแแ แแ แแแแแ แแแแแ แแแแแฌแแแแแ แฃแแแ แฐแฅแแแแแ).
แแ แแ แแก แแแขแแแแแจแ แแ แฉแแแฃแฆแ แแแแแแ - แกแแแแแ แแกแ แแงแ, แ แแ System.Random-แแ แแแแแกแแแแ แงแแแแ แแ แแแแแแ แแแแแแแ แ. แแฎแแ แแแแแแฌแงแแแขแแ, แฃแคแ แ แแแขแแแฃแ แแ แแแแแแแแแแแแแแแแ แแก แกแแแแแฎแ แแ แฉแแแแแขแแ แแแแแ แแชแแ แ แแแแแแ: แ แแแแแแแ โแแแแแ แซแแแแฃแแแแโ โโแแ แแ แแแแแแแ แแแแแแแแ RNG-แแแ แแ แ แแแแแ แแแแ แฉแแแ. แฃแคแ แ แแแขแแช, แแ แแแ แแฎแแ แแแแแกแแแแแ แฃแ แแแแ แแแแแแแ แแชแฎแแแ แแแกแแแ แแแแแ แแแ โแแแขแแแกแแแแแกแแแโ แแแแแแจแแ แแแแ - แแแแแ, แแชแแแแ แแแแแ แแแแแ, แ แแแแ แจแแแแ แแแ แ แแแแฃแ แ แจแแแแแแแ แแแแแแ แแ แแแฃแ แจแแแแแแแก.
แแแแแ แกแแแแแแแแแแแแแแ แแ แแแ แแแ แแฃ RNG แกแแแแแแแแแแจแ RNG-แ?
แแฃ แฃแแแ แแชแแแแ แจแแแแฎแแแแแแ แ แแชแฎแแแแแก แแแแแ แแขแแ แแแก, แจแแแแซแแแแ แแแแแฎแแแแแ โแขแแกแขแแ แแแแกโ แแแแงแแคแแแแแแแ.
แจแแแแฎแแแแแแ แ แแชแฎแแแแ (RN) แแ แแก แ แแชแฎแแแแแก แแแแแแแแแแ แแแ, แ แแแแแแช แฌแแ แแแแฅแแแแแ แ แแแแ แจแแแแฎแแแแแแ (แฅแแแขแฃแ แ) แแ แแชแแกแแ, แแแขแ แแแแแก แฌแงแแ แ. แแแฃ แแก แแ แแก แแแแแแแแแแ แแแ, แ แแแแแก แแแแแแแขแแแ แแ แแแแแแแแแ แแ แแ แแก แแแแแแจแแ แแแฃแแ แ แแแแ แแแแแแแขแแแฃแ แ แแแแแแแ - แแแ แแ แแฅแแ แแแแแ-แจแแแแแแแ แแแ แแแแจแแ แ.
แจแแแแฎแแแแแแ แ แแชแฎแแแแแก แแแแแ แแขแแ แก (RNG) แฅแแแแก. แ แแแแ แช แฉแแแก, แงแแแแแคแแ แ แแแแแแแขแแ แฃแแแ, แแแแ แแ แแฃ แแแแ แแแแแ แแ แแฅแขแแแแแ แแแแแแแแ, แแแจแแ แกแแแแแแแแแแจแ, แแกแแแ แแแแแแแแแแ แแแแก แแแแแ แแ แแแแก แแ แแแ แแแฃแแ แแแแแ แแแแแก แแแแแ แแแ แแ แช แแกแ แแแ แขแแแแ.
แแแแแแ แแแแแแแแ แแแ แกแแแแแฎแแแ แแแแ แแแแฅแขแ แแแแแแจแ แกแฌแแ แแ แแ แฅแแแกแแก แแ แแ แกแแแแแแ. แแแก แแแ แแจแ แจแแแแฎแแแแแแ แ แแชแฎแแแแ แฌแงแแแขแแ แจแแแแฎแแแแแแแแแก แแ แแแแ แแแแแ แแขแแ แ แฌแแแแกแฌแแ แแแแกแแแฆแแ แฃแแ แแ แแฃแแแแขแแแแก แฉแแแฃแแแแ แแ แคแฃแแฅแชแแแ แแฅแชแแแ. IT แกแคแแ แแก แ แแแ แกแแแชแแแแแแแแแกแแแแก แแก แกแแ แแแแฃแแ แแ แแแแแแแ (แแแแแแแแแ, แแ แแแขแแแ แแคแแแกแแแแก), แแแแ แแ แแแแแ แฉแแแแแแกแแแแก แกแ แฃแแแแ แแแกแแฆแแแ แแแแแฌแงแแแขแ แแ แกแแแแแก.
แแฃแชแแแแแแแแ แแแแฌแแ แแก แแแแแ แแแแ, แ แแแแแแช แแแแแ แฃแแแแก, แแฃ แแ แ แญแแจแแแ แแขแแ แจแแแแฎแแแแแ แ แแชแฎแแแแก, แแแจแแ แแแแแแ แ แแช แจแแแซแแแแ แแฎแแแก - แ.แฌ. แคแกแแแแแจแแแแฎแแแแแ แ แแชแฎแแแแก (PRNG). แแ แจแแแแฎแแแแแจแ แแแแแ แแแแก แคแกแแแแแจแแแแฎแแแแแแ แ แแชแฎแแแแแก แแแแแ แแขแแ แ (PRNG) แแฌแแแแแ.
PRNG-แแก แจแแกแแฅแแแแแแ แ แแแแแแแแ แแแ แแแแขแ แแ แกแแแแแก, แแแแ แแ แจแแแแแแ แงแแแแแกแแแแก แแฅแขแฃแแแฃแ แ แแฅแแแแ:
- แกแแญแแ แแ แฌแแแแกแฌแแ แ แแแแชแแแแแแแชแแ.
PRNG-แก แแแขแ แแแแแก แฌแงแแ แ แแ แแแแฉแแแ, แแแแขแแ แแแก แแแแแงแแแแแแแแ แกแแญแแ แแ แกแแฌแงแแกแ แแแแแแแ แแแแแก แแแแแแแแ. แแก แแแแแแแแฃแแแ แ แแชแฎแแแก (แแ แแแฅแขแแ แแก) แกแแฎแแ แแ แแแก แแฌแแแแแ โแแแกแแโ (แจแแแแฎแแแแแแ โแแแกแแโ. แฎแจแแ แแ, โแแแกแแแโ แแแแแแงแแแแแ แแ แแชแแกแแ แแก แชแแแแแก แแ แแชแฎแแแแ แแ แกแแกแขแแแแก แแ แแแก แ แแชแฎแแแแ แแแแแแแแแแขแ.
- แแแแแแแแแแ แแแแก แ แแแ แแแฃแชแแ แแแแแแแ.
PRNG แกแ แฃแแแแ แแแขแแ แแแแแกแขแฃแแแ, แแแแขแแ แแแแชแแแแแแแชแแแก แแ แแก แแแแแแแแฃแแ แกแแฌแงแแกแ แชแแแแแ แชแแแกแแฎแแ แแแแกแแแฆแแ แแแก แ แแชแฎแแแแแก แแแแ แแแแแแแ แแแแแแแแแแ แแแแก. แแก แแแจแแแแก, แ แแ แแ แแ แแ แแแแแ แกแแฌแงแแกแ แชแแแแแแ แแแแชแแแแแแแแฃแแ แแ แแ PRNG (แกแฎแแแแแกแฎแแ แแ แแก, แกแฎแแแแแกแฎแแ แแ แแแ แแแแจแ, แกแฎแแแแแกแฎแแ แแแฌแงแแแแแแแแแ) แฌแแ แแแฅแแแแก แแแแแ แแแแแแแแแแ แแแแก.
แแกแแแ แฃแแแ แแชแแแแ แแแแแแฃแ แ แแแแแฌแแแแแ, แ แแแแแแช แแฎแแกแแแแแแก PRNG-แก - แ แ แ แแชแฎแแแแก แฌแแ แแแฅแแแแก แแก แแ แ แ แแแแแแแแแ. แงแแแแแแ แฎแจแแ แแ, แแก แแ แแก แแแ แแแแฃแ แ แแ แแ แแแแแ แแแแแ แแแแแฌแแแแแ.

แแแ แแแแฃแ แ แแแแแฌแแแแแ (แแแ แชแฎแแแ) แแ แแ แแแแแ แแแแแ แแแแแฌแแแแแ (แแแ แฏแแแแ)
แแแแฃแจแแแ, แ แแ แแแแฅแแก 24-แแแแ แแแแแ แแแแแแแแ. แแฃ แแแก แแแกแ แแแ, 1-แแก แแแฆแแแแก แแแแแแแแ 24/XNUMX-แแ (แแกแแแ, แ แแแแ แช แแแแแกแแแแ แ แกแฎแแ แ แแชแฎแแแก แแแฆแแแแก แแแแแแแแ). แแฃ แแแแ แฏแแ แแแกแ แแแ แแ แจแแแแแแแก แฉแแแฌแแ แ, แจแแแแแฉแแแแ, แ แแ แงแแแแ แแแแ แแ แแแแฎแแแแแแ แแ แแ แแ แแแแแ แกแแฎแจแแ แแ แแแแแแแก. แแ แกแแแแแแ, แแก แแแแแแแแ แจแแแซแแแแ แฉแแแแแแแแก แแ แแแแแ แแแแแ แแแแแฌแแแแแฃแ แจแแแแฎแแแแแแ แแแแแ แแ แแแฃแแ แแแแแ แแฃแแแ.
แแ แแฃ แแ แแแ แแฃแแแ 10 แแกแแ แแแแแแแแก แแกแแ แแ แแ แฏแแแฃแ แฅแฃแแแก แแแแแแแแแ, แแก แแ แแแแแ แแแแแ แแแ แฉแแแ? แแ แ. แงแแแแแแ แฎแจแแ แแ, แฅแฃแแ 125 แฅแฃแแแกแแแ แแฎแแแก แแฅแแแแ, แแแฃ แ แแฆแแช แกแแจแฃแแแ แแแแจแแแแแแแแกแแแ. แจแแแแแแ, แกแ แแแแแแแช แแ แจแแแแซแแแแ แแแแฎแแแแแแ แจแแแคแแกแแ แแแแแแแแ แจแแแแแ.
แแแแแแ แแก แแ แแก, แ แแ แกแแจแฃแแแ แฅแฃแแแก แแแกแแฆแแแแ แแแแแแแแชแแแแแก แฃแแแแแกแ แ แแแแแแแแแ. แ แแช แฃแคแ แ แจแแ แก แแแ แ แแแกแแแ, แแแ แแแแแแแ แแแแแแแแชแแแ - แแ, แจแแกแแแแแแกแแ, แแแ แฃแคแ แ แแแแแแแ แแแแแแแ แแแแก แแแแแแแแ. แแฃ แแก แแแแแชแแแแแ แแแแฃแแแแแแแฃแแแ, แแกแแแ แแฃแแแแแแแ แแแแแกแแแแกแแแแแ แแแ แแก แคแแ แแแก. แแแแขแแ, แแแ แแแแฃแแ แแแแแญแแแแแ, 10 แแแแแแแแก แกแแกแขแแแแก แจแแแซแแแแ แแฌแแแแก แแแ แแแแฃแ แ แแแแแฌแแแแแแก แแฅแแแ RNG.
แแแแแ แแ แแ แแแแแแแแ, แแแแ แแ แฃแแแ แแแแแแคแ แแแแแจแ - แกแแแแแแแแ แกแ แแแ. แแกแ แแแแแ แแฅแแแแ แจแแแแฎแแแแแแ แแแแแ แแ แแแแก แแแแแ แแขแแ แ, แ แแแแแแช แฌแแ แแแฅแแแแก แ แแชแฎแแแแแก แฌแงแแแแก (x, y), แ แแแแแแช แแ แแคแแแแแ แแแฉแแแแแแ.

แแแแแแแแฎแแแแแ, แ แแ แแแ แชแฎแแแ แแแ แแแแขแ แฃแคแ แ แแฎแแแกแแ แ แแแแฃแ แชแฎแแแ แแแแกแแแ - แแก แแ แแก แแแ แแแแฃแ แ แแแแแฌแแแแแแก แแฅแแแ แแแแแ แแขแแ แแก แแกแแ. แแฃแแชแ, แแฃ แกแแญแแ แแ แแแ แกแแแแแแแแแก แแแคแแแขแแ แแแแ แชแแแ, แแแจแแ แกแฌแแ แ แแแ แแแแขแ, แ แแแแแแช แแแแฆแแแ แแ แแแแแ แแแแแ แแแแแฌแแแแแแก แแฅแแแ แแแแแ แแขแแ แแก แแแแแงแแแแแแ, แฃแคแ แ แจแแกแแคแแ แแกแแ. แแแแแแแ, แแแแแ แแขแแ แ แแแ แฉแแแ แแแชแแแฃแแ แแแแชแแแแก แแแฎแแแแแ.
แแฎแแ แแ แแแแแ แแแกแแฃแแ แแ แจแแแแฎแแแแแแ แ แแชแฎแแแแแก แแแแแแแ แแแแก แแแขแ แแแแแแ. แแแแแแแแแ, แแ แกแแแแแก แแแแแแแ แแแ, แ แแแแแแช แแกแ แแฌแงแแแ:
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, โฆ
แแ แแ แจแแฎแแแแแ, แ แแแแแแแ แจแแแแฎแแแแแแแ แแก แ แแชแฎแแแแ? แแแแแฌแงแแ แแแแแฌแแแแแแก แจแแแแฌแแแแแ.

แแก แแแแฅแแแก แแ แแแแแ แแแแแก แฐแแแแก, แแแแ แแ แแฃ แแแแแแแแแแ แแแแก แแ แแแ แแฃแแแ แแ แ แแชแฎแแก แฌแแแแแแฎแแแ แแ แแแ แกแแแ แขแงแแแ แแแแ แแแแแขแแแแ แแฆแแฅแแแแ, แแแแก แแแแฆแแแ:

แแแแฃแจแแแ แแแแคแแแ แฉแแแก. แแ แ แแแแแ แแแแแแแแแแ แแแแจแ แแแแแชแแแแแ แแแ แแแแฃแแ แฌแแกแแ แแ แแก แแแแแแแแฃแแ (แแแฃ แแแแแแ แแแขแ แแแแ แแฅแแก), แแแแ แจแแแซแแแแ แฌแแ แแแฅแแแแก แกแฌแแ แแ แแก โแแแแแ แซแแแแโ. แกแฃแ แแชแแ แ, แแกแแแ PRNG แแ แช แแฃ แแกแ แจแแกแแคแแ แแกแแ แกแแแ แขแงแแแ แแแแ แแแแแขแแแแก แแแแแ แแ แแแแกแแแแก.
แแแแแ แแ แแ แแแแแแแแแแ แแแ:
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, โฆ
แ แแแแ แช แฉแแแก, แแฅ แงแแแแแคแแ แ แแแ แแแแแ, แแฃแแแแช แแ แขแงแแ แแแแแแแ แแ:

แแแแแ, แจแแแฎแแแแ แแแชแฃแแแแแก (แฌแแแแแแฎแแ แกแแแ แ แแชแฎแแ):

แแ แแกแแ แแแแฃแจแแแ. แแแฎ แแแแแแแแแแแแจแ แแแแฃแแแแแแชแแแก แแแแแ แแฆแแ แแ แแก แจแแกแแซแแแแแแ. แแฃแแชแ, แแแแฃแจแแแ แจแแแซแแแแ แแ แกแแแแแแแก แ แแแแ แช แแ แแแแแแแแแแแแจแ, แแกแแแ แฃแคแ แ แแแ แแแแแแแแแแแแแจแ.
แแแแแ แแ แแแขแแแ แแคแแแจแ, แกแแแแช PRNG-แแแก แงแแแแแแ แแแแชแ แ แแแแฎแแแแแแ แแแแกแ แแแแ, แแกแแแ แกแแขแฃแแชแแ แแแขแแแแ แแฃแแแ แแแฃแฆแแแแแแ. แแแแขแแ, แแแแ แฎแแ แแกแฎแแก แจแแกแแคแแกแแแแแ แจแแแฃแจแแแแแฃแแแ แกแแแชแแแแฃแ แ แแแแแ แแแแแแ, แ แแแแแแกแแช แแฎแแ แแ แจแแแแฎแแแแ. แแแแ แแ แชแแแแ แแ แชแแแแ แกแขแแขแแแก แแแกแแฎแฃแ แแแก.
แขแแกแขแแ แแแ
แแฃ แ แแแ แแแแแแแแแแแแแ แแ แแแชแแ, แ แแแแ แฃแแแ แแแแฃแจแแแ แแแกแแแ? แฃแแแ แแแแแแแแแแแ แแฃ แแ แ แแแ, แแฃ แแ แแแชแแ, แ แแแแแ แจแฃแฅแแแจแแแ แแซแแแแ แแแแก แกแแจแฃแแแแแแก? แจแแแแแแแ แจแแแซแแแแ แแแแกแฎแแแแแแฃแแ แแงแแก.
แแแแแ แแฎแแแ Unity-แจแ แชแแแแแ แจแแแแฎแแแแแแแแแก. แแแ แแแ, แแฃ แแแแฃแแแแขแแชแแ แกแแญแแ แ แแแขแแแแแก แแแแแแก, แแแแ แแ แกแขแแขแแแก แแแกแแฌแงแแกแจแ แแแฎแกแแแแแ แแแแแแ แกแฌแแ แแ แกแแกแฃแ แแแแ แกแแแชแแคแแแแก แแ แแ แกแแแแแแก แแแแ แแแฎแแ.
แแ แฎแแแกแแฌแงแแก แแฃแจแแแแแก แแ แแแชแแแแก แชแแแแแก แแแ แแจแ, แแฅแแแ แแแ แจแแซแแแแ แแแก แกแฌแแ แแ แแแแแงแแแแแแก. แแแแแแแ, แแ แแ แจแแแแแฌแแแ แแ แฉแแแขแแ แแ แแฅแกแแแ แแแแแขแ, แ แแแ แกแแแแแแแ แแแ แฌแแฃแแแแ, แกแฃแ แแชแแ แ, แแแแแฌแแแแแแจแ แแแแแช.
แแแแแกแแแแแ แแแ แขแแแ แแ แแคแแฅแขแฃแ แ แแงแ - แกแขแแขแแกแขแแแแก แจแแแ แแแแแ, แแแแแฅแขแฃแ แ แแแแแชแแแแแแก แแแฆแแแ แแ แจแแแแแแแแก แแแแแแแแแ แแแ.
แแแแแแแก แกแแแแแ
Unity-แจแ แจแแแแฎแแแแแแ แ แแชแฎแแแแแก แแแแแ แแ แแแแก แ แแแแแแแแ แแแ แแ แกแแแแแก - แฉแแแ แฎแฃแแ แแแแแแชแแแแ.
- System.Random.Next() แแแชแแแฃแแ แแแแจแแแแแแแแแแก แแแแแแแแแจแ แแแแ แ แแชแฎแแแแก แฌแแ แแแฅแแแแก.
- System.Random.NextDouble(). แฌแแ แแแฅแแแแก แแ แแแแ แกแแแฃแกแขแแก แ แแชแฎแแแแก [0; 1) แแแแแแแแแจแ.
- UnityEngine.Random.Range() แแแแแ แแ แแแก แแ แแกแแแฃแกแขแแแ แ แแชแฎแแแแก (แแชแฃแ แแแ แ แแชแฎแแ) แแแชแแแฃแแ แแแแจแแแแแแแแแแก แแแแแแแแแจแ.
- UnityEngine.Random.value แฌแแ แแแฅแแแแก แแ แแแฃแกแข แ แแชแฎแแแแก (แแชแฃแ แแแ แ แแชแฎแแ) [0; 1) แแแแแแแแแจแ.
- Unity.Mathematics.Random.NextFloat(). แแฎแแแ Unity.Mathematics แแแแแแแแแแแก แแแฌแแแ. แแแแแ แแ แแแแก แฃแแแแแแก แแ แแแฃแกแขแ แแชแแชแแ แ แแชแฎแแแแก แแแชแแแฃแแ แแแแจแแแแแแแแแแก แแแแแแแแแจแ.
แแแแฃแแแแขแแชแแแจแ แแแแฅแแแก แงแแแแแแ แแแแแแแแฃแแ แแงแ แแ แแแแแ แแแแแ แแแแแฌแแแแแ, แแแ แแ UnityEngine.Random.value-แกแ (แกแแแแช แแแแแฌแแแแแ แแ แแ แแก แแแแแแแแฃแแ, แแแแ แแ UnityEngine.Random.Range()-แแก แแแแแแแแแ, แแ แแแแแ แแแแแ แแแแแฌแแแแแแช แแงแ แแแกแแแแแแแแ) แแ Unity.Mathematics.Random.NextFloat()-แแกแ (แ แแแแแแช แแแคแฃแซแแแแฃแแแ xorshift แแแแแ แแแแแ, แ แแช แแแจแแแแก, แ แแ แแแแแ แฃแแแ แแแแแแแ แแ แแแแแ แแแแ แแแแแฌแแแแแแก).
แกแขแแแแแ แขแฃแแแ, แแแกแแแแแแแแ แจแแแแแแแ แแงแ แแแแฃแแแแขแแชแแแจแ แแแแแแแแฃแแ.
แแแแแแแแแแแ
แฉแแแ แแแแฌแแ แแ แแแขแแ แ แแแแแแแชแแ, แ แแแแแแช แแแแแแฃแแ แฌแแ แแแแแแแแแ แแแแแแแก แแแแแงแแแแแแ แจแแแแฎแแแแแแ แ แแชแฎแแแแแก แแแแแแแ แแแแก แแแแแ แแ แแแแ แแ แจแแแแแแแก แจแแแแแแแ แแแแฃแจแแแแแแกแแแแก แแแแฎแแแแ.
แแแแแแฃแแ แแแแแแแแแแ แแแแก แกแแแ แซแ 100 แ แแชแฎแแแ.
แจแแแแฎแแแแแแ แ แแชแฎแแแแ แแแแจแแแแแแแแแแก แแแแแแแแแแ [0, 100).
แแแแแชแแแแแ แจแแแ แแแแ แ แแแแแแแแ แกแแแแแแ แแแแขแคแแ แแแแแ:
- Windows
โ Unity v2018.3.14f1, แ แแแแฅแขแแ แแก แ แแแแแ, Mono, .NET Standard 2.0 - macOS
โ Unity v2018.3.14f1, แ แแแแฅแขแแ แแก แ แแแแแ, Mono, .NET Standard 2.0
โ Unity v5.6.4p4, แ แแแแฅแขแแ แแก แ แแแแแ, Mono, .NET Standard 2.0 - Android
โ Unity v2018.3.14f1, แแแฌแงแแแแแแแแก แแฌแงแแแ, Mono, .NET Standard 2.0 - iOS
โ Unity v2018.3.14f1, แแแฌแงแแแแแแแแแ แแแแแฃแแ, il2cpp, .NET Standard 2.0
ะ ะตะฐะปะธะทะฐัะธั
แจแแแแฎแแแแแแ แ แแชแฎแแแแแก แแแแแ แแ แแแแก แ แแแแแแแแ แแแแกแฎแแแแแแฃแแ แแแ แแแแฅแแก. แแแแแแฃแแ แแแแแแแแกแแแแก แชแแแแ แจแแคแฃแแแแก แแแแกแก แแแแฌแแ แ, แ แแแแแแช แฃแแแ แฃแแ แฃแแแแแงแแคแแแก:
- แแแแจแแแแแแแแแแก แแแแแแแแแแก [แแแ./แแแฅแก.] แแแงแแแแแแก แจแแกแแซแแแแแแแ. แแแงแแแแแแ แแแแกแขแ แฃแฅแขแแ แแก แแแจแแแแแแ.
- แแแแแแ, แ แแแแแแช แแแ แฃแแแแก SC-แก. แขแแแแ แแแแ แฉแแแ float-แก, แ แแแแแ แแก แฃแคแ แ แแแแแแแ.
- แจแแแแแแแแก แแแแแจแแแแก แแแแแ แแ แแแแก แแแแแแแก แกแแฎแแแ. แแแฎแแ แฎแแแฃแแแแแกแแแแก, แฉแแแ แแแแแแ แฃแแแแ แแแแกแแก แกแ แฃแ แกแแฎแแแก + SC-แแก แแแแแ แแ แแแแกแแแแก แแแแแงแแแแแฃแแ แแแแแแแก แกแแฎแแแก, แ แแแแ แช แแแแจแแแแแแแแก.
แแแ แแแ แ แแแจแ, แฉแแแ แแแชแฎแแแแแ แแแกแขแ แแฅแชแแแก, แ แแแแแแช แฌแแ แแแแแแแแแ แแฅแแแแ IRandomGenerator แแแขแแ แคแแแกแแ:
namespace RandomDistribution
{
public interface IRandomGenerator
{
string Name { get; }
float Generate();
}
}System.Random.Next()-แแก แแแแแแแแแขแแชแแ
แแก แแแแแแ แกแแจแฃแแแแแแก แแแซแแแแ แแแแงแแแแ แแแแจแแแแแแแแแแก แแแแแแแแแ, แแฃแแชแ แแก แแแ แฃแแแแก แแแแ แ แแชแฎแแแแก แแ แกแแญแแ แแ แแชแฃแ แแแ แ แแชแฎแแแแ. แจแแแแซแแแแ แฃแแ แแแแ แแแแแ แ แแชแฎแแ แแแขแแ แแ แแขแแชแแ แแแฃแแแแแ แแชแฃแ แแ แ แแชแฎแแก, แแ แจแแแแซแแแแ แแแแคแแ แแแแแ แแแแจแแแแแแแแแแก แแแแแแแแแ แ แแแแแแแแ แ แแแแแแแแ, แแแแแแแกแแ แแแแ แแแ SC-แแก แแแแแแฃแ แแแแแแแ. แแฅแแแ แแแแฆแแแ แ แแฆแแช แคแแฅแกแแ แแแฃแแ แฌแแ แขแแแแก แแกแแแแกแก แกแแแฃแกแขแแก แแแแแแแแฃแแ แ แแแแแแแแ. แฉแแแ แแแแแแแงแแแแแ แแ แแแ แแแแขแก, แ แแแแแ แแก แฃแคแ แ แแฎแแแก แแ แแก แ แแแแฃแ แแชแฃแ แแ แ แแชแฎแแแแ.
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]. แแแแกแขแ แฃแฅแขแแ แจแ แแแแแแแแฃแ แแแแจแแแแแแแแแ แแแกแ แแ แแแชแแ แแแแกแแแแก, แฉแแแ แแแงแแแแแ แแแ แขแแ แแ แแแแแขแแแแก: X * (max โ min) + min.
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-แแก แแแแแแแแแขแแชแแ
แกแขแแขแแแฃแ แ แแแแกแแก value แแแแกแแแ UnityEngine.Random แแแ แฃแแแแก float แขแแแแก แจแแแแฎแแแแแ แ แแชแฎแแก แคแแฅแกแแ แแแฃแแ แแแแจแแแแแแแแแแก แแแแแแแแแแแแ [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() แแแแแแ แแแ แฃแแแแก float แขแแแแก แจแแแแฎแแแแแ แ แแชแฎแแก แแ แกแแจแฃแแแแแแก แแแซแแแแ แแแฃแแแแแ แแแแจแแแแแแแแแแก แแแแแแแแแ. แแ แแแแแ แแ แแแคแ แแฎแแแแแ แแก แแ แแก, แ แแ 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);
}
}MainController-แแก แแแแแแแแแขแแชแแ
IRandomGenerator-แแก แ แแแแแแแแ แแแแแแแแแขแแชแแ แแแแแแ. แจแแแแแ, แฉแแแ แฃแแแ แจแแแฅแแแแ แแแแแแแแแแ แแแแแ แแ แจแแแแแแฎแแ แแแฆแแแฃแแ แแแแแชแแแแ แแแแ แแแ แแแแฃแจแแแแแแกแแแแก. แแแแกแแแแแก แฉแแแ แจแแแฅแแแแ แกแชแแแแก Unity-แจแ แแ แแแขแแ แ MainController แกแแ แแแขแก, แ แแแแแแช แจแแแกแ แฃแแแแก แงแแแแ แกแแญแแ แ แกแแแฃแจแแแก แแ แแแแแแ แแฃแแแ แแฅแแแแ แแแกแฃแฎแแกแแแแแแแ แแแขแแ แแฅแชแแแแ แแแขแแ แแฅแชแแแแ.
แฉแแแ แแแแแแแแแ แแแแแชแแแแ แแแแ แแแแก แแแแแก แแ SC แแแแจแแแแแแแแแแก แแแแแแแแแก, แแกแแแ แจแแแแซแแแ แแแแแแก, แ แแแแแแช แแแแแ แฃแแแแก แแแแคแแแฃแ แแ แแแฃแแ แแ แแแแแกแแงแแแแแแแ แแแ แแแแแ แแขแแ แแแแก แแแกแแแก.
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)
};
}
...
}
}แแฎแแ แฉแแแ แแฅแแแแ แแแแแชแแแแ แแแแ แแแก. แแ แจแแแแฎแแแแแจแ, แแแแแชแแแแ แแแแแ แแ แแแ แแแแ แแแแแแแแ แจแแแแแแแแก แขแแฅแกแขแฃแ แแแแแแจแ (csv แคแแ แแแขแจแ) แฉแแฌแแ แแกแแแ. แแแแแแฃแ 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();
}
}
...
}
}แแ แแแฅแขแแก แฌแงแแ แแแแ แแแแแแ แแแแก .
แแแกแแแแแแ
แแ แแแแแ แ แกแแกแฌแแฃแแ แแ แแแแฎแแแ แ. แ แแกแแช แแแแแแแ, แแก แแแแแฆแแ - แงแแแแ แจแแแแฎแแแแแจแ, แแแแแแแ แ แแแแแฌแแแแแ แจแแแฅแแฃแแแแแก แแแแแแแขแแแแก แแแ แแจแ. แแแ แแฎแแแแ แแแ แก แแแแขแคแแ แแแแแกแแแแก แชแแแแ แแ แแคแแแแแแก แแแแแขแแแแจแ - แงแแแแ แแแแแแแ แแแแฎแแแแแแ แแ แแแแแ แจแแแแแแแก แแฉแแแแแแก.
แ แแแแแแ แแกแแแแ:

แฎแฃแแแแ แแแแแ แแชแแแก แแแแแแแ แกแแแ แขแงแแแ แแแแแแแแแแ แแแแแแก แแแแฃแแแแแแชแแ:

แแ แแแแฃแแแแแแชแแ 3D-แจแ. แแฎแแแแ System.Random.Next()-แแก แจแแแแแก แแแแขแแแแ, แ แแแ แแแแแขแฃแ แ แแแแขแแแขแแก แแ แแแแแแแแ แแ แแแแแ แแ แแแก.

แจแแกแแแแแจแ แแแแฎแ แแแแแ แแแแแแ UnityEngine.Random-แแก แแแ แแแแฃแ แ แแแแแฌแแแแแแก แจแแกแแฎแแ แแฆแแ แแแแแแแ แแแฃแแ: แแ แแแแแแแแแ แแ แแกแฌแแ แ แแงแ, แแ แแแก แจแแแแแ แซแ แแแจแ แ แแฆแแช แจแแแชแแแแ. แแแแ แแ แแฎแแ แแแ แฌแแฃแแแแฃแแแแ แแแ แ.
แฌแงแแ แ: www.habr.com
