เปเบเบเบฒเบเบเบฑเบเบเบฐเบเบฒเปเบเบก, เบเปเบฒเบเบกเบฑเบเบเบฐเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบเปเบเบตเปเบกเบเบฒเบเบชเบดเปเบเบเบฒเบเบขเปเบฒเบเบเบถเปเบเบเบฑเบเบเบงเบฒเบกเบชเบธเปเบก: Unity เบกเบต Random เบเบญเบเบเบปเบเปเบญเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบตเป, เปเบฅเบฐเปเบเบเบฐเบซเบเบฒเบเบเบฑเบเบกเบฑเบเบกเบต System.Random. เบกเบตเบเบฑเปเบเบซเบเบถเปเบ, เปเบเปเบเบเบเบฒเบเบซเบเบถเปเบ, เบเปเบฒเบเบฐเปเบเบปเปเบฒเปเบเปเบฎเบฑเบเบเบงเบฒเบกเบเบฐเบเบฑเบเปเบเบงเปเบฒเบเบฑเบเบชเบญเบเบชเบฒเบกเบฒเบเปเบฎเบฑเบเบงเบฝเบเปเบเบเบเปเบฒเบเบเบฑเบ (เปเบเบดเบเปเบกเปเบเบงเปเบฒเบเบงเบเปเบเบปเบฒเบเบงเบเบเบฐเบกเบตเบเบฒเบเปเบเบเบขเบฒเบเปเบเบดเบเปเบกเปเบเบงเปเบฒ).
เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ, เบเบงเบเปเบเบปเบฒเบเปเปเปเบเปเปเบเบปเปเบฒเปเบเปเบเบฅเบฒเบเบฅเบฐเบญเบฝเบ - เบกเบฑเบเบเบฝเบเบเปเบเบตเปเบเบฒเบเบซเบฑเบเบเปเบฝเบเปเบเบชเบนเป System.Random เปเบเปเปเบเบเบฑเบเบซเบฒเบเบฑเบเบซเบกเบปเบ. เบเบญเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเปเบเปเบเบฑเบเบชเบดเบเปเบเบเบงเบเปเบเบดเปเบเบกเบฑเบเปเบเบฅเบฒเบเบฅเบฐเบญเบฝเบเปเบเบตเปเบกเปเบเบตเบกเปเบฅเบฐเบเปเบฒเปเบเบตเบเบเบฒเบเบเบปเปเบเบเปเบงเบฒเปเบฅเบฑเบเบเปเบญเบ: เบงเบดเบเบตเบเบฒเบ "เบญเบฐเบเบฐเบเบด" เบซเบผเบท RNGs เบเบตเปเบเบฒเบเปเบเบปเบฒเปเบเป, เปเบฅเบฐเปเบฅเบทเบญเบเบญเบฑเบเปเบ. เบเบดเปเบเปเบเบเบงเปเบฒเบเบฑเปเบ, เบเปเบฒเบเบฐเปเบเบปเปเบฒเปเบเปเบเบดเบเบเบงเบฒเบกเบเบดเบเปเบซเบฑเบเบเบตเปเบเบฑเบเปเบเปเบเบเบฑเบเบซเบผเบฒเบเบเบงเปเบฒเบซเบเบถเปเบเบเบฑเปเบเบเปเบฝเบงเบเบฑเบ "เบเบงเบฒเบกเบเบทเปเบชเบฑเบ" เบเบญเบเบเบงเบเปเบเบปเบฒ - เปเบซเปเบฅเบญเบเบเบดเบเปเบเบดเปเบเบงเปเบฒเบเบปเบเปเบเปเบฎเบฑเบเบเบตเปเปเบเปเบเบดเบเบเบฝเบเบเบฝเบเบเบฑเบเบเปเบฒเบเบฐเบเบฒเบเปเบเบงเปเบ.
เปเบเบเบเบฒเบเบเบฒเบเบชเบถเบเบชเบฒเบชเบฑเปเบเป เบซเบผเบท RNG เปเบกเปเบเบเบปเบงเบเบดเบเปเบฅเปเบง RNG
เบเปเบฒเบเปเบฒเบเบเบธเปเบเปเบเบตเบเบเบฑเบเปเบเบทเปเบญเบเบเปเบฒเปเบเบตเบเบเบปเบงเปเบฅเบเปเบเบเบชเบธเปเบก, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบชเบฒเบกเบฒเบเบเปเบฒเบกเปเบเบซเบฒเบเบฒเบ "เบเบฒเบเบเบปเบเบชเบญเบ".
เบเบปเบงเปเบฅเบ Random (RN) เปเบกเปเบเบฅเปเบฒเบเบฑเบเบเบญเบเบเบปเบงเปเบฅเบเบเบตเปเบชเปเบฒเบเบเบถเปเบเปเบเบเปเบเปเบเบฐเบเบงเบเบเบฒเบ Random (chaotic), เปเบซเบผเปเบเบเบญเบ entropy. เบเบฑเปเบเปเบกเปเบ, เบเบตเปเปเบกเปเบเบฅเปเบฒเบเบฑเบเบเบตเปเบญเบปเบเบเบฐเบเบญเบเบเบตเปเบเปเปเปเบเปเบฎเบฑเบเบเบฒเบเปเบเบทเปเบญเบกเบเปเปเบเบฑเบเปเบเบเบเบปเบเบซเบกเบฒเบเบเบฐเบเบดเบเบชเบฒเบเปเบเป - เบเบงเบเบกเบฑเบเบเปเปเบกเบตเบเบฒเบเบเบปเบงเบเบฑเบเบเบตเปเปเบเบฑเบเบชเบฒเปเบซเบเปเบฅเบฐเบเบปเบเบเบฐเบเบปเบ.
เบชเบดเปเบเบเบตเปเบชเปเบฒเบเบเบปเบงเปเบฅเบเปเบเบเบชเบธเปเบกเปเบกเปเบเปเบญเบตเปเบเบงเปเบฒเปเบเบทเปเบญเบเบชเปเบฒเบเบเบปเบงเปเบฅเบเปเบเบเบชเบธเปเบก (RNG). เบกเบฑเบเปเบเบดเปเบเบเบทเบงเปเบฒเบเบธเบเบชเบดเปเบเบเบธเบเบขเปเบฒเบเปเบกเปเบเบเบฐเบเบปเบก, เปเบเปเบเปเบฒเบเบงเบเปเบฎเบปเบฒเบเปเบฒเบเบเบฒเบเบเบดเบเบชเบฐเบเบตเปเบเบชเบนเปเบเบฒเบเบเบฐเบเบดเบเบฑเบ, เปเบเบเบงเบฒเบกเปเบเบฑเบเบเบดเบ, เบกเบฑเบเบเปเปเบเปเบฒเบเบเบฒเบเบซเบผเบฒเบเบเบตเปเบเบฐเบเบฐเบเบดเบเบฑเบเบเบญเบเปเบง algorithm เบชเปเบฒเบฅเบฑเบเบเบฒเบเบชเปเบฒเบเบฅเปเบฒเบเบฑเบเบเบฑเปเบเบเปเบฒเบง.
เปเบซเบเบเบปเบเปเบกเปเบเบขเบนเปเปเบเบเบฒเบเบเบฒเบเบเบงเบฒเบกเบงเบธเปเบเบงเบฒเบเบเบฝเบงเบเบฑเบเปเบเบญเบธเบเบฐเบเบญเบเปเบญเปเบฅเบฑเบเปเบเบฃเบเบดเบเบเบนเปเบเปเบฅเบดเปเบเบเบเบตเปเบเบฑเบเบชเบฐเปเบซเบก. เบเปเบฒเบเปเปเบกเบตเบกเบฑเบ, เบเบปเบงเปเบฅเบเปเบเบเบชเบธเปเบกเบขเบธเบเปเบเบปเบฒเปเบเบฑเบเปเบเบเบชเบธเปเบก, เปเบฅเบฐเปเบเบทเปเบญเบเบเปเบฒเปเบเบตเบเบเบญเบเบเบงเบเปเบเบปเบฒเบเบฒเบเปเบเบฑเบเบซเบเปเบฒเบเบตเปเบเปเบฒเบกเบฐเบเบฒเบเบญเบเบเบฒเบเปเบเปเบเบฝเบเบเบตเปเบเปเบฒเบเบปเบเบขเปเบฒเบเบเบฐเปเบเปเบ. เบชเปเบฒเบฅเบฑเบเบเบงเบฒเบกเบเปเบฝเบงเบเบฒเบเปเบเบเปเบฒเบเปเบญเบเบตเบเปเบฒเบเบงเบเบซเบเบถเปเบ, เบเบตเปเปเบกเปเบเบเบฑเบเบซเบฒเบเบตเปเบฎเปเบฒเบเปเบฎเบ (เบเบปเบงเบขเปเบฒเบ, เบเบฒเบเปเบเบปเปเบฒเบฅเบฐเบซเบฑเบเบฅเบฑเบ), เปเบเปเบชเปเบฒเบฅเบฑเบเบเบปเบเบญเบทเปเบเบกเบตเบเบฒเบเปเบเปเปเบเบเบตเปเบเบญเบกเบฎเบฑเบเบขเปเบฒเบเบชเบปเบกเบเบนเบ.
เบกเบฑเบเปเบเบฑเบเบชเบดเปเบเบเปเบฒเปเบเบฑเบเบเบตเปเบเบฐเบเบฝเบเบชเบนเบเบเบฒเบเบเบดเบเปเบฅเปเบเบตเปเบเบฐเบเบฑเบเบเบทเบเบกเบฒ, เปเบเบดเบเปเบกเปเบเบงเปเบฒเบเปเปเปเบกเปเบเบเบปเบงเปเบฅเบเปเบเบเบชเบธเปเบกเบขเปเบฒเบเปเบเปเบเบดเบ, เปเบเปเปเบเปเบเบฝเบเบเบตเปเบชเบธเบเปเบเบปเปเบฒเบเบตเปเปเบเบฑเบเปเบเปเบเป - เบญเบฑเบเบเบตเปเปเบญเบตเปเบเบงเปเบฒเบเบปเบงเปเบฅเบ pseudo-random (PRN). เบชเบนเบเบเบฒเบเบเบดเบเปเบฅเปเปเบเบเปเบฅเบฐเบเบตเบเบตเปเปเบญเบตเปเบเบงเปเบฒ pseudorandom generator (PRNG).
เบกเบตเบซเบผเบฒเบเบเบฒเบเปเบฅเบทเบญเบเปเบเบเบฒเบเบชเปเบฒเบ PRNG, เปเบเปเบเปเปเปเบเบเบตเปเบเบฐเบกเบตเบเบงเบฒเบกเบเปเบฝเบงเบเปเบญเบเบชเปเบฒเบฅเบฑเบเบเบธเบเบเบปเบ:
- เบเบงเบฒเบกเบเปเบญเบเบเบฒเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบฅเบตเปเบกเบเบปเปเบเปเบเบทเปเบญเบเบเบปเปเบ.
PRNG เบเปเปเบกเบตเปเบซเบผเปเบเบเบญเบ entropy, เบชเบฐเบเบฑเปเบเบกเบฑเบเบเปเบญเบเปเบเปเบฎเบฑเบเบเบฒเบเปเบซเปเบชเบฐเบเบฒเบเบฐเปเบเบทเปเบญเบเบเบปเปเบเบเปเบญเบเบเบตเปเบเบฐเบเปเบฒเปเบเป. เบกเบฑเบเบเบทเบเบเปเบฒเบเบปเบเปเบเบฑเบเบเบปเบงเปเบฅเบ (เบซเบผเบท vector) เปเบฅเบฐเปเบญเบตเปเบเบงเปเบฒเปเบกเบฑเบ (เปเบเปเบเปเบเบเบชเบธเปเบก). เปเบฅเบทเปเบญเบเป, เปเบเบทเปเบญเบเบเบฑเบเปเบกเบเบเบญเบเปเบเปเบเบเปเบเบตเบซเบผเบทเบเบปเบงเปเบฅเบเบเบฝเบเปเบเบปเปเบฒเบเบญเบเปเบงเบฅเบฒเบเบญเบเบฅเบฐเบเบปเบเปเบกเปเบเปเบเปเปเบเบฑเบเปเบกเบฑเบ.
- เบเบฒเบเบชเบทเบเบเบฑเบเบเบฒเบกเบฅเบณเบเบฑเบ.
PRNG เปเบกเปเบเบกเบตเบเบงเบฒเบกเบเบฑเปเบเปเบเบขเปเบฒเบเบชเบปเบกเบเบนเบ, เบเบฑเปเบเบเบฑเปเบเปเบกเบฑเบเบเบตเปเบฅเบฐเบเบธเปเบงเปเปเบเบฅเบฐเบซเบงเปเบฒเบเบเบฒเบเปเบฅเบตเปเบกเบเบปเปเบเปเบเบเบชเบฐเปเบเบฒเบฐเบเปเบฒเบเบปเบเบฅเปเบฒเบเบฑเบเบเบฑเบเบซเบกเบปเบเบเบญเบเบเบปเบงเปเบฅเบเปเบเบญเบฐเบเบฒเบเบปเบ. เบเบตเปเบซเบกเบฒเบเบเบงเบฒเบกเบงเปเบฒ PRNG เปเบเบเบเปเบฒเบเบซเบฒเบเบเบตเปเปเบฅเบตเปเบกเบเบปเปเบเบเปเบงเบเปเบเปเบเบเบฝเบงเบเบฑเบ (เปเบเปเบงเบฅเบฒเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบ, เปเบเปเบเบเบเบฒเบเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบ, เปเบเบญเบธเบเบฐเบเบญเบเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบ) เบเบฐเบชเปเบฒเบเบฅเปเบฒเบเบฑเบเบเบฝเบงเบเบฑเบ.
เบเบญเบเบเบฑเปเบเบเปเบฒเบเบเบฑเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเบฎเบนเปเบงเปเบฒเบเบฒเบเปเบเบเบขเบฒเบเบเบงเบฒเบกเปเบเบฑเบเปเบเปเบเปเบเบตเปเบกเบตเบฅเบฑเบเบชเบฐเบเบฐ PRNG - เบเบปเบงเปเบฅเบเบเบตเปเบกเบฑเบเบเบฐเบชเปเบฒเบเปเบฅเบฐเบเบงเบฒเบกเปเบเบฑเบเปเบเปเบเปเปเบเบงเปเบ. เบชเปเบงเบเบซเบผเบฒเบเบกเบฑเบ, เบเบตเปเปเบกเปเบเบเบฒเบเปเบเบเบขเบฒเบเปเบเบเบเบปเบเบเบฐเบเบดเบซเบผเบทเบเบฒเบเปเบเบเบขเบฒเบเปเบเบเบเบฝเบงเบเบฑเบ.
เบเบฒเบเปเบเปเบเบฐเบเบฒเบเบเบปเบเบเบฐเบเบด (เบเปเบฒเบ) เปเบฅเบฐเบเบฒเบเปเบเปเบเบฐเบเบฒเบเปเบเบฑเบเปเบญเบเบฐเบเบฒเบ (เบเบงเบฒ)
เปเบซเปเปเบงเบปเปเบฒเบงเปเบฒเบเบงเบเปเบฎเบปเบฒเบกเบตเบเบงเบฒเบกเบเบฒเบเบเบตเปเบเบธเบเบเบดเบเปเบฒเบเบตเปเบกเบต 24 เบเปเบฒเบ. เบเปเบฒเบเปเบฒเบเปเบเบเบกเบฑเบ, เบเบงเบฒเบกเปเบเบฑเบเปเบเปเบเปเบเบญเบเบเบฒเบเปเบเปเบฎเบฑเบเบซเบเบถเปเบเบเบฐเปเบเบปเปเบฒเบเบฑเบ 1/24 (เบเบทเบเบฑเบเบเบฑเบเบเบงเบฒเบกเปเบเบฑเบเปเบเปเบเปเบเบญเบเบเบฒเบเปเบเปเบฎเบฑเบเบเบปเบงเปเบฅเบเบญเบทเปเบ). เบเปเบฒเบเปเบฒเบเปเบฎเบฑเบเบเบฒเบเบเบดเปเบกเบซเบผเบฒเบเปเบเบฑเปเบเปเบฅเบฐเบเบฑเบเบเบถเบเบเบปเบเปเบเปเบฎเบฑเบ, เบเปเบฒเบเบเบฐเบชเบฑเบเปเบเบเปเบซเบฑเบเบงเปเบฒเปเบเบกเบเบฑเบเบซเบกเบปเบเบซเบผเบธเบเบฅเบปเบเปเบเบเบเบฐเบกเบฒเบเบเบงเบฒเบกเบเบตเปเบเบฝเบงเบเบฑเบ. เปเบเบเบเบทเปเบเบเบฒเบเปเบฅเปเบง, เบเบฒเบเปเบชเบเบเบตเบงเบดเบเบเบตเปเบชเบฒเบกเบฒเบเบเบทเบเบเบดเบเบฒเบฅเบฐเบเบฒเปเบเบฑเบ RNG เบเบตเปเบกเบตเบเบฒเบเปเบเปเบเบฐเบเบฒเบเปเบเบฑเบเปเบญเบเบฐเบเบฒเบ.
เบเบฐเปเบเบฑเบเปเบเบงเปเบเบเปเบฒเบซเบฒเบเบงเปเบฒเบเปเบฒเบเบเบดเปเบก 10 เบเบญเบ dice เปเบซเบผเบปเปเบฒเบเบตเปเปเบเปเบงเบฅเบฒเบเบฝเบงเบเบฑเบเปเบฅเบฐเบเบฑเบเบเบธเบเบเบฑเบเบซเบกเบปเบ? เบเบฐเบฎเบฑเบเบชเบฒเบเบงเบฒเบกเปเบเบฑเบเปเบญเบเบฐเบเบฒเบเบชเปเบฒเบฅเบฑเบเบกเบฑเบเบเป? เบเปเป. เบชเปเบงเบเบซเบผเบฒเบเบกเบฑเบ, เบเปเบฒเบเบงเบเปเบเบดเบเบเบฐเบขเบนเปเปเบเปเบเบฑเบ 125 เบเบธเบ, เบเบฑเปเบเปเบกเปเบ, เปเบเบดเบเบเบฒเบเบกเบนเบเบเปเบฒเบชเบฐเปเบฅเปเบ. เปเบฅเบฐเบเบฑเปเบเบเบฑเปเบ, เปเบเบดเบเปเบกเปเบเบงเปเบฒเบเปเบญเบเบเบตเปเบเบฐเบเบดเปเบก, เบเปเบฒเบเบชเบฒเบกเบฒเบเบเบฒเบเบเบฐเปเบเบเบปเบเปเบเปเบฎเบฑเบเปเบเบญเบฐเบเบฒเบเบปเบ.
เปเบซเบเบเบปเบเปเบกเปเบเบงเปเบฒเบกเบตเบเปเบฒเบเบงเบเบเบฐเบชเบปเบกเบเบฐเบชเบฒเบเบซเบผเบฒเบเบเบตเปเบชเบธเบเปเบเบทเปเบญเปเบซเปเปเบเปเบเบฐเปเบเบเบชเบฐเปเบฅเปเบ. เปเบเบเบฒเบเบกเบฑเบ, เบเบฒเบเบเบฐเบชเบปเบกเบซเบเปเบญเบ - เปเบฅเบฐ, เบเบฒเบกเบเบงเบฒเบกเปเบซเบกเบฒเบฐเบชเบปเบก, เบเบงเบฒเบกเปเบเบฑเบเปเบเปเบเปเบเบญเบเบเบฒเบเบชเบนเบเปเบชเบเบเปเปเบฒ. เบเปเบฒเบเปเปเบกเบนเบเบเบตเปเบเบทเบเบชเบฐเปเบเบเปเบเบฑเบเบเบฒเบ, เบกเบฑเบเบเบฐเปเบเบฑเบเบฎเบนเบเบเบปเบเบเบญเบเบเบฐเบเบดเปเบเบขเปเบฒเบเบเบฐเปเบเปเบ. เบเบฑเปเบเบเบฑเปเบ, เบเปเบงเบเบเบฒเบเบเบทเบเบเบฒเบง, เบฅเบฐเบเบปเบเบเบญเบ 10 dice เบชเบฒเบกเบฒเบเปเบญเบตเปเบเบงเปเบฒ RNG เบเบตเปเบกเบตเบเบฒเบเปเบเปเบเบฐเบเบฒเบเบเบปเบเบเบฐเบเบด.
เบเบปเบงเบขเปเบฒเบเบญเบตเบเบญเบฑเบเบซเบเบถเปเบ, เบเบฝเบเปเบเปเปเบงเบฅเบฒเบเบตเปเบขเบนเปเปเบเบดเบเบเบปเบ - เบเบดเบเปเบชเปเปเบเบปเปเบฒเบซเบกเบฒเบ. shooter เบเบฐเปเบเบฑเบ RNG เบเบตเปเบชเปเบฒเบเบเบนเปเบเบญเบเบเบปเบงเปเบฅเบ (x, y) เบเบตเปเบชเบฐเปเบเบเบขเบนเปเปเบเบเบฒเบ.
เบเบปเบเบฅเบปเบเปเบซเบฑเบเบเบตเบงเปเบฒเบเบฒเบเปเบฅเบทเบญเบเปเบเปเบเบทเปเบญเบเบเปเบฒเบเปเบกเปเบเปเบเปเบเบดเบเบเบฑเบเบเบตเบงเบดเบเบเบดเบ - เบเบตเปเปเบกเปเบ RNG เบเบตเปเบกเบตเบเบฒเบเปเบเบเบขเบฒเบเบเบปเบเบเบฐเบเบด. เปเบเปเบเปเบฒเบเปเบฒเบเบเปเบญเบเบเบฒเบเบเบฐเปเบเบเบเบฐเบเบฒเบเบฎเบนเบเบเบฒเบงเปเบเบเปเบญเบเบเปเบฒเบเบตเปเบกเบทเบเบกเบปเบง, เบเบฒเบเปเบฅเบทเบญเบเบเบตเปเปเบซเบกเบฒเบฐเบชเบปเบก, เบเบตเปเปเบเปเบฎเบฑเบเบเบฒเบเบเปเบฒเปเบเป RNG เบเบตเปเบกเบตเบเบฒเบเปเบเปเบเบฐเบเบฒเบเปเบเบฑเบเปเบญเบเบฐเบเบฒเบ, เปเบกเปเบเปเบซเบกเบฒเบฐเบชเบปเบกเบเบงเปเบฒ. เปเบเบเบเบปเปเบงเปเบ, เปเบฅเบทเบญเบเปเบเบทเปเบญเบเบเปเบฒเปเบเบตเบเปเบเบเปเบฒเปเบเบเบญเบตเบเบเบฒเบกเบงเบฝเบเบเบฒเบเบเบตเปเบกเบตเบขเบนเปเปเบเบกเบท.
เบเบญเบเบเบตเปเปเบซเปเปเบงเบปเปเบฒเบเปเบฝเบงเบเบฑเบ entropy เบเบญเบเบฅเปเบฒเบเบฑเบ 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, ...
เบเบปเบงเปเบฅเบเปเบซเบผเบปเปเบฒเบเบตเปเบขเบนเปเปเบ glance เบเปเบฒเบญเบดเบ Random เปเบเบงเปเบ? เปเบซเปเปเบฅเบตเปเบกเบเบปเปเบเปเบเบเบเบฒเบเบเบงเบเบชเบญเบเบเบฒเบเปเบเบเบขเบฒเบ.
เบกเบฑเบโเปเบเบดเปเบโเบเบทโเบงเปเบฒโเปเบเปโเบเบฐโเปเบเบฑเบโเปเบญโเบเบฐโเบเบฒเบโ, เปเบเปโเบเปเบฒโเบซเบฒเบโเบงเปเบฒโเบเปเบฒเบโเบญเปเบฒเบโเบฅเปเบฒโเบเบฑเบโเบเบญเบโเบชเบญเบโเบเบปเบงโเปเบฅเบโเปเบฅเบฐโเบเบตโเบเบงเบฒเบกโเบซเบกเบฒเบโเบงเปเบฒโเบกเบฑเบโเปเบเบฑเบโเบเบดโเบเบฑเบโเบขเบนเปโเปเบโเบเบปเบโ, เบเปเบฒเบโเปเบเปโเบฎเบฑเบโเบเบตเปโ:
เบฎเบนเบเปเบเบเบเบตเปเปเบซเบฑเบเปเบเปเบเบฑเบเปเบเบ. เปเบฅเบฐเบเบฑเบเบเบฑเปเบเปเบเปเบเปเปเบกเบนเบเปเบเบฅเปเบฒเบเบฑเบเบเบทเบเบเบฑเบเบฅเปเบฒเบเบฑเบเปเบเบเบฒเบเบเบตเปเปเบเปเบเบญเบ (เบเบฑเปเบเปเบกเปเบ, เบกเบฑเบเบกเบต entropy เบเปเปเบฒ), เบเบตเปเบชเบฒเบกเบฒเบเปเบฎเบฑเบเปเบซเปเปเบเบตเบ "เบเบงเบฒเบกเบฅเปเบฒเบญเบฝเบ". เบขเปเบฒเบเบซเบเปเบญเบ, 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, ...
เบเบธเบเบขเปเบฒเบเปเบเบดเปเบเบเบทเบงเปเบฒเบเบตเบขเบนเปเบเปเบญเบเบเบตเปเปเบกเปเปเบเปเบขเบนเปเปเบเบดเบเบเบปเบ:
เปเบซเปเปเบเบดเปเบเปเบเบเบฐเบฅเบดเบกเบฒเบ (เบญเปเบฒเบเบชเบฒเบกเบเบปเบงเปเบฅเบเปเบเปเบงเบฅเบฒเบเบฝเบง):
เปเบฅเบฐเบญเบตเบเปเบเบทเปเบญเบซเบเบถเปเบเบฎเบนเบเปเบเบ. เบกเบฑเบเปเบเบฑเบเปเบเบเปเปเปเบเปเบเบตเปเบเบฐเบชเปเบฒเบเบเบฒเบเปเบเบดเปเบเปเบซเบฑเบเปเบเบชเบตเปเบกเบดเบเบด. เปเบเปเบฎเบนเบเปเบเบเบเปเบฒเบเปเบชเบฒเบกเบฒเบเบกเบตเบขเบนเปเปเบเบเบฐเบซเบเบฒเบเบเบตเปเปเบฅเบฐเปเบเบเบฐเบซเบเบฒเบเปเบซเบเปเบเบงเปเบฒ.
เปเบเบเบฒเบเปเบเบปเปเบฒเบฅเบฐเบซเบฑเบเบฅเบฑเบ, เบเปเบญเบเบเบตเปเบเปเปเบเปเบฒเบเบปเบเบเบตเปเปเบเบฑเปเบกเบเบงเบเบเบตเปเบชเบธเบเปเบกเปเบเบเบทเบเบเบฑเบเบเบฑเบเปเบเปเปเบ PRNGs, เบชเบฐเบเบฒเบเบฐเบเบฒเบเบเบฑเปเบเบเปเบฒเบงเปเบกเปเบเบเปเปเบชเบฒเบกเบฒเบเบเบญเบกเบฎเบฑเบเปเบเป. เบเบฑเปเบเบเบฑเปเบ, เบชเบนเบเบเบฒเบเบเบดเบเปเบฅเปเบเบดเปเบชเบเปเบเปเบเบทเบเบเบฑเบเบเบฐเบเบฒเปเบเบทเปเบญเบเบฐเปเบกเบตเบเบเบธเบเบเบฐเบเบฒเบเบเบญเบเบเบงเบเปเบเบปเบฒ, เปเบเบดเปเบเบเบงเบเปเบฎเบปเบฒเบเบฐเบเปเปเปเบเบฐเบเปเบญเบเปเบเบเบฑเบเบเบธเบเบฑเบ. เบซเบปเบงเบเปเปเปเบกเปเบเบเบงเปเบฒเบเบเบงเบฒเบเปเบฅเบฐเบชเบปเบกเบเบงเบเปเบเปเบฎเบฑเบเบเบปเบเบเบงเบฒเบกเปเบเบเบเปเบฒเบเบซเบฒเบ.
เบเบฒเบเบเบปเบเบชเบญเบ
เบเปเบฒเบเบงเบเปเบฎเบปเบฒเบเปเปเบฎเบนเปเบเบฒเบเบขเปเบฒเบเปเบเปเบเบญเบ, เปเบฅเปเบงเปเบฎเบฑเบเปเบเบงเปเบเบเบฑเบเบกเบฑเบ? เบกเบฑเบเบเบธเปเบกเบเปเบฒเบเบตเปเบเบฐเบเปเบฒเบกเบเบฐเปเบปเบเปเบเปเบเป เบเปเบฒเปเบเบปเปเบฒเบเปเปเบฎเบนเปเบงเปเบฒเปเบเบเบฐเบฅเบฒเบเบญเบเบญเบฑเบเปเบเบญเบฐเบเบธเบเบฒเบเปเบซเปเบกเบฑเบ? เบเบปเบเบชเบฐเบเปเบญเบเบญเบฒเบเบเบฐเปเบเบเบเปเบฒเบเบเบฑเบ.
เปเบเบฑเปเบเบเบฝเบงเบเบฑเบเบชเปเบฒเบฅเบฑเบเบเบฒเบ Random notorious เปเบ 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 algorithm, เบเบถเปเบเบซเบกเบฒเบเบเบงเบฒเบกเบงเปเบฒเบญเบตเบเปเบเบทเปเบญเบซเบเบถเปเบเบเปเบฒเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเบฅเปเบเปเบฒเบเบฒเบเปเบเบเบขเบฒเบเปเบเบฑเบเปเบญเบเบฐเบเบฒเบ).
เปเบเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบ, เบเบปเบเปเบเปเบฎเบฑเบเบเบตเปเบเบฒเบเบงเปเบฒเบเบฐเบเบทเบเบเบฐเบเบดเบเบฑเบเบเบฒเบกเบเบตเปเบฅเบฐเบเบธเปเบงเปเปเบเปเบญเบเบฐเบชเบฒเบ.
เบงเบดเบเบตเบเบฒเบ
เบเบงเบเปเบฎเบปเบฒเปเบเปเบเบฝเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเบเบฐเบซเบเบฒเบเบเปเบญเบเบเบตเปเบชเปเบฒเบเบฅเปเบฒเบเบฑเบเบเบญเบเบเบปเบงเปเบฅเบเปเบเบเบชเบธเปเบกเปเบเบเปเบเปเปเบเปเบฅเบฐเบงเบดเบเบตเบเบฒเบเบเบตเปเบเปเบฒเบชเบฐเปเบซเบเบตเปเบฅเบฐเบเบฑเบเบเบถเบเบเบปเบเปเบเปเบฎเบฑเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบธเบเปเบเปเบเบเบทเปเบกเบญเบตเบ.
เบเบงเบฒเบกเบเบฒเบงเบเบญเบเปเบเปเบฅเบฐเบฅเปเบฒเบเบฑเบเปเบกเปเบ 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
ะ ะตะฐะปะธะทะฐัะธั
เบเบงเบเปเบฎเบปเบฒเบกเบตเบงเบดเบเบตเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบเบซเบผเบฒเบเปเบเบทเปเบญเบชเปเบฒเบเบเบปเบงเปเบฅเบเปเบเบเบชเบธเปเบก. เบชเปเบฒเบฅเบฑเบเปเบเปเบฅเบฐเบเบปเบ, เบเบงเบเปเบฎเบปเบฒเบเบฐเบเบฝเบเบซเปเบญเบเบฎเบฝเบ wrapper เปเบเบเบเปเบฒเบเบซเบฒเบ, เปเบเบดเปเบเบเบงเบเบชเบฐเบซเบเบญเบ:
- เบเบงเบฒเบกเปเบเบฑเบเปเบเปเบเปเบเบตเปเบเบฐเบเปเบฒเบเบปเบเบเบญเบเปเบเบเบเบญเบเบเปเบฒ [min/max). เบเบฐเบเบทเบเบเบฑเปเบเบเปเบฒเบเปเบฒเบเบเบปเบงเบชเปเบฒเบ.
- เบงเบดเบเบตเบเบฒเบเบเบฑเบเบเบทเบ MF. เปเบซเปเปเบฅเบทเบญเบ float เปเบเบฑเบเบเบฐเปเบเบ, เบเปเบญเบเบงเปเบฒเบกเบฑเบเปเบกเปเบเบเบปเปเบงเปเบเบซเบผเบฒเบ.
- เบเบทเปเบเบญเบเบงเบดเบเบตเบเบฒเบเบเบฐเบฅเบดเบเบชเปเบฒเบฅเบฑเบเปเบเบทเปเบญเบเบซเบกเบฒเบเบเบปเบเปเบเปเบฎเบฑเบ. เปเบเบทเปเบญเบเบงเบฒเบกเบชเบฐเบเบงเบ, เบเบงเบเปเบฎเบปเบฒเบเบฐเบเบฑเบเบเบทเบเปเบเบฑเบเบเปเบฒเบเบทเปเปเบเบฑเบกเบเบญเบเบเบฑเปเบเบฎเบฝเบ + เบเบทเปเบเบญเบเบงเบดเบเบตเบเบฒเบเบเบตเปเปเบเปเปเบเบเบฒเบเบชเปเบฒเบ MF.
เบเปเบฒเบญเบดเบ, เปเบซเปเบเบฐเบเบฒเบเบชเบดเปเบเบเบตเปเบเปเปเบกเบตเบเบปเบงเบเบปเบเบเบตเปเบเบฐเบเบทเบเบชเบฐเปเบเบเปเบเบเบเบฒเบเปเบเปเบเบญเบ IRandomGenerator:
namespace RandomDistribution
{
public interface IRandomGenerator
{
string Name { get; }
float Generate();
}
}
เบเบฒเบเบเบฑเบเบเบฑเปเบเบเบฐเบเบดเบเบฑเบ System.Random.Next()
เบงเบดเบเบตเบเบฒเบเบเบตเปเบเปเบงเบเปเบซเปเบเปเบฒเบเบชเบฒเบกเบฒเบเบเปเบฒเบเบปเบเบเบญเบเปเบเบเบเบญเบเบเปเบฒ, เปเบเปเบกเบฑเบเบเบฐเบชเบปเปเบเบเบทเบเบเปเบฒเบเบงเบเบเปเบฒเบเบงเบ, เปเบเป float เปเบกเปเบเบเปเบฒเปเบเบฑเบ. เบเปเบฒเบเบเบฝเบเปเบเปเบชเบฒเบกเบฒเบเบเบตเบเบงเบฒเบกเบเปเบฒเบเบงเบ integer เปเบเบฑเบ 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) + เบโ.
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 static class เบเปเบงเบเปเบซเปเบเปเบฒเบเบชเบฒเบกเบฒเบเบเปเบฒเบเบปเบเบเบญเบเปเบเบเบเบญเบเบเปเบฒเปเบฅเบฐเบชเบปเปเบเบเบทเบเบเบฐเปเบเบ 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()
เบงเบดเบเบตเบเบฒเบ NextFloat() เบเบญเบ Unity.Mathematics.Random class เบชเบปเปเบเบเบทเบเบเบธเบเบฅเบญเบเบเบญเบเบเบฐเปเบเบ float เปเบฅเบฐเบญเบฐเบเบธเบเบฒเบเปเบซเปเบเปเบฒเบเบฅเบฐเบเบธเบเปเบงเบเบเบญเบเบเปเบฒ. เบเบฒเบ nuance เบเบฝเบเปเบเปเปเบกเปเบเบงเปเบฒเปเบเปเบฅเบฐเบเบปเบงเบขเปเบฒเบเบเบญเบ 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 เปเบกเปเบเบเบฝเบกเบเปเบญเบก. เบเปเปเปเบ, เบเปเบฒเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเบชเปเบฒเบเบฅเปเบฒเบเบฑเบเปเบฅเบฐเบเบฑเบเบเบถเบเบเบธเบเบเปเปเบกเบนเบเบเบปเบเปเบเปเบฎเบฑเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบธเบเปเบเปเบ. เปเบเบทเปเบญเปเบฎเบฑเบเบชเบดเปเบเบเบตเป, เบเบงเบเปเบฎเบปเบฒเบเบฐเบชเปเบฒเบ scene เปเบฅเบฐ script MainController เบเบฐเบซเบเบฒเบเบเปเบญเบเปเบ Unity, เปเบเบดเปเบเบเบฐเปเบฎเบฑเบเบงเบฝเบเบเบตเปเบเปเบฒเปเบเบฑเบเบเบฑเบเบซเบกเบปเบเปเบฅเบฐเปเบเปเบงเบฅเบฒเบเบฝเบงเบเบฑเบเบกเบตเบเบงเบฒเบกเบฎเบฑเบเบเบดเบเบเบญเบเบเปเปเบเบฒเบเปเบเปเบเบญเบเบเบฑเบ UI.
เปเบซเปเบเปเบฒเบเบปเบเบเบฐเบซเบเบฒเบเบเบญเบเบเบธเบเบเปเปเบกเบนเบเปเบฅเบฐเบเบญเบเปเบเบเบเบญเบเบเปเบฒ MF, เปเบฅเบฐเบเบฑเบเปเบเปเบฎเบฑเบเบงเบดเบเบตเบเบฒเบเบเบตเปเบชเบปเปเบเบเบทเบ array เบเบญเบเปเบเบทเปเบญเบเบเปเบฒเปเบเบตเบเปเบเบเปเบฒเบเบตเปเบเปเบฒเบซเบเบปเบเบเปเบฒเปเบฅเบฐเบเปเบญเบกเบเบตเปเบเบฐเปเบฎเบฑเบเบงเบฝเบ.
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();
}
}
...
}
}
เปเบซเบผเปเบเบเปเปเบกเบนเบเบเบญเบเปเบเบเบเบฒเบเปเบกเปเบเบขเบนเปเบเบตเป
ะ ะตะทัะปััะฐัั
เบเปเปเบกเบตเบชเบดเปเบเบกเบฐเบซเบฑเบเบชเบฐเบเบฑเบเปเบเบตเบเบเบถเปเบ. เบชเบดเปเบเบเบตเปเบเบงเบเปเบเบปเบฒเบเบฒเบเบซเบงเบฑเบเปเบกเปเบเบชเบดเปเบเบเบตเปเบเบงเบเปเบเบปเบฒเปเบเปเบฎเบฑเบ - เปเบเบเบธเบเบเปเบฅเบฐเบเบต, เบเบฒเบเปเบเบเบขเบฒเบเปเบเบดเบเปเบกเปเบเบงเปเบฒเปเบเบเบเปเปเบกเบตเบเบฒเบ hint เบเบญเบ conspiracies. เบเปเบฒโเบเบฐโเปเบเบปเปเบฒโเบเปเปโเปเบเปโเปเบซเบฑเบโเบเบธเบโเปเบโเบเบฒเบโเบงเบฒเบโเบเบฒโเบโเปเบเบโเบเปเบฒเบโเบซเบฒเบโเบชเปเบฒโเบฅเบฑเบโเปเบงโเบเบต - เบเบงเบโเปเบเบปเบฒโเปเบเบปเปเบฒโเบเบฑเบโเบซเบกเบปเบโเบชเบฐโเปเบเบโเปเบซเปโเปเบซเบฑเบโเบเบฐโเบกเบฒเบโเบเบปเบโเปเบเปโเบฎเบฑเบโเบเบฝเบงโเบเบฑเบโ.
เบเบงเบฒเบกเปเบเบฑเบเบเบดเบเปเบกเปเบ:
เบเบฒเบเบชเบฐเปเบเบเบเบฒเบเบเบญเบเบฅเบณเบเบฑเบเบขเบนเปเปเบเบดเบเบเบปเบเบเบฒเบเบงเบดเบเบตเบเบฒเบเบเบฐเบฅเบดเบเบเบฑเบเปเบปเบเบซเปเบฒ:
เปเบฅเบฐเบเบฒเบเปเบเบดเปเบเปเบซเบฑเบเปเบ 3D. เบเปเบญเบเบเบฐเบเปเบญเบเปเบซเปเบเบปเบเปเบเปเบฎเบฑเบเบเบญเบ System.Random.Next() เปเบเบปเปเบฒเบเบฑเปเบเปเบเบทเปเบญเบเปเปเปเบซเปเบกเบตเปเบเบทเปเบญเปเบเบเบตเปเบเบทเบเบฑเบ.
เปเบฅเบทเปเบญเบเบเบตเปเบเบญเบเปเบเบเบฒเบเปเบเบฐเบเปเบฒเบเปเบฝเบงเบเบฑเบเบเบฒเบเปเบเปเบเบฐเบเบฒเบเบเบปเบเบเบฐเบเบดเบเบญเบ UnityEngine.Random เบเปเปเปเบเปเปเบฎเบฑเบเปเบฅเบทเปเบกเบเบทเบเบเบปเบงเบเบญเบเบกเบฑเบเปเบญเบ: เบเปเปเบงเปเบฒเบเบฐเปเบเบฑเบเบเบงเบฒเบกเบเบดเบเบเบฒเบเปเบเปเบเบทเปเบญเบเบเบปเปเบ, เบซเบผเบทเบเบฒเบเบชเบดเปเบเบเบฒเบเบขเปเบฒเบเปเบเปเบกเบตเบเบฒเบเบเปเบฝเบเปเบเบเบเบฑเบเบเบฑเปเบเปเบเปเปเบเบทเปเบญเบเบเบฑเบ. เปเบเปเบเบญเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเปเบเปเปเบเบงเปเบฒ.
เปเบซเบผเปเบเบเปเปเบกเบนเบ: www.habr.com