BlessRNG เจœเจพเจ‚ เจจเจฟเจฐเจชเฉฑเจ–เจคเจพ เจฒเจˆ RNG เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐเจจเจพ

BlessRNG เจœเจพเจ‚ เจจเจฟเจฐเจชเฉฑเจ–เจคเจพ เจฒเจˆ RNG เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐเจจเจพ

เจ—เฉ‡เจฎ เจกเจฟเจตเฉˆเจฒเจชเจฎเฉˆเจ‚เจŸ เจตเจฟเฉฑเจš, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ…เจ•เจธเจฐ เจฌเฉ‡เจคเจฐเจคเฉ€เจฌเจคเจพ เจจเจพเจฒ เจ•เฉเจ เจœเฉ‹เฉœเจจ เจฆเฉ€ เจœเจผเจฐเฉ‚เจฐเจค เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ: เจเจ•เจคเจพ เจฆเจพ เจ‡เจธเจฆเฉ‡ เจฒเจˆ เจ†เจชเจฃเจพ เจฐเฉˆเจ‚เจกเจฎ เจนเฉˆ, เจ…เจคเฉ‡ เจ‡เจธเจฆเฉ‡ เจธเจฎเจพเจจเจพเจ‚เจคเจฐ เจตเจฟเฉฑเจš เจธเจฟเจธเจŸเจฎ เจนเฉˆเฅค เจ‡เฉฑเจ• เจตเจพเจฐ, เจ‡เฉฑเจ• เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ 'เจคเฉ‡, เจฎเฉˆเจจเฉ‚เฉฐ เจ‡เจน เจชเฉเจฐเจญเจพเจต เจฎเจฟเจฒเจฟเจ† เจ•เจฟ เจฆเฉ‹เจตเฉ‡เจ‚ เจตเฉฑเจ–เจฐเฉ‡ เจขเฉฐเจ— เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเจจ (เจนเจพเจฒเจพเจ‚เจ•เจฟ เจ‰เจนเจจเจพเจ‚ เจฆเฉ€ เจตเฉฐเจก เจนเฉ‹เจฃเฉ€ เจšเจพเจนเฉ€เจฆเฉ€ เจนเฉˆ).

เจซเจฟเจฐ เจ‰เจน เจตเฉ‡เจฐเจตเจฟเจ†เจ‚ เจตเจฟเฉฑเจš เจจเจนเฉ€เจ‚ เจ—เจ - เจ‡เจน เจ•เจพเจซเจผเฉ€ เจธเฉ€ เจ•เจฟ System.Random เจตเจฟเฉฑเจš เจคเจฌเจฆเฉ€เจฒเฉ€ เจจเฉ‡ เจธเจพเจฐเฉ€เจ†เจ‚ เจธเจฎเฉฑเจธเจฟเจ†เจตเจพเจ‚ เจจเฉ‚เฉฐ เจ เฉ€เจ• เจ•เจฐ เจฆเจฟเฉฑเจคเจพเฅค เจนเฉเจฃ เจ…เจธเฉ€เจ‚ เจ‡เจธ เจจเฉ‚เฉฐ เจนเฉ‹เจฐ เจตเจฟเจธเจคเจพเจฐ เจตเจฟเฉฑเจš เจฆเฉ‡เจ–เจฃ เจ…เจคเฉ‡ เจฅเฉ‹เฉœเฉ€ เจ–เฉ‹เจœ เจ•เจฐเจจ เจฆเจพ เจซเฉˆเจธเจฒเจพ เจ•เฉ€เจคเจพ: "เจชเฉฑเจ–เจชเจพเจคเฉ€" เจœเจพเจ‚ เจ…เจจเฉเจฎเจพเจจเจค RNGs เจ•เจฟเฉฐเจจเฉ‡ เจนเจจ, เจ…เจคเฉ‡ เจ•เจฟเจนเฉœเจพ เจšเฉเจฃเจจเจพ เจนเฉˆเฅค เจ‡เจธ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ, เจฎเฉˆเจ‚ เจ‰เจนเจจเจพเจ‚ เจฆเฉ€ "เจ‡เจฎเจพเจจเจฆเจพเจฐเฉ€" เจฌเจพเจฐเฉ‡ เจ‡เฉฑเจ• เจคเฉ‹เจ‚ เจตเฉฑเจง เจตเจพเจฐ เจตเจฟเจฐเฉ‹เจงเฉ€ เจตเจฟเจšเจพเจฐ เจธเฉเจฃเฉ‡ เจนเจจ - เจ†เจ“ เจ‡เจน เจชเจคเจพ เจฒเจ—เจพเจ‰เจฃ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐเฉ€เจ เจ•เจฟ เจ…เจธเจฒ เจจเจคเฉ€เจœเฉ‡ เจ˜เฉ‹เจธเจผเจฟเจค เจจเจคเฉ€เจœเจฟเจ†เจ‚ เจจเจพเจฒ เจ•เจฟเจตเฉ‡เจ‚ เจคเฉเจฒเจจเจพ เจ•เจฐเจฆเฉ‡ เจนเจจเฅค

เจธเฉฐเจ–เฉ‡เจช เจตเจฟเจฆเจฟเจ…เจ• เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎ เจœเจพเจ‚ RNG เจ…เจธเจฒ เจตเจฟเฉฑเจš RNG เจนเฉˆ

เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจคเฉ‹เจ‚ เจนเฉ€ เจฌเฉ‡เจคเจฐเจคเฉ€เจฌ เจจเฉฐเจฌเจฐ เจœเจจเจฐเฉ‡เจŸเจฐเจพเจ‚ เจคเฉ‹เจ‚ เจœเจพเจฃเฉ‚ เจนเฉ‹, เจคเจพเจ‚ เจคเฉเจธเฉ€เจ‚ เจคเฉเจฐเฉฐเจค "เจŸเฉˆเจธเจŸเจฟเฉฐเจ—" เจญเจพเจ— 'เจคเฉ‡ เจœเจพ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค

เจฌเฉ‡เจคเจฐเจคเฉ€เจฌ เจธเฉฐเจ–เจฟเจ†เจตเจพเจ‚ (RN) เจ•เฉเจ เจฌเฉ‡เจคเจฐเจคเฉ€เจฌ (เจ…เจฐเจพเจœเจ•) เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจคเจฟเจ†เจฐ เจ•เฉ€เจคเฉ‡ เจ—เจ เจธเฉฐเจ–เจฟเจ†เจตเจพเจ‚ เจฆเจพ เจ‡เฉฑเจ• เจ•เฉเจฐเจฎ เจนเฉˆ, เจœเฉ‹ เจ•เจฟ เจเจจเจŸเฉเจฐเฉ‹เจชเฉ€ เจฆเจพ เจ‡เฉฑเจ• เจธเจฐเฉ‹เจค เจนเฉˆเฅค เจญเจพเจต, เจ‡เจน เจ‡เฉฑเจ• เจ…เจœเจฟเจนเจพ เจ•เฉเจฐเจฎ เจนเฉˆ เจœเจฟเจธ เจฆเฉ‡ เจคเฉฑเจค เจ•เจฟเจธเฉ‡ เจตเฉ€ เจ—เจฃเจฟเจค เจฆเฉ‡ เจจเจฟเจฏเจฎ เจฆเฉเจ†เจฐเจพ เจ†เจชเจธ เจตเจฟเฉฑเจš เจจเจนเฉ€เจ‚ เจœเฉเฉœเฉ‡ เจนเฉ‹เจ เจนเจจ - เจ‰เจนเจจเจพเจ‚ เจฆเจพ เจ•เฉ‹เจˆ เจ•เจพเจฐเจจ-เจ…เจคเฉ‡-เจชเฉเจฐเจญเจพเจต เจธเจฌเฉฐเจง เจจเจนเฉ€เจ‚ เจนเฉˆเฅค

เจœเฉ‹ เจฌเฉ‡เจคเจฐเจคเฉ€เจฌ เจจเฉฐเจฌเจฐ เจฌเจฃเจพเจ‰เจ‚เจฆเจพ เจนเฉˆ เจ‰เจธเจจเฉ‚เฉฐ เจฌเฉ‡เจคเจฐเจคเฉ€เจฌ เจจเฉฐเจฌเจฐ เจœเจจเจฐเฉ‡เจŸเจฐ (RNG) เจ•เจฟเจนเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค เจ‡เจน เจœเจพเจชเจฆเจพ เจนเฉˆ เจ•เจฟ เจนเจฐ เจšเฉ€เจœเจผ เจฎเฉเจขเจฒเฉ€ เจนเฉˆ, เจชเจฐ เจœเฉ‡ เจ…เจธเฉ€เจ‚ เจธเจฟเจงเจพเจ‚เจค เจคเฉ‹เจ‚ เจ…เจญเจฟเจ†เจธ เจตเฉฑเจฒ เจตเจงเจฆเฉ‡ เจนเจพเจ‚, เจคเจพเจ‚ เจ…เจธเจฒ เจตเจฟเฉฑเจš เจ…เจœเจฟเจนเจพ เจ•เฉเจฐเจฎ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ เจ‡เฉฑเจ• เจธเจพเจซเจŸเจตเฉ‡เจ…เจฐ เจเจฒเจ—เฉ‹เจฐเจฟเจฆเจฎ เจจเฉ‚เฉฐ เจฒเจพเจ—เฉ‚ เจ•เจฐเจจเจพ เจ‡เฉฐเจจเจพ เจธเฉŒเจ–เจพ เจจเจนเฉ€เจ‚ เจนเฉˆเฅค

เจ•เจพเจฐเจจ เจ†เจงเฉเจจเจฟเจ• เจ–เจชเจคเจ•เจพเจฐ เจ‡เจฒเฉˆเจ•เจŸเฉเจฐเฉ‹เจจเจฟเจ•เจธ เจตเจฟเฉฑเจš เจ‰เจธเฉ‡ เจนเฉ€ เจนเจซเฉœเจพ-เจฆเจซเฉœเฉ€ เจฆเฉ€ เจ…เจฃเจนเฉ‹เจ‚เจฆ เจตเจฟเฉฑเจš เจนเฉˆเฅค เจ‡เจธ เจคเฉ‹เจ‚ เจฌเจฟเจจเจพเจ‚, เจฌเฉ‡เจคเจฐเจคเฉ€เจฌ เจธเฉฐเจ–เจฟเจ†เจตเจพเจ‚ เจฌเฉ‡เจคเจฐเจคเฉ€เจฌ เจนเฉ‹เจฃเฉ€เจ†เจ‚ เจฌเฉฐเจฆ เจนเฉ‹ เจœเจพเจ‚เจฆเฉ€เจ†เจ‚ เจนเจจ, เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจฆเจพ เจœเจจเจฐเฉ‡เจŸเจฐ เจธเจชเฉฑเจธเจผเจŸ เจคเฉŒเจฐ 'เจคเฉ‡ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจ†เจฐเจ—เฉ‚เจฎเฉˆเจ‚เจŸเจพเจ‚ เจฆเฉ‡ เจ‡เฉฑเจ• เจ†เจฎ เจซเฉฐเจ•เจธเจผเจจ เจตเจฟเฉฑเจš เจฌเจฆเจฒ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค เจ†เจˆเจŸเฉ€ เจ–เฉ‡เจคเจฐ เจตเจฟเฉฑเจš เจ•เจˆ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจฒเจˆ, เจ‡เจน เจ‡เฉฑเจ• เจ—เฉฐเจญเฉ€เจฐ เจธเจฎเฉฑเจธเจฟเจ† เจนเฉˆ (เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจ•เฉเจฐเจฟเจชเจŸเฉ‹เจ—เฉเจฐเจพเจซเฉ€), เจชเจฐ เจฆเฉ‚เจœเจฟเจ†เจ‚ เจฒเจˆ เจ‡เฉฑเจ• เจชเฉ‚เจฐเฉ€ เจคเจฐเฉเจนเจพเจ‚ เจธเจตเฉ€เจ•เจพเจฐเจฏเฉ‹เจ— เจนเฉฑเจฒ เจนเฉˆเฅค

เจ‡เฉฑเจ• เจเจฒเจ—เฉ‹เจฐเจฟเจฆเจฎ เจฒเจฟเจ–เจฃเจพ เจœเจผเจฐเฉ‚เจฐเฉ€ เจนเฉˆ เจœเฉ‹ เจตเจพเจชเจธ เจ†เจตเฉ‡, เจญเจพเจตเฉ‡เจ‚ เจ•เจฟ เจ…เจธเจฒ เจตเจฟเฉฑเจš เจฌเฉ‡เจคเจฐเจคเฉ€เจฌเฉ‡ เจจเฉฐเจฌเจฐ เจจเจนเฉ€เจ‚, เจชเจฐ เจœเจฟเฉฐเจจเจพ เจธเฉฐเจญเจต เจนเฉ‹ เจธเจ•เฉ‡ เจ‰เจนเจจเจพเจ‚ เจฆเฉ‡ เจจเฉ‡เฉœเฉ‡ - เจ…เจ–เฉŒเจคเฉ€ เจธเฉ‚เจกเฉ‹-เจฐเฉˆเจ‚เจกเจฎ เจจเฉฐเจฌเจฐ (PRN)เฅค เจ‡เจธ เจ•เฉ‡เจธ เจตเจฟเฉฑเจš เจเจฒเจ—เฉ‹เจฐเจฟเจฆเจฎ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจธเฉ‚เจกเฉ‹เจฐเฉˆเจ‚เจกเจฎ เจจเฉฐเจฌเจฐ เจœเจจเจฐเฉ‡เจŸเจฐ (PRNG) เจ•เจฟเจนเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค

PRNG เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ เจ•เจˆ เจตเจฟเจ•เจฒเจช เจนเจจ, เจชเจฐ เจนเฉ‡เจ เจพเจ‚ เจฆเจฟเฉฑเจคเฉ‡ เจนเจฐเฉ‡เจ• เจฒเจˆ เจขเฉเจ•เจตเฉ‡เจ‚ เจนเฉ‹เจฃเจ—เฉ‡:

  1. เจธเจผเฉเจฐเฉ‚เจ†เจคเฉ€ เจธเจผเฉเจฐเฉ‚เจ†เจค เจฆเฉ€ เจฒเฉ‹เฉœ.

    PRNG เจ•เฉ‹เจฒ เจเจ‚เจŸเจฐเฉŒเจชเฉ€ เจฆเจพ เจ•เฉ‹เจˆ เจธเจฐเฉ‹เจค เจจเจนเฉ€เจ‚ เจนเฉˆ, เจ‡เจธเจฒเจˆ เจ‡เจธเจจเฉ‚เฉฐ เจตเจฐเจคเจฃ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจ‡เฉฑเจ• เจธเจผเฉเจฐเฉ‚เจ†เจคเฉ€ เจ…เจตเจธเจฅเจพ เจฆเจฟเฉฑเจคเฉ€ เจœเจพเจฃเฉ€ เจšเจพเจนเฉ€เจฆเฉ€ เจนเฉˆเฅค เจ‡เจน เจ‡เฉฑเจ• เจธเฉฐเจ–เจฟเจ† (เจœเจพเจ‚ เจตเฉˆเจ•เจŸเจฐ) เจฆเฉ‡ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจจเจฟเจฐเจงเจพเจฐเจค เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ เจ…เจคเฉ‡ เจ‡เจธเจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจฌเฉ€เจœ (เจฌเฉ‡เจคเจฐเจคเฉ€เจฌ เจฌเฉ€เจœ) เจ•เจฟเจนเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค เจ…เจ•เจธเจฐ, เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฐ เจ•เจฒเจพเจ• เจ•เจพเจŠเจ‚เจŸเจฐ เจœเจพเจ‚ เจธเจฟเจธเจŸเจฎ เจธเจฎเฉ‡เจ‚ เจฆเฉ‡ เจธเฉฐเจ–เจฟเจ†เจคเจฎเจ• เจฌเจฐเจพเจฌเจฐ เจฆเจพ เจฌเฉ€เจœ เจตเจœเฉ‹เจ‚ เจตเจฐเจคเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค

  2. เจ•เฉเจฐเจฎ เจชเฉเจฐเจœเจจเจจเจฏเฉ‹เจ—เจคเจพ.

    PRNG เจชเฉ‚เจฐเฉ€ เจคเจฐเฉเจนเจพเจ‚ เจจเจฟเจฐเจฃเจพเจ‡เจ• เจนเฉˆ, เจ‡เจธเจฒเจˆ เจธเจผเฉเจฐเฉ‚เจ†เจคเฉ€เจ•เจฐเจฃ เจฆเฉŒเจฐเจพเจจ เจจเจฟเจฐเจงเจพเจฐเจค เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจฌเฉ€เจœ เจธเฉฐเจ–เจฟเจ†เจตเจพเจ‚ เจฆเฉ‡ เจชเฉ‚เจฐเฉ‡ เจญเจตเจฟเฉฑเจ– เจฆเฉ‡ เจ•เฉเจฐเจฎ เจจเฉ‚เฉฐ เจตเจฟเจฒเฉฑเจ–เจฃ เจคเฉŒเจฐ 'เจคเฉ‡ เจจเจฟเจฐเจงเจพเจฐเจค เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจ‡เจธเจฆเจพ เจฎเจคเจฒเจฌ เจนเฉˆ เจ•เจฟ เจ‡เฉฑเจ•เฉ‹ เจฌเฉ€เจœ เจจเจพเจฒ เจธเจผเฉเจฐเฉ‚ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจ‡เฉฑเจ• เจตเฉฑเจ–เจฐเจพ PRNG (เจตเฉฑเจ–-เจตเฉฑเจ– เจธเจฎเจฟเจ†เจ‚ 'เจคเฉ‡, เจตเฉฑเจ–-เจตเฉฑเจ– เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจพเจ‚ เจตเจฟเฉฑเจš, เจตเฉฑเจ–-เจตเฉฑเจ– เจกเจฟเจตเจพเจˆเจธเจพเจ‚ 'เจคเฉ‡) เจ‡เฉฑเจ•เฉ‹ เจ•เฉเจฐเจฎ เจจเฉ‚เฉฐ เจคเจฟเจ†เจฐ เจ•เจฐเฉ‡เจ—เจพเฅค

เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เจน เจตเฉ€ เจœเจพเจฃเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ เจ•เจฟ PRNG เจจเฉ‚เฉฐ เจฆเจฐเจธเจพเจ‰เจ‚เจฆเฉ€ เจธเฉฐเจญเจพเจตเจจเจพ เจตเฉฐเจก - เจ‡เจน เจ•เจฟเจนเฉœเฉ€เจ†เจ‚ เจธเฉฐเจ–เจฟเจ†เจตเจพเจ‚ เจชเฉˆเจฆเจพ เจ•เจฐเฉ‡เจ—เจพ เจ…เจคเฉ‡ เจ•เจฟเจนเฉœเฉ€ เจธเฉฐเจญเจพเจตเจจเจพ เจจเจพเจฒเฅค เจ…เจ•เจธเจฐ เจ‡เจน เจœเจพเจ‚ เจคเจพเจ‚ เจ‡เฉฑเจ• เจ†เจฎ เจตเฉฐเจก เจœเจพเจ‚ เจ‡เฉฑเจ• เจธเจฎเจพเจจ เจตเฉฐเจก เจนเฉเฉฐเจฆเฉ€ เจนเฉˆเฅค
BlessRNG เจœเจพเจ‚ เจจเจฟเจฐเจชเฉฑเจ–เจคเจพ เจฒเจˆ RNG เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐเจจเจพ
เจธเจงเจพเจฐเจฃ เจตเฉฐเจก (เจ–เฉฑเจฌเฉ‡) เจ…เจคเฉ‡ เจ‡เจ•เจธเจพเจฐ เจตเฉฐเจก (เจธเฉฑเจœเฉ‡)

เจฎเฉฐเจจ เจฒเจ“ เจ•เจฟ เจธเจพเจกเฉ‡ เจ•เฉ‹เจฒ 24 เจชเจพเจธเจฟเจ†เจ‚ เจจเจพเจฒ เจ‡เฉฑเจ• เจจเจฟเจฐเจชเฉฑเจ– เจฎเจฐเจจ เจนเฉˆ. เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจŸเฉŒเจธ เจ•เจฐเจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจ‡เฉฑเจ• เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจฆเฉ€ เจธเฉฐเจญเจพเจตเจจเจพ 1/24 เจฆเฉ‡ เจฌเจฐเจพเจฌเจฐ เจนเฉ‹เจตเฉ‡เจ—เฉ€ (เจ•เฉ‹เจˆ เจนเฉ‹เจฐ เจจเฉฐเจฌเจฐ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจฆเฉ€ เจธเฉฐเจญเจพเจตเจจเจพ เจฆเฉ‡ เจฌเจฐเจพเจฌเจฐ)เฅค เจœเฉ‡ เจคเฉเจธเฉ€เจ‚ เจฌเจนเฉเจค เจธเจพเจฐเฉ‡ เจฅเฉเจฐเฉ‹เจ… เจฌเจฃเจพเจ‰เจ‚เจฆเฉ‡ เจนเฉ‹ เจ…เจคเฉ‡ เจจเจคเฉ€เจœเจฟเจ†เจ‚ เจจเฉ‚เฉฐ เจฐเจฟเจ•เจพเจฐเจก เจ•เจฐเจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจคเฉเจธเฉ€เจ‚ เจตเฉ‡เจ–เฉ‹เจ—เฉ‡ เจ•เจฟ เจธเจพเจฐเฉ‡ เจ•เจฟเจจเจพเจฐเฉ‡ เจฒเจ—เจญเจ— เจ‡เฉฑเจ•เฉ‹ เจฌเจพเจฐเฉฐเจฌเจพเจฐเจคเจพ เจจเจพเจฒ เจกเจฟเฉฑเจ—เจฆเฉ‡ เจนเจจเฅค เจœเจผเจฐเฉ‚เจฐเฉ€ เจคเฉŒเจฐ 'เจคเฉ‡, เจ‡เจธ เจกเจพเจˆ เจจเฉ‚เฉฐ เจ‡เจ•เจธเจพเจฐ เจตเฉฐเจก เจฆเฉ‡ เจจเจพเจฒ เจ‡เฉฑเจ• RNG เจฎเฉฐเจจเจฟเจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค

เจ‰เจฆเฉ‹เจ‚ เจ•เฉ€ เจœเฉ‡ เจคเฉเจธเฉ€เจ‚ เจ‡เจนเจจเจพเจ‚ เจตเจฟเฉฑเจšเฉ‹เจ‚ 10 เจชเจพเจธเจฟเจ†เจ‚ เจจเฉ‚เฉฐ เจ‡เฉฑเจ•เฉ‹ เจตเจพเจฐ เจธเฉเฉฑเจŸ เจฆเจฟเฉฐเจฆเฉ‡ เจนเฉ‹ เจ…เจคเฉ‡ เจ•เฉเฉฑเจฒ เจ…เฉฐเจ• เจ—เจฟเจฃเจฆเฉ‡ เจนเฉ‹? เจ•เฉ€ เจ‡เจธ เจฒเจˆ เจ‡เจ•เจธเจพเจฐเจคเจพ เจฌเจฃเจพเจˆ เจฐเฉฑเจ–เฉ€ เจœเจพเจตเฉ‡เจ—เฉ€? เจจเฉฐ. เจฌเจนเฉเจคเฉ‡ เจ…เจ•เจธเจฐ, เจฐเจ•เจฎ 125 เจชเฉเจ†เจ‡เฉฐเจŸ เจฆเฉ‡ เจจเฉ‡เฉœเฉ‡ เจนเฉ‹เจตเฉ‡เจ—เฉ€, เจฏเจพเจจเฉ€, เจ•เฉเจ เจ”เจธเจค เจฎเฉเฉฑเจฒ เจคเฉฑเจ•. เจ…เจคเฉ‡ เจจเจคเฉ€เจœเฉ‡ เจตเจœเฉ‹เจ‚, เจฅเจฐเฉ‹เจ… เจ•เจฐเจจ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจตเฉ€, เจคเฉเจธเฉ€เจ‚ เจญเจตเจฟเฉฑเจ– เจฆเฉ‡ เจจเจคเฉ€เจœเฉ‡ เจฆเจพ เจ…เฉฐเจฆเจพเจœเจผเจพ เจฒเจ—เจพ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค

เจ•เจพเจฐเจจ เจ‡เจน เจนเฉˆ เจ•เจฟ เจ”เจธเจค เจธเจ•เฉ‹เจฐ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจฒเจˆ เจธเจญ เจคเฉ‹เจ‚ เจตเฉฑเจง เจธเฉฐเจœเฉ‹เจ— เจนเจจเฅค เจ‡เจธ เจคเฉ‹เจ‚ เจœเจฟเฉฐเจจเจพ เจฆเฉ‚เจฐ, เจ˜เฉฑเจŸ เจธเฉฐเจœเฉ‹เจ— - เจ…เจคเฉ‡, เจ‡เจธเจฆเฉ‡ เจ…เจจเฉเจธเจพเจฐ, เจจเฉเจ•เจธเจพเจจ เจฆเฉ€ เจธเฉฐเจญเจพเจตเจจเจพ เจ˜เฉฑเจŸ เจนเฉ‹เจตเฉ‡เจ—เฉ€เฅค เจœเฉ‡เจ•เจฐ เจ‡เจน เจกเฉ‡เจŸเจพ เจ•เจฒเจชเจจเจพ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจคเจพเจ‚ เจ‡เจน เจ…เจธเจชเจธเจผเจŸ เจคเฉŒเจฐ 'เจคเฉ‡ เจ˜เฉฐเจŸเฉ€ เจฆเฉ€ เจธเจผเจ•เจฒ เจตเจฐเจ—เจพ เจนเฉ‹เจตเฉ‡เจ—เจพเฅค เจ‡เจธ เจฒเจˆ, เจ•เฉเจ เจ–เจฟเฉฑเจš เจฆเฉ‡ เจจเจพเจฒ, 10 เจกเจพเจˆเจธ เจฆเฉ€ เจ‡เฉฑเจ• เจชเฉเจฐเจฃเจพเจฒเฉ€ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจ†เจฎ เจตเฉฐเจก เจฆเฉ‡ เจจเจพเจฒ เจ‡เฉฑเจ• RNG เจ•เจฟเจนเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค

เจ‡เฉฑเจ• เจนเฉ‹เจฐ เจ‰เจฆเจพเจนเจฐเจจ, เจธเจฟเจฐเจซ เจ‡เจธ เจตเจพเจฐ เจ‡เฉฑเจ• เจœเจนเจพเจœเจผ 'เจคเฉ‡ - เจ‡เฉฑเจ• เจจเจฟเจธเจผเจพเจจเจพ 'เจคเฉ‡ เจ—เฉ‹เจฒเฉ€เจฌเจพเจฐเฉ€. เจจเจฟเจธเจผเจพเจจเฉ‡เจฌเจพเจœเจผ เจ‡เฉฑเจ• RNG เจนเฉ‹เจตเฉ‡เจ—เจพ เจœเฉ‹ เจ—เฉเจฐเจพเจซ 'เจคเฉ‡ เจชเฉเจฐเจฆเจฐเจธเจผเจฟเจค เจธเฉฐเจ–เจฟเจ†เจตเจพเจ‚ (x, y) เจฆเจพ เจ‡เฉฑเจ• เจœเฉ‹เฉœเจพ เจคเจฟเจ†เจฐ เจ•เจฐเจฆเจพ เจนเฉˆเฅค
BlessRNG เจœเจพเจ‚ เจจเจฟเจฐเจชเฉฑเจ–เจคเจพ เจฒเจˆ RNG เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐเจจเจพ
เจธเจนเจฟเจฎเจค เจนเฉ‹เจตเฉ‹ เจ•เจฟ เจ–เฉฑเจฌเฉ‡ เจชเจพเจธเฉ‡ เจฆเจพ เจตเจฟเจ•เจฒเจช เจ…เจธเจฒ เจœเฉ€เจตเจจ เจฆเฉ‡ เจจเฉ‡เฉœเฉ‡ เจนเฉˆ - เจ‡เจน เจ‡เฉฑเจ• เจ†เจฎ เจตเฉฐเจก เจฆเฉ‡ เจจเจพเจฒ เจ‡เฉฑเจ• 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, ...

เจชเจนเจฟเจฒเฉ€ เจจเจœเจผเจฐ เจตเจฟเฉฑเจš เจ‡เจน เจจเฉฐเจฌเจฐ เจ•เจฟเฉฐเจจเฉ‡ เจฌเฉ‡เจคเจฐเจคเฉ€เจฌ เจนเจจ? เจ†เจ‰ เจตเฉฐเจก เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐเจ•เฉ‡ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเฉ€เจเฅค
BlessRNG เจœเจพเจ‚ เจจเจฟเจฐเจชเฉฑเจ–เจคเจพ เจฒเจˆ RNG เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐเจจเจพ
เจ‡เจน เจฏเฉ‚เจจเฉ€เจซเจพเจฐเจฎ เจฆเฉ‡ เจจเฉ‡เฉœเฉ‡ เจœเจพเจชเจฆเจพ เจนเฉˆ, เจชเจฐ เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจฆเฉ‹ เจธเฉฐเจ–เจฟเจ†เจตเจพเจ‚ เจฆเฉ‡ เจ•เฉเจฐเจฎ เจจเฉ‚เฉฐ เจชเฉœเฉเจนเจฆเฉ‡ เจนเฉ‹ เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจœเจนเจพเจœเจผ 'เจคเฉ‡ เจ•เฉ‹เจ†เจฐเจกเฉ€เจจเฉ‡เจŸเจธ เจตเจœเฉ‹เจ‚ เจตเจฟเจ†เจ–เจฟเจ† เจ•เจฐเจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจคเฉเจธเฉ€เจ‚ เจ‡เจน เจชเฉเจฐเจพเจชเจค เจ•เจฐเฉ‹เจ—เฉ‡:
BlessRNG เจœเจพเจ‚ เจจเจฟเจฐเจชเฉฑเจ–เจคเจพ เจฒเจˆ RNG เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐเจจเจพ
เจชเฉˆเจŸเจฐเจจ เจธเจชเฉฑเจธเจผเจŸ เจคเฉŒเจฐ 'เจคเฉ‡ เจฆเจฟเจ–เจพเจˆ เจฆเจฟเฉฐเจฆเฉ‡ เจนเจจ. เจ…เจคเฉ‡ เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ•เฉเจฐเจฎ เจตเจฟเฉฑเจš เจกเฉ‡เจŸเจพ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจ–เจพเจธ เจคเจฐเฉ€เจ•เฉ‡ เจจเจพเจฒ เจ†เจฐเจกเจฐ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ (เจ…เจฐเจฅเจพเจค, เจ‡เจธ เจตเจฟเฉฑเจš เจ˜เฉฑเจŸ เจเจ‚เจŸเจฐเฉ‹เจชเฉ€ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ), เจ‡เจน เจ‰เจธ เจฌเจนเฉเจค "เจชเฉฑเจ–เจชเจพเจค" เจจเฉ‚เฉฐ เจœเจจเจฎ เจฆเฉ‡ เจธเจ•เจฆเจพ เจนเฉˆเฅค เจ˜เฉฑเจŸเฉ‹-เจ˜เฉฑเจŸ, เจ…เจœเจฟเจนเจพ 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, ...

เจœเจนเจพเจœเจผ เจตเจฟเจš เจตเฉ€ เจ‡เฉฑเจฅเฉ‡ เจธเจญ เจ•เฉเจ เจ เฉ€เจ• เจœเจพเจชเจฆเจพ เจนเฉˆ:
BlessRNG เจœเจพเจ‚ เจจเจฟเจฐเจชเฉฑเจ–เจคเจพ เจฒเจˆ RNG เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐเจจเจพ
เจ†เจ‰ เจตเจพเจฒเฉ€เจ…เจฎ เจตเจฟเฉฑเจš เจตเฉ‡เจ–เฉ€เจ (เจ‡เฉฑเจ• เจธเจฎเฉ‡เจ‚ เจตเจฟเฉฑเจš เจคเจฟเฉฐเจจ เจจเฉฐเจฌเจฐ เจชเฉœเฉเจนเฉ‹):
BlessRNG เจœเจพเจ‚ เจจเจฟเจฐเจชเฉฑเจ–เจคเจพ เจฒเจˆ RNG เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐเจจเจพ
เจ…เจคเฉ‡ เจฆเฉเจฌเจพเจฐเจพ เจชเฉˆเจŸเจฐเจจ. เจšเจพเจฐ เจ…เจฏเจพเจฎเจพเจ‚ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจตเจฟเจœเจผเฉ‚เจ…เจฒเจพเจˆเจœเจผเฉ‡เจธเจผเจจ เจฌเจฃเจพเจ‰เจฃเจพ เจนเฉเจฃ เจธเฉฐเจญเจต เจจเจนเฉ€เจ‚ เจนเฉˆเฅค เจชเจฐ เจชเฉˆเจŸเจฐเจจ เจ‡เจธ เจ†เจฏเจพเจฎ เจ…เจคเฉ‡ เจตเฉฑเจกเฉ‡ เจฒเฉ‹เจ•เจพเจ‚ 'เจคเฉ‡ เจฎเฉŒเจœเฉ‚เจฆ เจนเฉ‹ เจธเจ•เจฆเฉ‡ เจนเจจเฅค

เจ•เฉเจฐเจฟเจชเจŸเฉ‹เจ—เฉเจฐเจพเจซเฉ€ เจตเจฟเฉฑเจš, เจœเจฟเฉฑเจฅเฉ‡ PRNGs 'เจคเฉ‡ เจธเจญ เจคเฉ‹เจ‚ เจธเจ–เจผเจค เจฒเฉ‹เฉœเจพเจ‚ เจฒเจ—เจพเจˆเจ†เจ‚ เจ—เจˆเจ†เจ‚ เจนเจจ, เจ…เจœเจฟเจนเฉ€ เจธเจฅเจฟเจคเฉ€ เจธเจชเฉฑเจธเจผเจŸ เจคเฉŒเจฐ 'เจคเฉ‡ เจ…เจธเจตเฉ€เจ•เจพเจฐเจจเจฏเฉ‹เจ— เจนเฉˆเฅค เจ‡เจธ เจฒเจˆ, เจ‰เจนเจจเจพเจ‚ เจฆเฉ€ เจ—เฉเจฃเจตเฉฑเจคเจพ เจฆเจพ เจฎเฉเจฒเจพเจ‚เจ•เจฃ เจ•เจฐเจจ เจฒเจˆ เจตเจฟเจธเจผเฉ‡เจธเจผ เจเจฒเจ—เฉ‹เจฐเจฟเจฆเจฎ เจตเจฟเจ•เจธเจฟเจค เจ•เฉ€เจคเฉ‡ เจ—เจ เจนเจจ, เจœเจฟเจธ เจจเฉ‚เฉฐ เจ…เจธเฉ€เจ‚ เจนเฉเจฃ เจจเจนเฉ€เจ‚ เจ›เฉ‚เจนเจพเจ‚เจ—เฉ‡เฅค เจตเจฟเจธเจผเจพ เจตเจฟเจ†เจชเจ• เจนเฉˆ เจ…เจคเฉ‡ เจ‡เฉฑเจ• เจตเฉฑเจ–เจฐเฉ‡ เจฒเฉ‡เจ– เจฆเจพ เจนเฉฑเจ•เจฆเจพเจฐ เจนเฉˆเฅค

เจŸเฉˆเจธเจŸเจฟเฉฐเจ—

เจœเฉ‡ เจ…เจธเฉ€เจ‚ เจฏเจ•เฉ€เจจเฉ€ เจคเฉŒเจฐ 'เจคเฉ‡ เจ•เฉเจ เจจเจนเฉ€เจ‚ เจœเจพเจฃเจฆเฉ‡, เจคเจพเจ‚ เจ‡เจธ เจจเจพเจฒ เจ•เจฟเจตเฉ‡เจ‚ เจ•เฉฐเจฎ เจ•เจฐเจจเจพ เจนเฉˆ? เจ•เฉ€ เจ‡เจน เจธเฉœเจ• เจชเจพเจฐ เจ•เจฐเจจ เจฆเฉ‡ เจฏเฉ‹เจ— เจนเฉˆ เจœเฉ‡เจ•เจฐ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจจเจนเฉ€เจ‚ เจชเจคเจพ เจ•เจฟ เจ•เจฟเจนเฉœเฉ€ เจŸเฉเจฐเฉˆเจซเจฟเจ• เจฒเจพเจˆเจŸ เจ‡เจธเจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจฆเจฟเฉฐเจฆเฉ€ เจนเฉˆ? เจจเจคเฉ€เจœเฉ‡ เจตเฉฑเจ–เจฐเฉ‡ เจนเฉ‹ เจธเจ•เจฆเฉ‡ เจนเจจเฅค

เจเจ•เจคเจพ เจตเจฟเฉฑเจš เจฌเจฆเจจเจพเจฎ เจฌเฉ‡เจคเจฐเจคเฉ€เจฌเจคเจพ เจฒเจˆ เจตเฉ€ เจ‡เจนเฉ€ เจนเฉˆ. เจ‡เจน เจšเฉฐเจ—เจพ เจนเฉˆ เจœเฉ‡เจ•เจฐ เจฆเจธเจคเจพเจตเฉ‡เจœเจผ เจฒเฉ‹เฉœเฉ€เจ‚เจฆเฉ‡ เจตเฉ‡เจฐเจตเจฟเจ†เจ‚ เจจเฉ‚เฉฐ เจฆเจฐเจธเจพเจ‰เจ‚เจฆเฉ‡ เจนเจจ, เจชเจฐ เจฒเฉ‡เจ– เจฆเฉ‡ เจธเจผเฉเจฐเฉ‚ เจตเจฟเฉฑเจš เจฆเฉฑเจธเฉ€ เจ—เจˆ เจ•เจนเจพเจฃเฉ€ เจฒเฉ‹เฉœเฉ€เจ‚เจฆเฉ‡ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจฆเฉ€ เจ˜เจพเจŸ เจฆเฉ‡ เจ•เจพเจฐเจจ เจฌเจฟเจฒเจ•เฉเจฒ เจตเจพเจชเจฐเฉ€ เจนเฉˆเฅค

เจ…เจคเฉ‡ เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจจเจนเฉ€เจ‚ เจœเจพเจฃเจฆเฉ‡ เจ•เจฟ เจ‡เจน เจŸเฉ‚เจฒ เจ•เจฟเจตเฉ‡เจ‚ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ, เจคเจพเจ‚ เจคเฉเจธเฉ€เจ‚ เจ‡เจธเจฆเฉ€ เจธเจนเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจฆเฉ‡ เจฏเฉ‹เจ— เจจเจนเฉ€เจ‚ เจนเฉ‹เจตเฉ‹เจ—เฉ‡เฅค เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡, เจ…เฉฐเจค เจตเจฟเฉฑเจš เจ˜เฉฑเจŸเฉ‹ เจ˜เฉฑเจŸ เจตเฉฐเจก เจฌเจพเจฐเฉ‡ เจ‡เจน เจฏเจ•เฉ€เจจเฉ€ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ เจ‡เฉฑเจ• เจชเฉเจฐเจฏเฉ‹เจ— เจฆเฉ€ เจœเจพเจ‚เจš เจ…เจคเฉ‡ เจธเฉฐเจšเจพเจฒเจจ เจ•เจฐเจจ เจฆเจพ เจธเจฎเจพเจ‚ เจ† เจ—เจฟเจ† เจนเฉˆเฅค

เจนเฉฑเจฒ เจธเจงเจพเจฐเจจ เจ…เจคเฉ‡ เจชเฉเจฐเจญเจพเจตเจธเจผเจพเจฒเฉ€ เจธเฉ€ - เจ…เฉฐเจ•เฉœเฉ‡ เจ‡เจ•เฉฑเจ เฉ‡ เจ•เจฐเฉ‹, เจ‰เจฆเฉ‡เจธเจผ เจกเฉ‡เจŸเจพ เจชเฉเจฐเจพเจชเจค เจ•เจฐเฉ‹ เจ…เจคเฉ‡ เจจเจคเฉ€เจœเจฟเจ†เจ‚ เจจเฉ‚เฉฐ เจฆเฉ‡เจ–เฉ‹เฅค

เจ…เจงเจฟเจเจจ เจฆเจพ เจตเจฟเจธเจผเจพ

เจเจ•เจคเจพ เจตเจฟเฉฑเจš เจฌเฉ‡เจคเจฐเจคเฉ€เจฌ เจจเฉฐเจฌเจฐ เจฌเจฃเจพเจ‰เจฃ เจฆเฉ‡ เจ•เจˆ เจคเจฐเฉ€เจ•เฉ‡ เจนเจจ - เจ…เจธเฉ€เจ‚ เจชเฉฐเจœ เจฆเฉ€ เจœเจพเจ‚เจš เจ•เฉ€เจคเฉ€ เจนเฉˆเฅค

  1. System.Random.Next()เฅค เจฎเฉเฉฑเจฒเจพเจ‚ เจฆเฉ€ เจ‡เฉฑเจ• เจฆเจฟเฉฑเจคเฉ€ เจ—เจˆ เจฐเฉ‡เจ‚เจœ เจตเจฟเฉฑเจš เจชเฉ‚เจฐเจจ เจ…เฉฐเจ• เจคเจฟเจ†เจฐ เจ•เจฐเจฆเจพ เจนเฉˆเฅค
  2. System.Random.NextDouble()เฅค [0; 1).
  3. เจฏเฉ‚เจจเจฟเจŸเฉ€ เจ‡เฉฐเจœเจจเฅคเจฐเฉˆเจ‚เจกเจฎเฅคเจฐเฉ‡เจ‚เจœ()เฅค เจฎเฉเฉฑเจฒเจพเจ‚ เจฆเฉ€ เจ‡เฉฑเจ• เจฆเจฟเฉฑเจคเฉ€ เจ—เจˆ เจฐเฉ‡เจ‚เจœ เจตเจฟเฉฑเจš เจธเจฟเฉฐเจ—เจฒ เจธเจผเฉเฉฑเจงเจคเจพ เจธเฉฐเจ–เจฟเจ†เจตเจพเจ‚ (เจซเจฒเฉ‹เจŸเจธ) เจฌเจฃเจพเจ‰เจ‚เจฆเจพ เจนเฉˆเฅค
  4. เจฏเฉ‚เจจเจฟเจŸเฉ€ เจ‡เฉฐเจœเจจเฅคเจฐเฉˆเจ‚เจกเจฎเฅคเจฎเฉเฉฑเจฒเฅค [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
  • เจ›เฉเจชเจพเจ“
    โ€” เจฏเฉ‚เจจเจฟเจŸเฉ€ v2018.3.14f1, เจฌเจฟเจฒเจก เจชเฉเจฐเจคเฉ€ เจกเจฟเจตเจพเจˆเจธ, เจฎเฉ‹เจจเฉ‹, .NET เจธเจŸเฉˆเจ‚เจกเจฐเจก 2.0
  • เจ†เจˆเจ“เจเจธ
    โ€” เจฏเฉ‚เจจเจฟเจŸเฉ€ v2018.3.14f1, เจฌเจฟเจฒเจก เจชเฉเจฐเจคเฉ€ เจกเจฟเจตเจพเจˆเจธ, il2cpp, .NET เจธเจŸเฉˆเจ‚เจกเจฐเจก 2.0

ะ ะตะฐะปะธะทะฐั†ะธั

เจธเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจฌเฉ‡เจคเจฐเจคเฉ€เจฌ เจจเฉฐเจฌเจฐ เจฌเจฃเจพเจ‰เจฃ เจฆเฉ‡ เจ•เจˆ เจตเฉฑเจ–-เจตเฉฑเจ– เจคเจฐเฉ€เจ•เฉ‡ เจนเจจเฅค เจ‰เจนเจจเจพเจ‚ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจนเจฐเฉ‡เจ• เจฒเจˆ, เจ…เจธเฉ€เจ‚ เจ‡เฉฑเจ• เจตเฉฑเจ–เจฐเฉ€ เจฐเฉˆเจชเจฐ เจ•เจฒเจพเจธ เจฒเจฟเจ–เจพเจ‚เจ—เฉ‡, เจœเฉ‹ เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจจเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ:

  1. เจฎเฉเฉฑเจฒเจพเจ‚ เจฆเฉ€ เจฐเฉ‡เจ‚เจœ เจจเฉ‚เฉฐ เจธเฉˆเฉฑเจŸ เจ•เจฐเจจ เจฆเฉ€ เจธเฉฐเจญเจพเจตเจจเจพ [เจฎเจฟเจจ/เจ…เจงเจฟเจ•เจคเจฎ)เฅค เจ•เฉฐเจธเจŸเจฐเจ•เจŸเจฐ เจฐเจพเจนเฉ€เจ‚ เจธเฉˆเฉฑเจŸ เจ•เฉ€เจคเจพ เจœเจพเจตเฉ‡เจ—เจพเฅค
  2. MF เจจเฉ‚เฉฐ เจตเจพเจชเจธ เจ•เจฐเจจ เจฆเจพ เจคเจฐเฉ€เจ•เจพเฅค เจ†เจ‰ เจซเจฒเฉ‹เจŸ เจจเฉ‚เฉฐ เจ•เจฟเจธเจฎ เจฆเฉ‡ เจคเฉŒเจฐ 'เจคเฉ‡ เจšเฉเจฃเฉ€เจ, เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ‡เจน เจตเจงเฉ‡เจฐเฉ‡ เจ†เจฎ เจนเฉˆเฅค
  3. เจจเจคเฉ€เจœเจฟเจ†เจ‚ เจจเฉ‚เฉฐ เจฎเจพเจฐเจ• เจ•เจฐเจจ เจฒเจˆ เจชเฉ€เฉœเฉเจนเฉ€ เจตเจฟเจงเฉ€ เจฆเจพ เจจเจพเจฎเฅค เจธเจนเฉ‚เจฒเจค เจฒเจˆ, เจ…เจธเฉ€เจ‚ เจ•เจฒเจพเจธ เจฆเจพ เจชเฉ‚เจฐเจพ เจจเจพเจฎ + MF เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ เจตเจฐเจคเฉ€ เจ—เจˆ เจตเจฟเจงเฉ€ เจฆเจพ เจจเจพเจฎ เจฎเฉเฉฑเจฒ เจฆเฉ‡ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจตเจพเจชเจธ เจ•เจฐเจพเจ‚เจ—เฉ‡เฅค

เจชเจนเจฟเจฒเจพเจ‚, เจ†เจ“ เจ‡เฉฑเจ• เจเจฌเจธเจŸเจฐเฉˆเจ•เจธเจผเจจ เจฆเจพ เจเจฒเจพเจจ เจ•เจฐเฉ€เจ เจœเฉ‹ 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). เจ‡เจธเจจเฉ‚เฉฐ เจ•เฉฐเจธเจŸเจฐเจ•เจŸเจฐ เจตเจฟเฉฑเจš เจฆเจฐเจธเจพเจ เจ—เจ เจ‡เฉฑเจ• เจ‰เฉฑเจคเฉ‡ เจชเฉเจฐเจœเฉˆเจ•เจŸ เจ•เจฐเจจ เจฒเจˆ, เจ…เจธเฉ€เจ‚ เจธเจงเจพเจฐเจจ เจ…เฉฐเจ•เจ—เจฃเจฟเจค เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚: X * (เจ…เจงเจฟเจ•เจคเจฎ โˆ’ เจฎเจฟเฉฐเจŸ) + เจฎเจฟเฉฐเจŸเฅค

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() เจตเจฟเจงเฉ€ เจซเจฒเฉ‹เจŸเจฟเฉฐเจ— เจ•เจฟเจธเจฎ เจฆเฉ‡ เจซเจฒเฉ‹เจŸเจฟเฉฐเจ— เจชเฉเจ†เจ‡เฉฐเจŸ เจจเฉ‚เฉฐ เจตเจพเจชเจธ เจ•เจฐเจฆเฉ€ เจนเฉˆ เจ…เจคเฉ‡ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจฎเฉเฉฑเจฒเจพเจ‚ เจฆเฉ€ เจ‡เฉฑเจ• เจธเฉ€เจฎเจพ เจจเจฟเจฐเจงเจพเจฐเจค เจ•เจฐเจจ เจฆเฉ€ เจ†เจ—เจฟเจ† เจฆเจฟเฉฐเจฆเฉ€ เจนเฉˆเฅค เจธเจฟเจฐเจซ เจธเฉ‚เจ–เจฎเจคเจพ เจ‡เจน เจนเฉˆ เจ•เจฟ เจเจ•เจคเจพ. เจ—เจฃเจฟเจค. เจฐเฉˆเจ‚เจกเจฎ เจฆเฉ€ เจนเจฐ เจ‡เฉฑเจ• เจ‰เจฆเจพเจนเจฐเจฃ เจจเฉ‚เฉฐ เจ•เฉเจ เจฌเฉ€เจœ เจจเจพเจฒ เจ…เจฐเฉฐเจญ เจ•เจฐเจจเจพ เจชเจเจ—เจพ - เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจ…เจธเฉ€เจ‚ เจฆเฉเจนเจฐเจพเจ‰เจฃ เจตเจพเจฒเฉ‡ เจ•เฉเจฐเจฎ เจชเฉˆเจฆเจพ เจ•เจฐเจจ เจคเฉ‹เจ‚ เจฌเจšเจพเจ‚เจ—เฉ‡เฅค

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 เจฆเฉ‡ เจ•เจˆ เจฒเจพเจ—เฉ‚เจ•เจฐเจจ เจคเจฟเจ†เจฐ เจนเจจเฅค เจ…เฉฑเจ—เฉ‡, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ•เฉเจฐเจฎ เจฌเจฃเจพเจ‰เจฃ เจ…เจคเฉ‡ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจฒเจˆ เจจเจคเฉ€เจœเฉ‡ เจตเจพเจฒเฉ‡ เจกเฉ‡เจŸเจพเจธเฉˆเจŸ เจจเฉ‚เฉฐ เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค เจ…เจœเจฟเจนเจพ เจ•เจฐเจจ เจฒเจˆ, เจ…เจธเฉ€เจ‚ เจฏเฉ‚เจจเจฟเจŸเฉ€ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจธเฉ€เจจ เจ…เจคเฉ‡ เจ‡เฉฑเจ• เจ›เฉ‹เจŸเฉ€ เจฎเฉ‡เจจเจ•เฉฐเจŸเจฐเฉ‹เจฒเจฐ เจธเจ•เฉเจฐเจฟเจชเจŸ เจฌเจฃเจพเจตเจพเจ‚เจ—เฉ‡, เจœเฉ‹ เจธเจพเจฐเฉ‡ เจœเจผเจฐเฉ‚เจฐเฉ€ เจ•เฉฐเจฎ เจ•เจฐเฉ‡เจ—เฉ€ เจ…เจคเฉ‡ เจ‰เจธเฉ‡ เจธเจฎเฉ‡เจ‚ 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();
            }
        }

        ...
    }
}

เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจฆเฉ‡ เจธเจฐเฉ‹เจค 'เจคเฉ‡ เจนเจจ GitLab.

ะ ะตะทัƒะปัŒั‚ะฐั‚ั‹

เจ•เฉ‹เจˆ เจšเจฎเจคเจ•เจพเจฐ เจจเจนเฉ€เจ‚ เจนเฉ‹เจ‡เจ†เฅค เจ‰เจนเจจเจพเจ‚ เจจเฉ‡ เจœเฉ‹ เจ‰เจฎเฉ€เจฆ เจ•เฉ€เจคเฉ€ เจธเฉ€ เจ‰เจนเฉ€ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจฎเจฟเจฒเจฟเจ† - เจธเจพเจฐเฉ‡ เจฎเจพเจฎเจฒเจฟเจ†เจ‚ เจตเจฟเฉฑเจš, เจธเจพเจœเจผเจฟเจธเจผเจพเจ‚ เจฆเฉ‡ เจธเฉฐเจ•เฉ‡เจค เจฆเฉ‡ เจฌเจฟเจจเจพเจ‚ เจ‡เฉฑเจ• เจฌเจฐเจพเจฌเจฐ เจตเฉฐเจก. เจฎเฉˆเจจเฉ‚เฉฐ เจชเจฒเฉ‡เจŸเจซเจพเจฐเจฎเจพเจ‚ เจฒเจˆ เจตเฉฑเจ–เจฐเฉ‡ เจ—เฉเจฐเจพเจซ เจฒเจ—เจพเจ‰เจฃ เจฆเจพ เจฌเจฟเฉฐเจฆเฉ‚ เจจเจนเฉ€เจ‚ เจฆเจฟเจ–เจพเจˆ เจฆเจฟเฉฐเจฆเจพ - เจ‰เจน เจธเจพเจฐเฉ‡ เจฒเจ—เจญเจ— เจ‡เฉฑเจ•เฉ‹ เจจเจคเฉ€เจœเฉ‡ เจฆเจฟเจ–เจพเจ‰เจ‚เจฆเฉ‡ เจนเจจ.

เจ…เจธเจฒเฉ€เจ…เจค เจ‡เจน เจนเฉˆ:
BlessRNG เจœเจพเจ‚ เจจเจฟเจฐเจชเฉฑเจ–เจคเจพ เจฒเจˆ RNG เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐเจจเจพ

เจธเจพเจฐเฉ‡ เจชเฉฐเจœ เจชเฉ€เฉœเฉเจนเฉ€ เจฆเฉ‡ เจคเจฐเฉ€เจ•เจฟเจ†เจ‚ เจคเฉ‹เจ‚ เจ‡เฉฑเจ• เจœเจนเจพเจœเจผ 'เจคเฉ‡ เจ•เฉเจฐเจฎ เจฆเฉ€ เจตเจฟเจœเจผเฉ‚เจ…เจฒเจพเจˆเจœเจผเฉ‡เจธเจผเจจ:
BlessRNG เจœเจพเจ‚ เจจเจฟเจฐเจชเฉฑเจ–เจคเจพ เจฒเจˆ RNG เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐเจจเจพ

เจ…เจคเฉ‡ 3D เจตเจฟเฉฑเจš เจตเจฟเจœเจผเฉ‚เจ…เจฒเจพเจˆเจœเจผเฉ‡เจธเจผเจจเฅค เจฎเฉˆเจ‚ เจธเจฟเจฐเจซเจผ System.Random.Next() เจฆเจพ เจจเจคเฉ€เจœเจพ เจ›เฉฑเจกเจพเจ‚เจ—เจพ เจคเจพเจ‚ เจœเฉ‹ เจธเจฎเจพเจจ เจธเจฎเฉฑเจ—เจฐเฉ€ เจฆเจพ เจ‡เฉฑเจ• เจธเจฎเฉ‚เจน เจชเฉˆเจฆเจพ เจจเจพ เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เฉ‡เฅค
BlessRNG เจœเจพเจ‚ เจจเจฟเจฐเจชเฉฑเจ–เจคเจพ เจฒเจˆ RNG เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐเจจเจพ

UnityEngine.Random เจฆเฉ€ เจ†เจฎ เจตเฉฐเจก เจฌเจพเจฐเฉ‡ เจœเจพเจฃ-เจชเจ›เจพเจฃ เจตเจฟเฉฑเจš เจฆเฉฑเจธเฉ€ เจ—เจˆ เจ•เจนเจพเจฃเฉ€ เจจเฉ‡ เจ†เจชเจฃเฉ‡ เจ†เจช เจจเฉ‚เฉฐ เจจเจนเฉ€เจ‚ เจฆเฉเจนเจฐเจพเจ‡เจ†: เจœเจพเจ‚ เจคเจพเจ‚ เจ‡เจน เจธเจผเฉเจฐเฉ‚ เจตเจฟเฉฑเจš เจ—เจฒเจค เจธเฉ€, เจœเจพเจ‚ เจซเจฟเจฐ เจ‡เฉฐเจœเจฃ เจตเจฟเฉฑเจš เจ•เฉเจ เจฌเจฆเจฒ เจ—เจฟเจ† เจนเฉˆเฅค เจชเจฐ เจนเฉเจฃ เจธเจพเจจเฉ‚เฉฐ เจฏเจ•เฉ€เจจ เจนเฉˆเฅค

เจธเจฐเฉ‹เจค: www.habr.com

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹