แแแแแจแแก แแแแแแแแแแแขแจแ แฎแจแแ แแ แแญแแ แแแแแ แ แแแแแก แแแแแ แจแแแแฎแแแแแแแแแกแแแ: แแแแกแแแแก Unity-แก แแฅแแก แกแแแฃแแแ แ Random แแ แแแก แแแ แแแแแฃแ แแ แแ แแก System.Random. แแ แแฎแแ, แแ แ-แแ แ แแ แแแฅแขแแ, แแกแแแ แจแแแแแญแแแแแแ แแแแ แฉแ, แ แแ แแ แแแแ แจแแแซแแแแ แแแแกแฎแแแแแแฃแแแ แแแฃแจแแแก (แแฃแแชแ แแแแแแแ แ แแแแแฌแแแแแ แฃแแแ แฐแฅแแแแแ).
แจแแแแแ แแกแแแ แแ แจแแแแแแแแ แแแขแแแแแจแ - แกแแแแแ แแกแ แแงแ, แ แแ System.Random-แแ แแแแแกแแแแ แแแแแแกแฌแแ แ แงแแแแ แแ แแแแแแ. แแฎแแ แฉแแแ แแแแแแฌแงแแแขแแ แฃแคแ แ แแแขแแแฃแ แแ แจแแแแแฎแแแ แแ แฉแแแแขแแ แแ แแแขแแ แ แแแแแแ: แ แแแแแแแ โแแแแแ แซแแแแฃแแโ แแ แแ แแแแแแแ แแแแแแ RNG-แแแ แแ แ แแแแแ แแแแ แฉแแแ. แฃแคแ แ แแแขแแช, แแ แแ แแแ แแฎแแ แแกแแแแแ แฃแ แแแแ แแกแแฌแแแแแฆแแแแแ แแแกแแแ แแแแแ แแแแ "แแแขแแแกแแแแแก" แจแแกแแฎแแ - แแแแแ แจแแแแชแแแแ แแแแ แแแแแ, แแฃ แ แแแแ แจแแแแ แแแ แ แแแแฃแ แ แจแแแแแแแ แแแแแชแฎแแแแแฃแแก.
แแแแแ แกแแแแแแแแแแแแแแ แแ แแแ แแแ แแ RNG แแ แแก แ แแแแฃแ แแ RNG
แแฃ แแฅแแแ แฃแแแ แแชแแแแ แจแแแแฎแแแแแแ แ แแชแฎแแแแแก แแแแแ แแขแแ แแแก, แแแจแแ แจแแแแซแแแแ แแแฃแงแแแแแแแแ แแแแแฎแแแแแ "แขแแกแขแแ แแแแก" แแแแงแแคแแแแแแจแ.
แจแแแแฎแแแแแแ แ แแชแฎแแแแ (RN) แแ แแก แ แแชแฎแแแแแก แแแแแแแแแแ แแแ, แ แแแแแแช แฌแแ แแแแฅแแแแแ แจแแแแฎแแแแแแ (แฅแแแขแฃแ แ) แแ แแชแแกแแก แแแแแงแแแแแแ, แแแขแ แแแแแก แฌแงแแ แ. แแแฃ แแก แแ แแก แแแแแแแแแแ แแแ, แ แแแแแก แแแแแแแขแแแ แแ แแแแแแแแแ แแ แแ แแก แแแแแแจแแ แแแฃแแ แ แแแแ แแแแแแแขแแแฃแ แ แแแแแแแ - แแแ แแ แแฅแแ แแแแแ-แจแแแแแแแ แแแ แแแแจแแ แ.
แแก, แ แแช แฅแแแแก แจแแแแฎแแแแแ แ แแชแฎแแก, แแฌแแแแแ แจแแแแฎแแแแแแ แ แแชแฎแแแแแก แแแแแ แแขแแ แ (RNG). แ แแแแ แช แฉแแแก, แงแแแแแคแแ แ แแแแแแแขแแ แฃแแแ, แแแแ แแ แแฃ แแแแ แแแแแ แแ แแฅแขแแแแจแ แแแแแแแแแแ แ, แแแจแแ แกแแแแแแแแแแจแ แแ แช แแกแ แแแ แขแแแแ แแ แแแ แแแฃแแ แแแแแ แแแแแก แแแแแ แแแ แแกแแแ แแแแแแแแแแ แแแแก แจแแกแแฅแแแแแแ.
แแแแแแ แแแแแแแ แแแแก แแแแแ แฅแแแกแแก แแ แแ แกแแแแแแจแ แแแแแแแแ แแแ แกแแแแแฎแแแ แแแแ แแแแฅแขแ แแแแแแจแ. แแแแก แแแ แแจแ, แจแแแแฎแแแแแแ แ แแชแฎแแแแ แฌแงแแแขแก แจแแแแฎแแแแแแแแแก แแ แแแแ แแแแแ แแขแแ แ แแฅแชแแแ แแจแแแ แแ แแแแกแแแฆแแ แฃแแ แแ แแฃแแแแขแแแแก แฉแแแฃแแแแ แแ แคแฃแแฅแชแแแ. IT แแแ แแแก แ แแแ แกแแแชแแแแแแแแแกแแแแก แแก แกแแ แแแแฃแแ แแ แแแแแแแ (แแแแแแแแแ, แแ แแแขแแแ แแคแแ), แแแแ แแ แกแฎแแแแแกแแแแก แแ แแก แกแ แฃแแแแ แแแกแแฆแแแ แแแแแกแแแแแ.
แแฃแชแแแแแแแแ แแแแฌแแ แแก แแแแแ แแแแ, แ แแแแแแช แแแแแ แฃแแแแก, แแฃแแชแ แแ แ แญแแจแแแ แแขแแ แจแแแแฎแแแแแ แ แแชแฎแแแแก, แแแแ แแ แ แแช แจแแแซแแแแ แแฎแแแก แแ แแก แแแแแแ - แแแ แแ แฌแแแแแฃแแ แคแกแแแแ แจแแแแฎแแแแแแ แ แแชแฎแแแแ (PRN). แแแแแ แแแแก แแ แจแแแแฎแแแแแจแ แแฌแแแแแ แคแกแแแแแ แแแแแแ แ แแชแฎแแแแแก แแแแแ แแขแแ แ (PRNG).
PRNG-แแก แจแแฅแแแแก แ แแแแแแแแ แแแ แแแแขแ แแ แกแแแแแก, แแแแ แแ แจแแแแแแ แแฅแแแแ แงแแแแแกแแแแก แแฅแขแฃแแแฃแ แ:
- แฌแแแแกแฌแแ แ แแแแชแแแแแแแชแแแก แกแแญแแ แแแแ.
PRNG-แก แแ แแฅแแก แแแขแ แแแแแก แฌแงแแ แ, แแแแขแแ แแแแแงแแแแแแแแ แแแก แฃแแแ แแแแชแแก แกแแฌแงแแกแ แแแแแแแ แแแแ. แแแ แแแแแแแแฃแแแ แ แแแแ แช แ แแชแฎแแ (แแ แแแฅแขแแ แ) แแ แแฌแแแแแ แแแกแแ (แจแแแแฎแแแแแแ แแแกแแ). แฎแจแแ แแ, แแ แแชแแกแแ แแก แกแแแแแก แแ แแชแฎแแแแ แแ แกแแกแขแแแฃแ แ แแ แแแก แ แแชแฎแแแแ แแแแแแแแแแขแ แแแแแแงแแแแแ แ แแแแ แช แแแกแแ.
- แแแแแแแแแแ แแแแก แแแแแแแ แแแแแแแ.
PRNG แกแ แฃแแแแ แแแแแกแแแฆแแ แแแแ, แแแแขแแ แแแแชแแแแแแแชแแแก แแ แแก แแแแแแแแฃแแ แแแกแแ แชแแแกแแฎแแ แแแแกแแแฆแแ แแแก แ แแชแฎแแแแแก แแแแ แแแแแแแ แแแแแแแแแแ แแแแก. แแก แแแจแแแแก, แ แแ แชแแแแแฃแแ PRNG, แ แแแแแแช แแแแชแแแแแ แแแฃแแแ แแ แแ แแ แแแแแ แแแกแแแ (แกแฎแแแแแกแฎแแ แแ แแก, แกแฎแแแแแกแฎแแ แแ แแแ แแแแแจแ, แกแฎแแแแแกแฎแแ แแแฌแงแแแแแแแแแแ) แฌแแ แแแฅแแแแก แแ แแกแ แแ แแแแแ แแแแแแแแแแ แแแแก.
แแฅแแแ แแกแแแ แฃแแแ แแชแแแแ PRNG-แแก แแแแแฎแแกแแแแแแแแ แแแแแแแแแก แแแแแฌแแแแแ - แ แ แ แแชแฎแแแแก แแแแแแแฃแจแแแแแก แแ แ แ แแแแแแแแแ. แงแแแแแแ แฎแจแแ แแ แแก แแ แแก แแแ แแแแฃแ แ แแแแแฌแแแแแ แแ แแ แแแแแ แแแแแฌแแแแแ.
แแแ แแแแฃแ แ แแแแแฌแแแแแ (แแแ แชแฎแแแ) แแ แแ แแแแแ แแแแแฌแแแแแ (แแแ แฏแแแแ)
แแแฅแแแ, แฉแแแ แแแแฅแแก แกแแแแ แแแแแแ แกแแแแแแแ 24 แแฎแแ แแ. แแฃ แแแแแแแแแแ, แแ แแแก แแแฆแแแแก แแแแแแแแ แแฅแแแแ 1/24-แแก แขแแแ (แแแแแ, แ แแช แกแฎแแ แ แแชแฎแแแก แแแฆแแแแก แแแแแแแแ). แแฃ แแแแ แแแ แขแงแแแก แแแแแแแแแ แแ แจแแแแแแแก แฉแแฌแแ แ, แจแแแแฉแแแแ, แ แแ แงแแแแ แแแแ แแแแฎแแแแแแ แแแแแ แกแแฎแจแแ แแ แชแแแแ. แแ แกแแแแแแ, แแก แกแแงแ แแแแ แจแแแซแแแแ แฉแแแแแแแแก RNG-แแ แแ แแแแแ แแแแแฌแแแแแแ.
แ แ แแแฎแแแแ, แแฃ แแ แแแแแแแแแแแ 10 แแ แแแแจแแ แฉแแแแแแแ แแ แแแแแแแ แแแแแแ แฅแฃแแแแก? แจแแแแ แฉแฃแแแแแ แแฃ แแ แ แแแกแแแแก แแ แแแแแ แแแแแแ? แแ แ. แงแแแแแแ แฎแจแแ แแ, แแแแฎแ แแฅแแแแ 125 แฅแฃแแแกแแแ แแฎแแแก, แแแฃ แ แแฆแแช แกแแจแฃแแแ แแแแจแแแแแแแแแแ. แแ แจแแแแแแ, แกแ แแแแก แแแแแแแแแแแแช แแ แจแแแแซแแแแ แฃแฎแแจแแ แจแแแคแแกแแ แแแแแแแแ แจแแแแแ.
แแแแแแ แแก แแ แแก, แ แแ แแ แแก แแแแแแแแชแแแแแก แงแแแแแแ แแแแ แ แแแแแแแแ แกแแจแฃแแแ แฅแฃแแแก แแแกแแฆแแแแ. แ แแช แฃแคแ แ แจแแ แก แแ แแก แแแกแแแ, แแแ แแแแแแแแ แแแแแแแแชแแแแ - แแ, แจแแกแแแแแแกแแ, แแแแแแแแ แแแ แแแแก แแแแแแแแ. แแฃ แแก แแแแแชแแแแแ แแแแฃแแแแแแแแ, แแก แแฃแแแแแแแ แแแแแกแแแแกแแแ แแแ แแก แคแแ แแแก. แแแแขแแ, แแแ แแแแฃแแ แแแแแแแแแแ, 10 แแแแแแแแก แกแแกแขแแแแก แจแแแซแแแแ แแฌแแแแก RNG แแแ แแแแฃแ แ แแแแแฌแแแแแแ.
แแแแแ แแ แแ แแแแแแแแ, แแฎแแแแ แแแฏแแ แแ แแแแแแคแ แแแแแจแ - แกแแแแแแแแ แกแ แแแ. แแกแ แแแแแ แแฅแแแแ RNG, แ แแแแแแช แแแแแแแฃแจแแแแแก แ แแชแฎแแแแแก แฌแงแแแแก (x, y), แ แแแแแแช แแแแแกแแฎแฃแแแ แแ แแคแแแแ.
แแแแแแแแฎแแแแแ, แ แแ แแแ แชแฎแแแ แแแ แแแแขแ แฃแคแ แ แแฎแแแก แแ แแก แ แแแแฃแ แชแฎแแแ แแแแกแแแ - แแก แแ แแก RNG แแแ แแแแฃแ แ แแแแแฌแแแแแแ. แแแแ แแ แแฃ แแฅแแแ แแญแแ แแแแแ แแแ แกแแแแแแแแแก แแแคแแแขแแ แแแแ แชแแแ, แแแจแแ แกแฌแแ แ แแแ แแแแขแ, แ แแแแแแช แแแฆแแแฃแแแ RNG-แแก แแแแแงแแแแแแ แแ แแแแแ แแแแแ แแแแแฌแแแแแแ, แฃแแแแแกแแ. แแแแแแแ, แแแ แฉแแ แแแแแ แแขแแ แ แแแแแแแแแแแ แแแแแแแแแแ แ.
แแฎแแ แแแแแ แแแกแแฃแแ แแ PNG แแแแแแแ แแแแก แแแขแ แแแแแแ. แแแแแแแแแ, แแ แแก แแแแแแแแแแ แแแ, แ แแแแแแช แแฌแงแแแ แแกแ:
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() (แกแแแแช The Base-แจแ แแ แแก xorshift แแแแแ แแแแ, แ แแช แแแจแแแแก, แ แแ แแแแแ แฃแแแ แแแแแแแแ แแ แแแแแ แแแแ แแแแแฌแแแแแแก).
แแแแฃแแแกแฎแแแแแ, แแแกแแแแแแแแ แจแแแแแแแ แแฅแแ แแแฆแแแฃแแ, แ แแแแ แช แแก แแแแแแแแฃแแแ แแแแฃแแแแขแแชแแแจแ.
แแแแแแแแแแแ
แฉแแแ แแแแฌแแ แแ แแแขแแ แ แแแแแแแชแแ, แ แแแแแแช แฌแแ แแแฅแแแแแ แจแแแแฎแแแแแแ แ แแชแฎแแแแแก แแแแแแแแแแ แแแแก แแแแแแฃแแ แฌแแ แแแแแแแแแ แแแแแแแก แแแแแงแแแแแแ แแ แจแแแแฎแฃแแ แจแแแแแแแ แจแแแแแแแ แแแแฃแจแแแแแแกแแแแก.
แแแแแแฃแแ แแแแแแแ แแแแก แกแแแ แซแ 100 แ แแชแฎแแแ.
แจแแแแฎแแแแแแ แ แแชแฎแแแแแก แแแแแแแแแ แแ แแก [0, 100).
แแแแแชแแแแแ แจแแแ แแแแ แ แแแแแแแแ แกแแแแแแ แแแแขแคแแ แแแแแ:
- Windows
โ Unity v2018.3.14f1, แ แแแแฅแขแแ แแก แ แแแแแ, แแแแ, .NET Standard 2.0 - MacOS
โ Unity v2018.3.14f1, แ แแแแฅแขแแ แแก แ แแแแแ, แแแแ, .NET Standard 2.0
โ Unity v5.6.4p4, แ แแแแฅแขแแ แแก แ แแแแแ, แแแแ, .NET Standard 2.0 - Android
โ Unity v2018.3.14f1, แแจแแแแแ แแแแ แแแฌแงแแแแแแแแแ, แแแแ, .NET Standard 2.0 - iOS
โ Unity v2018.3.14f1, แแจแแแแแ แแแแ แแแฌแงแแแแแแแแแ, il2cpp, .NET Standard 2.0
ะ ะตะฐะปะธะทะฐัะธั
แฉแแแ แแแแฅแแก แ แแแแแแแแ แแแแกแฎแแแแแแฃแแ แแแ แจแแแแฎแแแแแแ แ แแชแฎแแแแแก แแแแแ แแ แแแแกแแแแก. แแแแแแฃแแ แแแแแแแแกแแแแก แฉแแแ แแแแฌแแ แ แชแแแแ แจแแคแฃแแแแก แแแแกแก, แ แแแแแแช แฃแแแ แฃแแ แฃแแแแแงแแก:
- แแแแจแแแแแแแแแแก แแแแแแแแแแก แแแงแแแแแแก แจแแกแแซแแแแแแแ [แแแ/แแแฅแก). แแแงแแแแแแ แแแแกแขแ แฃแฅแขแแ แแก แแแจแแแแแแ.
- MF แแแแ แฃแแแแแก แแแแแแ. แแแแ แฉแแแ float แขแแแแ, แ แแแแแ แแก แฃแคแ แ แแแแแแแ.
- แจแแแแแแแแก แแฆแแแจแแแแก แแแแแ แแ แแแแก แแแแแแแก แแแกแแฎแแแแแ. แแแฎแแ แฎแแแฃแแแแแกแแแแก, แแแแจแแแแแแแแ แแแแแแ แฃแแแแ แแแแกแแก แกแ แฃแ แกแแฎแแแก + MF-แแก แแแแแ แแ แแแแกแแแแก แแแแแงแแแแแฃแแ แแแแแแแก แกแแฎแแแก.
แแแ แแแแ, แแแแแ แแแแแแแชแฎแแแแ แแแกแขแ แแฅแชแแ, แ แแแแแแช แฌแแ แแแแแแแแแ แแฅแแแแ IRandomGenerator แแแขแแ แคแแแกแแ:
namespace RandomDistribution
{
public interface IRandomGenerator
{
string Name { get; }
float Generate();
}
}
System.Random.Next()-แแก แแแแแแแแแขแแชแแ
แแก แแแแแแ แกแแจแฃแแแแแแก แแแซแแแแ แแแแงแแแแ แแแแจแแแแแแแแแแก แแแแแแแแแ, แแแแ แแ แแก แแแ แฃแแแแก แแแแ แ แแชแฎแแแแก, แแแแ แแ แกแแญแแ แแ floats. แแฅแแแ แจแแแแซแแแแ แฃแแ แแแแ แแแขแแ แแ แแขแแชแแ แแแฃแฌแแแ แแแแ แ แแชแฎแแก, แ แแแแ แช float, แแ แจแแแแซแแแแ แแแแคแแ แแแแแ แแแแจแแแแแแแแแแก แแแแแแแแแ แ แแแแแแแแ แแ แซแแแแแแ, แแแแแฆแแฃแ แแ แแกแแแ แกแแจแฃแแแ แแแแแแแแแแก แแแแแแฃแแ แแแแแแ. แจแแแแแ แแฅแแแแ แคแแฅแกแแ แแแฃแแ แฌแแ แขแแแแก แแกแแแแกแ แกแแแฃแกแขแแก แแแชแแแฃแแ แ แแแ. แฉแแแ แแแแแแแงแแแแแ แแ แแแ แแแแขแก, แ แแแแแ แแก แฃแคแ แ แแฎแแแก แแ แแก แ แแแแฃแ float แแแแจแแแแแแแแกแแแ.
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 แกแขแแขแแแฃแ แ แแแแกแแก แแก แแแแแแ แกแแจแฃแแแแแแก แแแซแแแแ แแแแงแแแแ แแแแจแแแแแแแแแแก แแแแแแแแแ แแ แแแแแ แฃแแแ float แขแแแแก. แแฅแแแ แแ แแญแแ แแแแแ แ แแแแ แแแแแขแแแแแ แขแ แแแกแคแแ แแแชแแแก แแแแแแแแ.
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 แกแขแแขแแแฃแ แ แแแแกแแก แแแแจแแแแแแแแก แแแแกแแแ แแแ แฃแแแแก 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-แแก แ แแแแแแแแ แแแแแแแแแขแแชแแ แแแแ แแ แแก. แจแแแแแแ, แแฅแแแ แฃแแแ แจแแฅแแแแ แแแแแแแแแแ แแแแแ แแ แจแแแแแฎแแ แแแฆแแแฃแแ แแแแแชแแแแ แแแแ แแแ แแแแฃแจแแแแแแกแแแแก. แแแแกแแแแแก แฉแแแ แจแแแฅแแแแ แกแชแแแแก แแ แแแขแแ แ MainController แกแแ แแแขแก Unity-แจแ, แ แแแแแแช แจแแแกแ แฃแแแแก แงแแแแ แกแแญแแ แ แกแแแฃแจแแแก แแ แแแแแ แแ แแก แแฅแแแแ แแแกแฃแฎแแกแแแแแแแ UI-แกแแแ แแแขแแ แแฅแชแแแแ.
แแแแแ แแแแแงแแแแ แแแแแชแแแแ แแแแ แแแแก แแแแ แแ MF แแแแจแแแแแแแแแแก แแแแแแแแแ, แแกแแแ แแแแแฆแแ แแแแแแ, แ แแแแแแช แแแแแ แฃแแแแก แแแแคแแแฃแ แแ แแแฃแ แแ แกแแแฃแจแแแ แแแแ แแแแแ แแขแแ แแแแก แแแกแแแก.
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