BlessRNG āĻŦāĻž āĻ¨ā§āĻ¯āĻžāĻ¯ā§āĻ¯āĻ¤āĻžāĻ° āĻœāĻ¨ā§āĻ¯ RNG āĻšā§‡āĻ• āĻ•āĻ°āĻž

BlessRNG āĻŦāĻž āĻ¨ā§āĻ¯āĻžāĻ¯ā§āĻ¯āĻ¤āĻžāĻ° āĻœāĻ¨ā§āĻ¯ RNG āĻšā§‡āĻ• āĻ•āĻ°āĻž

āĻ—ā§‡āĻŽ āĻĄā§‡āĻ­ā§‡āĻ˛āĻĒāĻŽā§‡āĻ¨ā§āĻŸā§‡, āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻļāĻ‡ āĻāĻ˛ā§‹āĻŽā§‡āĻ˛ā§‹āĻ¤āĻžāĻ° āĻ¸āĻžāĻĨā§‡ āĻ•āĻŋāĻ›ā§ āĻŦā§‡āĻāĻ§ā§‡ āĻ°āĻžāĻ–āĻ¤ā§‡ āĻšāĻŦā§‡: āĻāĻ° āĻœāĻ¨ā§āĻ¯ āĻ‡āĻ‰āĻ¨āĻŋāĻŸāĻŋāĻ° āĻ¨āĻŋāĻœāĻ¸ā§āĻŦ āĻ°ā§āĻ¯āĻžāĻ¨ā§āĻĄāĻŽ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ āĻāĻŦāĻ‚ āĻāĻ° āĻ¸āĻŽāĻžāĻ¨ā§āĻ¤āĻ°āĻžāĻ˛ā§‡ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽāĨ¤ āĻ°ā§āĻ¯āĻžāĻ¨ā§āĻĄāĻŽ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ āĻāĻ•āĻŦāĻžāĻ°, āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒā§‡, āĻ†āĻŽāĻŋ āĻ§āĻžāĻ°āĻŖāĻž āĻĒā§‡āĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛āĻžāĻŽ āĻ¯ā§‡ āĻ‰āĻ­āĻ¯āĻŧāĻ‡ āĻ­āĻŋāĻ¨ā§āĻ¨āĻ­āĻžāĻŦā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ (āĻ¯āĻĻāĻŋāĻ“ āĻ¤āĻžāĻĻā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻ¸āĻŽāĻžāĻ¨ āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻĨāĻžāĻ•āĻž āĻ‰āĻšāĻŋāĻ¤)āĨ¤

āĻ¤āĻžāĻ°āĻĒāĻ°ā§‡ āĻ¤āĻžāĻ°āĻž āĻŦāĻŋāĻļāĻĻā§‡ āĻ¯āĻžāĻ¨āĻ¨āĻŋ - āĻāĻŸāĻŋ āĻ¯āĻĨā§‡āĻˇā§āĻŸ āĻ›āĻŋāĻ˛ āĻ¯ā§‡ System.Random-āĻ āĻ°ā§‚āĻĒāĻžāĻ¨ā§āĻ¤āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ¸āĻ‚āĻļā§‹āĻ§āĻ¨ āĻ•āĻ°ā§‡āĻ›ā§‡āĨ¤ āĻāĻ–āĻ¨ āĻ†āĻŽāĻ°āĻž āĻāĻŸāĻŋāĻ•ā§‡ āĻ†āĻ°āĻ“ āĻŦāĻŋāĻļāĻĻā§‡ āĻĻā§‡āĻ–āĻžāĻ° āĻāĻŦāĻ‚ āĻāĻ•āĻŸā§ āĻ—āĻŦā§‡āĻˇāĻŖāĻž āĻ•āĻ°āĻžāĻ° āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨āĻŋāĻ¯āĻŧā§‡āĻ›āĻŋ: āĻ•āĻ¤āĻŸāĻž "āĻĒāĻ•ā§āĻˇāĻĒāĻžāĻ¤āĻŽā§‚āĻ˛āĻ•" āĻŦāĻž āĻ…āĻ¨ā§āĻŽāĻžāĻ¨āĻ¯ā§‹āĻ—ā§āĻ¯ 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 āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻ¸āĻ āĻŋāĻ• āĻŦāĻŋāĻ•āĻ˛ā§āĻĒāĻŸāĻŋ āĻ†āĻ°āĻ“ āĻ‰āĻĒāĻ¯ā§āĻ•ā§āĻ¤āĨ¤ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ­āĻžāĻŦā§‡, āĻšāĻžāĻ¤ā§‡āĻ° āĻ•āĻžāĻœā§‡āĻ° āĻ‰āĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻ­āĻ° āĻ•āĻ°ā§‡ āĻāĻ•āĻŸāĻŋ āĻœā§‡āĻ¨āĻžāĻ°ā§‡āĻŸāĻ° āĻšāĻ¯āĻŧāĻ¨ āĻ•āĻ°ā§āĻ¨āĨ¤

āĻāĻ–āĻ¨ āĻĒāĻŋāĻāĻ¨āĻœāĻŋ āĻ¸āĻŋāĻ•ā§‹āĻ¯āĻŧā§‡āĻ¨ā§āĻ¸ā§‡āĻ° āĻāĻ¨āĻŸā§āĻ°āĻĒāĻŋ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ•āĻĨāĻž āĻŦāĻ˛āĻž āĻ¯āĻžāĻ•āĨ¤ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻāĻ•āĻŸāĻŋ āĻ•ā§āĻ°āĻŽ āĻ†āĻ›ā§‡ āĻ¯āĻž āĻāĻ‡ āĻŽāĻ¤ āĻļā§āĻ°ā§ āĻšāĻ¯āĻŧ:

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 āĻšā§‡āĻ• āĻ•āĻ°āĻž
āĻāĻŦāĻ‚ āĻ†āĻŦāĻžāĻ° āĻ¨āĻŋāĻĻāĻ°ā§āĻļāĻ¨. āĻšāĻžāĻ° āĻŽāĻžāĻ¤ā§āĻ°āĻžāĻ¯āĻŧ āĻāĻ•āĻŸāĻŋ āĻ­āĻŋāĻœā§āĻ¯ā§āĻ¯āĻŧāĻžāĻ˛āĻžāĻ‡āĻœā§‡āĻļāĻ¨ āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖ āĻ•āĻ°āĻž āĻ†āĻ° āĻ¸āĻŽā§āĻ­āĻŦ āĻ¨āĻ¯āĻŧāĨ¤ āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ¨āĻŋāĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ‡ āĻŽāĻžāĻ¤ā§āĻ°āĻž āĻāĻŦāĻ‚ āĻŦāĻĄāĻŧ āĻŦā§‡āĻļā§€ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡.

āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸā§‹āĻ—ā§āĻ°āĻžāĻĢāĻŋāĻ¤ā§‡, āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻĒāĻŋāĻ†āĻ°āĻāĻ¨āĻœāĻŋ-āĻ¤ā§‡ āĻ¸āĻŦāĻšā§‡āĻ¯āĻŧā§‡ āĻ•āĻ ā§‹āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧāĻ¤āĻž āĻ†āĻ°ā§‹āĻĒ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ, āĻāĻ‡ āĻ§āĻ°āĻ¨ā§‡āĻ° āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ āĻ¸ā§āĻĒāĻˇā§āĻŸāĻ¤āĻ‡ āĻ…āĻ—ā§āĻ°āĻšāĻŖāĻ¯ā§‹āĻ—ā§āĻ¯āĨ¤ āĻ…āĻ¤āĻāĻŦ, āĻ¤āĻžāĻĻā§‡āĻ° āĻ—ā§āĻŖāĻŽāĻžāĻ¨ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻŦāĻŋāĻļā§‡āĻˇ āĻ…ā§āĻ¯āĻžāĻ˛āĻ—āĻ°āĻŋāĻĻāĻŽ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡, āĻ¯āĻž āĻ†āĻŽāĻ°āĻž āĻāĻ–āĻ¨ āĻ¸ā§āĻĒāĻ°ā§āĻļ āĻ•āĻ°āĻŦ āĻ¨āĻžāĨ¤ āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŸāĻŋ āĻŦā§āĻ¯āĻžāĻĒāĻ• āĻāĻŦāĻ‚ āĻāĻ•āĻŸāĻŋ āĻĒā§ƒāĻĨāĻ• āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§‡āĻ° āĻĻāĻžāĻŦāĻŋ āĻ°āĻžāĻ–ā§‡āĨ¤

āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻžāĻŽā§‚āĻ˛āĻ•

āĻ¯āĻĻāĻŋ āĻ†āĻŽāĻ°āĻž āĻ¨āĻŋāĻļā§āĻšāĻŋāĻ¤āĻ­āĻžāĻŦā§‡ āĻ•āĻŋāĻ›ā§ āĻœāĻžāĻ¨āĻŋ āĻ¨āĻž, āĻ¤āĻžāĻšāĻ˛ā§‡ āĻ•ā§€āĻ­āĻžāĻŦā§‡ āĻāĻŸāĻŋ āĻ¨āĻŋāĻ¯āĻŧā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻŦ? āĻ†āĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻœāĻžāĻ¨ā§‡āĻ¨ āĻ¨āĻž āĻ•ā§‹āĻ¨ āĻŸā§āĻ°āĻžāĻĢāĻŋāĻ• āĻ˛āĻžāĻ‡āĻŸ āĻāĻŸāĻŋāĻ° āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§‡āĻ¯āĻŧ āĻ¤āĻžāĻšāĻ˛ā§‡ āĻ•āĻŋ āĻ°āĻžāĻ¸ā§āĻ¤āĻž āĻĒāĻžāĻ° āĻšāĻ“āĻ¯āĻŧāĻž āĻ‰āĻšāĻŋāĻ¤? āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻ­āĻŋāĻ¨ā§āĻ¨ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤

āĻ‡āĻ‰āĻ¨āĻŋāĻŸāĻŋāĻ¤ā§‡ āĻ•ā§āĻ–ā§āĻ¯āĻžāĻ¤ āĻāĻ˛ā§‹āĻŽā§‡āĻ˛ā§‹āĻ¤āĻžāĻ° āĻœāĻ¨ā§āĻ¯āĻ“ āĻāĻ•āĻ‡ āĻ•āĻĨāĻžāĨ¤ āĻĄāĻ•ā§āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāĻ¨ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧ āĻŦāĻŋāĻļāĻĻ āĻŦāĻŋāĻŦāĻ°āĻŖ āĻĒā§āĻ°āĻ•āĻžāĻļ āĻ•āĻ°āĻ˛ā§‡ āĻāĻŸāĻŋ āĻ­āĻžāĻ˛, āĻ¤āĻŦā§‡ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§‡āĻ° āĻļā§āĻ°ā§āĻ¤ā§‡ āĻ‰āĻ˛ā§āĻ˛āĻŋāĻ–āĻŋāĻ¤ āĻ—āĻ˛ā§āĻĒāĻŸāĻŋ āĻ•āĻžāĻ™ā§āĻ•ā§āĻˇāĻŋāĻ¤ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸāĻ¤āĻžāĻ° āĻ…āĻ­āĻžāĻŦā§‡āĻ° āĻ•āĻžāĻ°āĻŖā§‡ āĻ…āĻŦāĻŋāĻ•āĻ˛ āĻ˜āĻŸā§‡āĻ›ā§‡āĨ¤

āĻāĻŦāĻ‚ āĻ¯āĻĻāĻŋ āĻ†āĻĒāĻ¨āĻŋ āĻœāĻžāĻ¨ā§‡āĻ¨ āĻ¨āĻž āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻŸā§āĻ˛āĻŸāĻŋ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡, āĻ†āĻĒāĻ¨āĻŋ āĻāĻŸāĻŋ āĻ¸āĻ āĻŋāĻ•āĻ­āĻžāĻŦā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻ¸āĻ•ā§āĻˇāĻŽ āĻšāĻŦā§‡āĻ¨ āĻ¨āĻžāĨ¤ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ­āĻžāĻŦā§‡, āĻļā§‡āĻˇ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻ…āĻ¨ā§āĻ¤āĻ¤ āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ¨āĻŋāĻļā§āĻšāĻŋāĻ¤ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻžāĻ° āĻāĻŦāĻ‚ āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻ¨āĻž āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻ¸ā§‡āĻ›ā§‡āĨ¤

āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨āĻŸāĻŋ āĻ¸āĻšāĻœ āĻāĻŦāĻ‚ āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ° āĻ›āĻŋāĻ˛ - āĻĒāĻ°āĻŋāĻ¸āĻ‚āĻ–ā§āĻ¯āĻžāĻ¨ āĻ¸āĻ‚āĻ—ā§āĻ°āĻš āĻ•āĻ°ā§āĻ¨, āĻ‰āĻĻā§āĻĻā§‡āĻļā§āĻ¯āĻŽā§‚āĻ˛āĻ• āĻ¤āĻĨā§āĻ¯ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻ•āĻ°ā§āĻ¨ āĻāĻŦāĻ‚ āĻĢāĻ˛āĻžāĻĢāĻ˛āĻ—ā§āĻ˛āĻŋ āĻĻā§‡āĻ–ā§āĻ¨āĨ¤

āĻĒāĻžāĻ ā§āĻ¯ āĻŦāĻŋāĻˇāĻ¯āĻŧ

āĻ‡āĻ‰āĻ¨āĻŋāĻŸāĻŋāĻ¤ā§‡ āĻ°ā§āĻ¯āĻžāĻ¨ā§āĻĄāĻŽ āĻ¸āĻ‚āĻ–ā§āĻ¯āĻž āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻžāĻ° āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻ‰āĻĒāĻžāĻ¯āĻŧ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ - āĻ†āĻŽāĻ°āĻž āĻĒāĻžāĻāĻšāĻŸāĻŋ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°ā§‡āĻ›āĻŋāĨ¤

  1. System.Random.Next()āĨ¤ āĻŽāĻžāĻ¨āĻ—ā§āĻ˛āĻŋāĻ° āĻāĻ•āĻŸāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻĒāĻ°āĻŋāĻ¸āĻ°ā§‡ āĻĒā§‚āĻ°ā§āĻŖāĻ¸āĻ‚āĻ–ā§āĻ¯āĻž āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡āĨ¤
  2. System.Random.NextDouble()āĨ¤ [0 āĻĨā§‡āĻ•ā§‡ āĻĒāĻ°āĻŋāĻ¸āĻ°ā§‡ āĻĻā§āĻŦāĻŋāĻ—ā§āĻŖ āĻ¨āĻŋāĻ°ā§āĻ­ā§āĻ˛āĻ¤āĻž āĻ¸āĻ‚āĻ–ā§āĻ¯āĻž āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡; 1)āĨ¤
  3. UnityEngine.Random.Range()āĨ¤ āĻŽāĻžāĻ¨āĻ—ā§āĻ˛āĻŋāĻ° āĻāĻ•āĻŸāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻĒāĻ°āĻŋāĻ¸āĻ°ā§‡ āĻāĻ•āĻ• āĻ¨āĻŋāĻ°ā§āĻ­ā§āĻ˛āĻ¤āĻž āĻ¸āĻ‚āĻ–ā§āĻ¯āĻž (āĻĢā§āĻ˛ā§‹āĻŸ) āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡āĨ¤
  4. āĻ‡āĻ‰āĻ¨āĻŋāĻŸāĻŋ āĻ‡āĻžā§āĻœāĻŋāĻ¨āĨ¤āĻāĻ˛ā§‹āĻŽā§‡āĻ˛ā§‹āĨ¤āĻŽā§‚āĻ˛ā§āĻ¯āĨ¤ [0 āĻĨā§‡āĻ•ā§‡ āĻĒāĻ°āĻŋāĻ¸āĻ°ā§‡ āĻāĻ•āĻ• āĻ¨āĻŋāĻ°ā§āĻ­ā§āĻ˛āĻ¤āĻž āĻ¸āĻ‚āĻ–ā§āĻ¯āĻž (āĻĢā§āĻ˛ā§‹āĻŸ) āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡; 1)āĨ¤
  5. Unity.Mathematics.Random.NextFloat()āĨ¤ āĻ¨āĻ¤ā§āĻ¨ āĻ‡āĻ‰āĻ¨āĻŋāĻŸāĻŋāĻ° āĻ…āĻ‚āĻļāĨ¤ āĻ—āĻŖāĻŋāĻ¤ āĻ—ā§āĻ°āĻ¨ā§āĻĨāĻžāĻ—āĻžāĻ°āĨ¤ āĻŽāĻžāĻ¨āĻ—ā§āĻ˛āĻŋāĻ° āĻāĻ•āĻŸāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻĒāĻ°āĻŋāĻ¸āĻ°ā§‡ āĻāĻ•āĻ• āĻ¨āĻŋāĻ°ā§āĻ­ā§āĻ˛āĻ¤āĻž āĻ¸āĻ‚āĻ–ā§āĻ¯āĻž (āĻĢā§āĻ˛ā§‹āĻŸ) āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡āĨ¤

āĻĄāĻ•ā§āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāĻ¨ā§‡āĻ° āĻĒā§āĻ°āĻžāĻ¯āĻŧ āĻ¸āĻ°ā§āĻŦāĻ¤ā§āĻ°āĻ‡ UnityEngine.Random.value (āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻŦāĻ¨ā§āĻŸāĻ¨āĻŸāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĻ¨āĻŋ, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ UnityEngine.Random.Range() āĻ‡āĻ‰āĻ¨āĻŋāĻĢāĻ°ā§āĻŽā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ¸āĻžāĻĻā§ƒāĻļā§āĻ¯ āĻĻā§āĻŦāĻžāĻ°āĻžāĻ“ āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻļāĻŋāĻ¤ āĻ›āĻŋāĻ˛) āĻāĻŦāĻ‚ Unity.Mathematics.Random āĻŦā§āĻ¯āĻ¤ā§€āĻ¤ āĻāĻ•āĻŸāĻŋ āĻ…āĻ­āĻŋāĻ¨ā§āĻ¨ āĻŦāĻ¨ā§āĻŸāĻ¨ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛ .NextFloat() (āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋ āĻšāĻ˛ xorshift āĻ…ā§āĻ¯āĻžāĻ˛āĻ—āĻ°āĻŋāĻĻāĻŽ, āĻ¯āĻžāĻ° āĻŽāĻžāĻ¨ā§‡ āĻšāĻ˛ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ†āĻŦāĻžāĻ° āĻāĻ•āĻŸāĻŋ āĻ…āĻ­āĻŋāĻ¨ā§āĻ¨ āĻŦāĻ¨ā§āĻŸāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ…āĻĒā§‡āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡)āĨ¤

āĻĄāĻŋāĻĢāĻ˛ā§āĻŸāĻ°ā§‚āĻĒā§‡, āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻļāĻŋāĻ¤ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻĄāĻ•ā§āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāĻ¨ā§‡ āĻ‰āĻ˛ā§āĻ˛āĻŋāĻ–āĻŋāĻ¤ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻ¨ā§‡āĻ“āĻ¯āĻŧāĻž āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛āĨ¤

āĻĒā§āĻ°āĻ¯ā§āĻ•ā§āĻ¤āĻŋ

āĻ†āĻŽāĻ°āĻž āĻāĻ•āĻŸāĻŋ āĻ›ā§‹āĻŸ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ˛āĻŋāĻ–ā§‡āĻ›āĻŋ āĻ¯āĻž āĻ‰āĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻŋāĻ¤ āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ°ā§āĻ¯āĻžāĻ¨ā§āĻĄāĻŽ āĻ¸āĻ‚āĻ–ā§āĻ¯āĻžāĻ° āĻ•ā§āĻ°āĻŽ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§€ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ•āĻ°āĻŖā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻĢāĻ˛āĻžāĻĢāĻ˛āĻ—ā§āĻ˛āĻŋ āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖ āĻ•āĻ°ā§‡āĨ¤

āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻ…āĻ¨ā§āĻ•ā§āĻ°āĻŽā§‡āĻ° āĻĻā§ˆāĻ°ā§āĻ˜ā§āĻ¯ āĻšāĻ˛ 100 āĻ¸āĻ‚āĻ–ā§āĻ¯āĻžāĨ¤
āĻāĻ˛ā§‹āĻŽā§‡āĻ˛ā§‹ āĻ¸āĻ‚āĻ–ā§āĻ¯āĻžāĻ° āĻĒāĻ°āĻŋāĻ¸āĻ° āĻšāĻ˛ [0, 100)āĨ¤

āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻŸāĻžāĻ°ā§āĻ—ā§‡āĻŸ āĻĒā§āĻ˛ā§āĻ¯āĻžāĻŸāĻĢāĻ°ā§āĻŽ āĻĨā§‡āĻ•ā§‡ āĻĄā§‡āĻŸāĻž āĻ¸āĻ‚āĻ—ā§āĻ°āĻš āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛:

  • āĻ‰āĻ‡āĻ¨ā§āĻĄā§‹āĻœ
    — āĻ‡āĻ‰āĻ¨āĻŋāĻŸāĻŋ v2018.3.14f1, āĻāĻĄāĻŋāĻŸāĻ° āĻŽā§‹āĻĄ, āĻŽāĻ¨ā§‹, .NET āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ 2.0
  • MacOS
    — āĻ‡āĻ‰āĻ¨āĻŋāĻŸāĻŋ v2018.3.14f1, āĻāĻĄāĻŋāĻŸāĻ° āĻŽā§‹āĻĄ, āĻŽāĻ¨ā§‹, .NET āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ 2.0
    — āĻ‡āĻ‰āĻ¨āĻŋāĻŸāĻŋ v5.6.4p4, āĻāĻĄāĻŋāĻŸāĻ° āĻŽā§‹āĻĄ, āĻŽāĻ¨ā§‹, .NET āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ 2.0
  • āĻ…ā§āĻ¯āĻžāĻ¨ā§āĻĄā§āĻ°āĻ¯āĻŧā§‡āĻĄ
    — āĻ‡āĻ‰āĻ¨āĻŋāĻŸāĻŋ v2018.3.14f1, āĻŦāĻŋāĻ˛ā§āĻĄ āĻĒā§āĻ°āĻ¤āĻŋ āĻĄāĻŋāĻ­āĻžāĻ‡āĻ¸, Mono, .NET āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ 2.0
  • āĻ†āĻ‡āĻ“āĻāĻ¸
    — āĻ‡āĻ‰āĻ¨āĻŋāĻŸāĻŋ v2018.3.14f1, āĻŦāĻŋāĻ˛ā§āĻĄ āĻĒā§āĻ°āĻ¤āĻŋ āĻĄāĻŋāĻ­āĻžāĻ‡āĻ¸, il2cpp, .NET āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ 2.0

āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨

āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ•āĻžāĻ›ā§‡ āĻ°ā§āĻ¯āĻžāĻ¨ā§āĻĄāĻŽ āĻ¸āĻ‚āĻ–ā§āĻ¯āĻž āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻžāĻ° āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻ‰āĻĒāĻžāĻ¯āĻŧ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ āĻ¤āĻžāĻĻā§‡āĻ° āĻĒā§āĻ°āĻ¤ā§āĻ¯ā§‡āĻ•ā§‡āĻ° āĻœāĻ¨ā§āĻ¯, āĻ†āĻŽāĻ°āĻž āĻāĻ•āĻŸāĻŋ āĻĒā§ƒāĻĨāĻ• āĻŽā§‹āĻĄāĻŧāĻ• āĻ•ā§āĻ˛āĻžāĻ¸ āĻ˛āĻŋāĻ–āĻŦ, āĻ¯āĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°āĻž āĻ‰āĻšāĻŋāĻ¤:

  1. āĻŽāĻžāĻ¨ā§‡āĻ° āĻĒāĻ°āĻŋāĻ¸ā§€āĻŽāĻž āĻ¸ā§‡āĻŸ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽā§āĻ­āĻžāĻŦāĻ¨āĻž [āĻŽāĻŋāĻ¨āĻŋāĻŸ/āĻ¸āĻ°ā§āĻŦā§‹āĻšā§āĻš)āĨ¤ āĻ•āĻ¨āĻ¸ā§āĻŸā§āĻ°āĻžāĻ•ā§āĻŸāĻ°ā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ¸ā§‡āĻŸ āĻ•āĻ°āĻž āĻšāĻŦā§‡āĨ¤
  2. MF āĻĢā§‡āĻ°āĻ¤ āĻĻā§‡āĻ“āĻ¯āĻŧāĻžāĻ° āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĨ¤ āĻŸāĻžāĻ‡āĻĒ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ float āĻŦā§‡āĻ›ā§‡ āĻ¨ā§‡āĻ“āĻ¯āĻŧāĻž āĻ¯āĻžāĻ•, āĻ•āĻžāĻ°āĻŖ āĻāĻŸāĻŋ āĻ†āĻ°āĻ“ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĨ¤
  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 āĻāĻ° āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨

āĻ¸ā§āĻŸā§āĻ¯āĻžāĻŸāĻŋāĻ• āĻ•ā§āĻ˛āĻžāĻ¸ āĻ‡āĻ‰āĻ¨āĻŋāĻŸāĻŋ āĻ‡āĻžā§āĻœāĻŋāĻ¨ā§‡āĻ° āĻŽāĻžāĻ¨ āĻŦā§ˆāĻļāĻŋāĻˇā§āĻŸā§āĻ¯āĨ¤ āĻ°ā§āĻ¯āĻžāĻ¨ā§āĻĄāĻŽ āĻāĻ•āĻŸāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻĒāĻ°āĻŋāĻ¸āĻ° āĻĨā§‡āĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻĢā§āĻ˛ā§‹āĻŸ āĻŸāĻžāĻ‡āĻĒ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°ā§‡ [0; 1)āĨ¤ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ.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-āĻāĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ•ā§‡ āĻ•āĻŋāĻ›ā§ āĻŦā§€āĻœ āĻĻāĻŋāĻ¯āĻŧā§‡ āĻļā§āĻ°ā§ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ - āĻāĻ‡āĻ­āĻžāĻŦā§‡ āĻ†āĻŽāĻ°āĻž āĻĒā§āĻ¨āĻ°āĻžāĻŦā§ƒāĻ¤ā§āĻ¤āĻŋ āĻ•ā§āĻ°āĻŽ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻāĻĄāĻŧāĻžāĻ¤ā§‡ āĻĒāĻžāĻ°āĻŦāĨ¤

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 āĻšā§‡āĻ• āĻ•āĻ°āĻž

āĻ‡āĻ‰āĻ¨āĻŋāĻŸāĻŋ āĻ‡āĻžā§āĻœāĻŋāĻ¨ā§‡āĻ° āĻ¸ā§āĻŦāĻžāĻ­āĻžāĻŦāĻŋāĻ• āĻŦāĻ¨ā§āĻŸāĻ¨ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ­ā§‚āĻŽāĻŋāĻ•āĻžāĻ¤ā§‡ āĻ—āĻ˛ā§āĻĒāĻŸāĻŋ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ āĻ°â€ā§āĻ¯āĻžāĻ¨ā§āĻĄāĻŽ āĻ¨āĻŋāĻœā§‡āĻ•ā§‡ āĻĒā§āĻ¨āĻ°āĻžāĻŦā§ƒāĻ¤ā§āĻ¤āĻŋ āĻ•āĻ°ā§‡āĻ¨āĻŋ: āĻšāĻ¯āĻŧ āĻāĻŸāĻŋ āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ•āĻ­āĻžāĻŦā§‡ āĻ­ā§āĻ˛ āĻ›āĻŋāĻ˛, āĻŦāĻž āĻ¤āĻžāĻ°āĻĒāĻ° āĻĨā§‡āĻ•ā§‡ āĻ‡āĻžā§āĻœāĻŋāĻ¨ā§‡ āĻ•āĻŋāĻ›ā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ āĻ¤āĻŦā§‡ āĻāĻ–āĻ¨ āĻ†āĻŽāĻ°āĻž āĻ¨āĻŋāĻļā§āĻšāĻŋāĻ¤āĨ¤

āĻ‰āĻ¤ā§āĻ¸: www.habr.com

āĻāĻ•āĻŸāĻŋ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻœā§āĻĄāĻŧā§āĻ¨