āĻā§āĻŽ āĻĄā§āĻā§āĻ˛āĻĒāĻŽā§āĻ¨ā§āĻā§, āĻāĻĒāĻ¨āĻžāĻā§ āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻļāĻ āĻāĻ˛ā§āĻŽā§āĻ˛ā§āĻ¤āĻžāĻ° āĻ¸āĻžāĻĨā§ āĻāĻŋāĻā§ āĻŦā§āĻāĻ§ā§ āĻ°āĻžāĻāĻ¤ā§ āĻšāĻŦā§: āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻ¨āĻŋāĻāĻŋāĻ° āĻ¨āĻŋāĻāĻ¸ā§āĻŦ āĻ°ā§āĻ¯āĻžāĻ¨ā§āĻĄāĻŽ āĻ°āĻ¯āĻŧā§āĻā§ āĻāĻŦāĻ āĻāĻ° āĻ¸āĻŽāĻžāĻ¨ā§āĻ¤āĻ°āĻžāĻ˛ā§ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽāĨ¤ āĻ°ā§āĻ¯āĻžāĻ¨ā§āĻĄāĻŽ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻāĻŦāĻžāĻ°, āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒā§, āĻāĻŽāĻŋ āĻ§āĻžāĻ°āĻŖāĻž āĻĒā§āĻ¯āĻŧā§āĻāĻŋāĻ˛āĻžāĻŽ āĻ¯ā§ āĻāĻāĻ¯āĻŧāĻ āĻāĻŋāĻ¨ā§āĻ¨āĻāĻžāĻŦā§ āĻāĻžāĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§ (āĻ¯āĻĻāĻŋāĻ āĻ¤āĻžāĻĻā§āĻ° āĻāĻāĻāĻŋ āĻ¸āĻŽāĻžāĻ¨ āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻĨāĻžāĻāĻž āĻāĻāĻŋāĻ¤)āĨ¤
āĻ¤āĻžāĻ°āĻĒāĻ°ā§ āĻ¤āĻžāĻ°āĻž āĻŦāĻŋāĻļāĻĻā§ āĻ¯āĻžāĻ¨āĻ¨āĻŋ - āĻāĻāĻŋ āĻ¯āĻĨā§āĻˇā§āĻ āĻāĻŋāĻ˛ āĻ¯ā§ System.Random-āĻ āĻ°ā§āĻĒāĻžāĻ¨ā§āĻ¤āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ¸āĻāĻļā§āĻ§āĻ¨ āĻāĻ°ā§āĻā§āĨ¤ āĻāĻāĻ¨ āĻāĻŽāĻ°āĻž āĻāĻāĻŋāĻā§ āĻāĻ°āĻ āĻŦāĻŋāĻļāĻĻā§ āĻĻā§āĻāĻžāĻ° āĻāĻŦāĻ āĻāĻāĻā§ āĻāĻŦā§āĻˇāĻŖāĻž āĻāĻ°āĻžāĻ° āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨āĻŋāĻ¯āĻŧā§āĻāĻŋ: āĻāĻ¤āĻāĻž "āĻĒāĻā§āĻˇāĻĒāĻžāĻ¤āĻŽā§āĻ˛āĻ" āĻŦāĻž āĻ
āĻ¨ā§āĻŽāĻžāĻ¨āĻ¯ā§āĻā§āĻ¯ RNG, āĻāĻŦāĻ āĻā§āĻ¨āĻāĻŋ āĻŦā§āĻā§ āĻ¨ā§āĻŦāĨ¤ āĻ¤āĻĻā§āĻĒāĻ°āĻŋ, āĻāĻŽāĻŋ āĻ¤āĻžāĻĻā§āĻ° "āĻ¸āĻ¤āĻ¤āĻž" āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻāĻžāĻ§āĻŋāĻāĻŦāĻžāĻ° āĻŦāĻŋāĻ°ā§āĻ§āĻĒā§āĻ°ā§āĻŖ āĻŽāĻ¤āĻžāĻŽāĻ¤ āĻļā§āĻ¨ā§āĻāĻŋ - āĻāĻ¸ā§āĻ¨ āĻā§āĻˇāĻŋāĻ¤ āĻĢāĻ˛āĻžāĻĢāĻ˛āĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ āĻĢāĻ˛āĻžāĻĢāĻ˛āĻā§āĻ˛āĻŋ āĻā§āĻāĻžāĻŦā§ āĻ¤ā§āĻ˛āĻ¨āĻž āĻāĻ°ā§ āĻ¤āĻž āĻŦā§āĻāĻžāĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°āĻŋāĨ¤
āĻ¸āĻāĻā§āĻˇāĻŋāĻĒā§āĻ¤ āĻļāĻŋāĻā§āĻˇāĻžāĻŽā§āĻ˛āĻ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻŦāĻž āĻāĻ°āĻāĻ¨āĻāĻŋ āĻāĻ¸āĻ˛ā§ āĻāĻ°āĻāĻ¨āĻāĻŋ
āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§āĻ āĻ°ā§āĻ¯āĻžāĻ¨ā§āĻĄāĻŽ āĻ¨āĻŽā§āĻŦāĻ° āĻā§āĻ¨āĻžāĻ°ā§āĻāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻĒāĻ°āĻŋāĻāĻŋāĻ¤ āĻšāĻ¨, āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻĒāĻ¨āĻŋ āĻ āĻŦāĻŋāĻ˛āĻŽā§āĻŦā§ "āĻĒāĻ°ā§āĻā§āĻˇāĻž" āĻŦāĻŋāĻāĻžāĻā§ āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤
āĻāĻ˛ā§āĻŽā§āĻ˛ā§ āĻ¸āĻāĻā§āĻ¯āĻž (RN) āĻšāĻ˛ āĻāĻŋāĻā§ āĻāĻ˛ā§āĻŽā§āĻ˛ā§ (āĻŦāĻŋāĻļā§āĻā§āĻāĻ˛) āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻ¤ā§āĻĒāĻ¨ā§āĻ¨ āĻ¸āĻāĻā§āĻ¯āĻžāĻ° āĻāĻāĻāĻŋ āĻā§āĻ°āĻŽ, āĻ¯āĻž āĻāĻ¨āĻā§āĻ°āĻĒāĻŋāĻ° āĻāĻ¤ā§āĻ¸āĨ¤ āĻ āĻ°ā§āĻĨāĻžā§, āĻāĻāĻŋ āĻāĻŽāĻ¨ āĻāĻāĻāĻŋ āĻā§āĻ°āĻŽ āĻ¯āĻžāĻ° āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻā§āĻ¨āĻ āĻāĻžāĻŖāĻŋāĻ¤āĻŋāĻ āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒāĻ°āĻ¸ā§āĻĒāĻ° āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻ¨āĻ¯āĻŧ - āĻ¤āĻžāĻĻā§āĻ° āĻā§āĻ¨āĻ āĻāĻžāĻ°āĻŖ āĻāĻŦāĻ āĻĒā§āĻ°āĻāĻžāĻŦ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ āĻ¨ā§āĻāĨ¤
āĻ¯āĻž āĻāĻ˛ā§āĻŽā§āĻ˛ā§ āĻ¸āĻāĻā§āĻ¯āĻž āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§ āĻ¤āĻžāĻā§ āĻ°ā§āĻ¯āĻžāĻ¨ā§āĻĄāĻŽ āĻ¨āĻŽā§āĻŦāĻ° āĻā§āĻ¨āĻžāĻ°ā§āĻāĻ° (RNG) āĻŦāĻ˛ā§āĨ¤ āĻĻā§āĻā§ āĻŽāĻ¨ā§ āĻšāĻŦā§ āĻ¯ā§ āĻ¸āĻŦāĻāĻŋāĻā§āĻ āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻŽāĻ°āĻž āĻ¯āĻĻāĻŋ āĻ¤āĻ¤ā§āĻ¤ā§āĻŦ āĻĨā§āĻā§ āĻ āĻ¨ā§āĻļā§āĻ˛āĻ¨ā§ āĻāĻ˛ā§ āĻ¯āĻžāĻ, āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻ¸āĻ˛ā§ āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻā§āĻ°āĻŽ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻ¸āĻĢā§āĻāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻ ā§āĻ¯āĻžāĻ˛āĻāĻ°āĻŋāĻĻāĻŽ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻāĻ°āĻž āĻāĻ¤ āĻ¸āĻšāĻ āĻ¨āĻ¯āĻŧāĨ¤
āĻāĻžāĻ°āĻŖāĻāĻŋ āĻāĻ§ā§āĻ¨āĻŋāĻ āĻā§āĻā§āĻ¤āĻž āĻāĻ˛ā§āĻāĻā§āĻ°āĻ¨āĻŋāĻā§āĻ¸ā§ āĻāĻāĻ āĻŦāĻŋāĻļā§āĻā§āĻāĻ˛āĻžāĻ° āĻ āĻ¨ā§āĻĒāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ¤ā§ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻāĻŋ āĻāĻžāĻĄāĻŧāĻž, āĻāĻ˛ā§āĻŽā§āĻ˛ā§ āĻ¸āĻāĻā§āĻ¯āĻžāĻā§āĻ˛āĻŋ āĻāĻ˛ā§āĻŽā§āĻ˛ā§ āĻšāĻāĻ¯āĻŧāĻž āĻŦāĻ¨ā§āĻ§ āĻšāĻ¯āĻŧā§ āĻ¯āĻžāĻ¯āĻŧ āĻāĻŦāĻ āĻ¤āĻžāĻĻā§āĻ° āĻā§āĻ¨āĻžāĻ°ā§āĻāĻ° āĻ¸ā§āĻĒāĻˇā§āĻāĻ¤āĻ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻā§āĻ° āĻāĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻĢāĻžāĻāĻļāĻ¨ā§ āĻĒāĻ°āĻŋāĻŖāĻ¤ āĻšāĻ¯āĻŧāĨ¤ āĻāĻāĻāĻŋ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§āĻ° āĻŦā§āĻļ āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻŦāĻŋāĻļā§āĻˇāĻ¤ā§āĻŦā§āĻ° āĻāĻ¨ā§āĻ¯, āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻā§āĻ°ā§āĻ¤āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž (āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻā§āĻ°āĻŋāĻĒā§āĻā§āĻā§āĻ°āĻžāĻĢāĻŋ), āĻ¤āĻŦā§ āĻ āĻ¨ā§āĻ¯āĻĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻā§āĻ°āĻšāĻŖāĻ¯ā§āĻā§āĻ¯ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤
āĻāĻāĻāĻŋ āĻ ā§āĻ¯āĻžāĻ˛āĻāĻ°āĻŋāĻĻāĻŽ āĻ˛āĻŋāĻāĻ¤ā§ āĻšāĻŦā§ āĻ¯āĻž āĻĢāĻŋāĻ°ā§ āĻāĻ¸āĻŦā§, āĻ¯āĻĻāĻŋāĻ āĻ¸āĻ¤ā§āĻ¯āĻŋāĻāĻžāĻ°ā§āĻ° āĻ°ā§āĻ¯āĻžāĻ¨ā§āĻĄāĻŽ āĻ¸āĻāĻā§āĻ¯āĻž āĻ¨āĻ¯āĻŧ, āĻ¤āĻŦā§ āĻ¯āĻ¤āĻāĻž āĻ¸āĻŽā§āĻāĻŦ āĻ¤āĻžāĻĻā§āĻ° āĻāĻžāĻāĻžāĻāĻžāĻāĻŋ - āĻ¤āĻĨāĻžāĻāĻĨāĻŋāĻ¤ āĻ¸āĻŋāĻāĻĄā§-āĻ°ā§āĻ¯āĻžāĻ¨ā§āĻĄāĻŽ āĻ¸āĻāĻā§āĻ¯āĻž (PRN)āĨ¤ āĻāĻ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻ ā§āĻ¯āĻžāĻ˛āĻāĻ°āĻŋāĻĻāĻŽāĻā§ āĻ¸āĻŋāĻāĻĄā§āĻ°ā§āĻ¯āĻžāĻ¨ā§āĻĄāĻŽ āĻ¨āĻŽā§āĻŦāĻ° āĻā§āĻ¨āĻžāĻ°ā§āĻāĻ° (PRNG) āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧāĨ¤
āĻāĻāĻāĻŋ PRNG āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻŦā§āĻļ āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻ°āĻ¯āĻŧā§āĻā§, āĻ¤āĻŦā§ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤āĻā§āĻ˛āĻŋ āĻĒā§āĻ°āĻ¤ā§āĻ¯ā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻžāĻ¸āĻā§āĻāĻŋāĻ āĻšāĻŦā§:
- āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ āĻ¸ā§āĻāĻ¨āĻž āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨.
PRNG āĻāĻ° āĻā§āĻ¨ā§ āĻāĻ¨āĻā§āĻ°āĻĒāĻŋāĻ° āĻā§āĻ¸ āĻ¨ā§āĻ, āĻ¤āĻžāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻāĻā§ āĻāĻāĻŋāĻā§ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ āĻ āĻŦāĻ¸ā§āĻĨāĻž āĻĻāĻŋāĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻ¸āĻāĻā§āĻ¯āĻž (āĻŦāĻž āĻā§āĻā§āĻāĻ°) āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻāĻā§ āĻŦā§āĻ (āĻāĻ˛ā§āĻŽā§āĻ˛ā§ āĻŦā§āĻ) āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧāĨ¤ āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻļāĻ, āĻĒā§āĻ°āĻ¸ā§āĻ¸āĻ° āĻāĻĄāĻŧāĻŋ āĻāĻžāĻāĻ¨ā§āĻāĻžāĻ° āĻŦāĻž āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻ¸āĻŽāĻ¯āĻŧā§āĻ° āĻ¸āĻāĻā§āĻ¯āĻžāĻ¸ā§āĻāĻ āĻ¸āĻŽāĻ¤ā§āĻ˛ā§āĻ¯ āĻāĻāĻāĻŋ āĻŦā§āĻ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧāĨ¤
- āĻā§āĻ°āĻŽ āĻĒā§āĻ°āĻāĻ¨āĻ¨āĻ¯ā§āĻā§āĻ¯āĻ¤āĻžāĨ¤
PRNG āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖāĻ°ā§āĻĒā§ āĻ¨āĻŋāĻ°ā§āĻŖāĻ¯āĻŧāĻŦāĻžāĻĻā§, āĻ¤āĻžāĻ āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻāĻāĻ°āĻŖā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻž āĻŦā§āĻ āĻ āĻ¨āĻ¨ā§āĻ¯āĻāĻžāĻŦā§ āĻ¸āĻāĻā§āĻ¯āĻžāĻ° āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻāĻŦāĻŋāĻˇā§āĻ¯āĻ¤ āĻā§āĻ°āĻŽ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°ā§āĨ¤ āĻāĻ° āĻŽāĻžāĻ¨ā§ āĻšāĻ˛ āĻ¯ā§ āĻāĻāĻ āĻŦā§āĻ āĻĻāĻŋāĻ¯āĻŧā§ āĻļā§āĻ°ā§ āĻāĻ°āĻž āĻāĻāĻāĻŋ āĻĒā§āĻĨāĻ PRNG (āĻāĻŋāĻ¨ā§āĻ¨ āĻ¸āĻŽāĻ¯āĻŧā§, āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽā§, āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻĄāĻŋāĻāĻžāĻāĻ¸ā§) āĻāĻāĻ āĻā§āĻ°āĻŽ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŦā§āĨ¤
āĻāĻĒāĻ¨āĻžāĻā§ PRNG āĻāĻ° āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯āĻ¯ā§āĻā§āĻ¤ āĻ¸āĻŽā§āĻāĻžāĻŦā§āĻ¯āĻ¤āĻž āĻŦāĻ¨ā§āĻāĻ¨āĻāĻŋāĻ āĻāĻžāĻ¨āĻ¤ā§ āĻšāĻŦā§ - āĻāĻāĻŋ āĻā§āĻ¨ āĻ¸āĻāĻā§āĻ¯āĻž āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŦā§ āĻāĻŦāĻ āĻā§āĻ¨ āĻ¸āĻŽā§āĻāĻžāĻŦāĻ¨āĻžāĻ° āĻ¸āĻžāĻĨā§āĨ¤ āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻļāĻ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻŦāĻž āĻ
āĻāĻŋāĻ¨ā§āĻ¨ āĻŦāĻŋāĻ¤āĻ°āĻŖāĨ¤
āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻŦāĻŋāĻ¤āĻ°āĻŖ (āĻŦāĻžāĻŽ) āĻāĻŦāĻ āĻ
āĻāĻŋāĻ¨ā§āĻ¨ āĻŦāĻŋāĻ¤āĻ°āĻŖ (āĻĄāĻžāĻ¨)
āĻ§āĻ°āĻž āĻ¯āĻžāĻ āĻāĻŽāĻžāĻĻā§āĻ° 24 āĻĒāĻā§āĻˇā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻāĻŋ āĻ¨ā§āĻ¯āĻžāĻ¯ā§āĻ¯ āĻŽā§āĻ¤ā§āĻ¯ā§ āĻāĻā§āĨ¤ āĻ¯āĻĻāĻŋ āĻāĻĒāĻ¨āĻŋ āĻāĻāĻŋ āĻāĻ¸ āĻāĻ°ā§āĻ¨, āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻāĻāĻŋ āĻĒāĻžāĻāĻ¯āĻŧāĻžāĻ° āĻ¸āĻŽā§āĻāĻžāĻŦāĻ¨āĻž 1/24 āĻāĻ° āĻ¸āĻŽāĻžāĻ¨ āĻšāĻŦā§ (āĻ āĻ¨ā§āĻ¯ āĻā§āĻ¨ā§ āĻ¨āĻŽā§āĻŦāĻ° āĻĒāĻžāĻāĻ¯āĻŧāĻžāĻ° āĻ¸āĻŽā§āĻāĻžāĻŦāĻ¨āĻžāĻ° āĻ¸āĻŽāĻžāĻ¨)āĨ¤ āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻ āĻ¨ā§āĻāĻā§āĻ˛āĻŋ āĻ¨āĻŋāĻā§āĻˇā§āĻĒ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻĢāĻ˛āĻžāĻĢāĻ˛āĻā§āĻ˛āĻŋ āĻ°ā§āĻāĻ°ā§āĻĄ āĻāĻ°ā§āĻ¨, āĻāĻĒāĻ¨āĻŋ āĻ˛āĻā§āĻˇā§āĻ¯ āĻāĻ°āĻŦā§āĻ¨ āĻ¯ā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒā§āĻ°āĻžāĻ¨ā§āĻ¤āĻā§āĻ˛āĻŋ āĻĒā§āĻ°āĻžāĻ¯āĻŧ āĻāĻāĻ āĻĢā§āĻ°āĻŋāĻā§āĻ¯āĻŧā§āĻ¨ā§āĻ¸āĻŋ āĻ¸āĻš āĻĒāĻĄāĻŧā§ āĻā§āĻā§āĨ¤ āĻŽā§āĻ˛āĻ¤, āĻāĻ āĻĄāĻžāĻāĻāĻŋāĻā§ āĻ āĻāĻŋāĻ¨ā§āĻ¨ āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻ¸āĻš āĻāĻāĻāĻŋ RNG āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻŦāĻŋāĻŦā§āĻāĻ¨āĻž āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻāĻāĻŦāĻžāĻ°ā§ āĻāĻ 10āĻāĻŋ āĻĒāĻžāĻļāĻž āĻ¨āĻŋāĻā§āĻˇā§āĻĒ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻŽā§āĻ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ āĻāĻŖāĻ¨āĻž āĻāĻ°ā§āĻ¨? āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻ āĻāĻŋāĻ¨ā§āĻ¨āĻ¤āĻž āĻŦāĻāĻžāĻ¯āĻŧ āĻ°āĻžāĻāĻž āĻšāĻŦā§? āĻ¨āĻž. āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻļāĻ, āĻĒāĻ°āĻŋāĻŽāĻžāĻŖāĻāĻŋ 125 āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻā§āĻ° āĻāĻžāĻāĻžāĻāĻžāĻāĻŋ āĻšāĻŦā§, āĻ āĻ°ā§āĻĨāĻžā§ āĻāĻŋāĻā§ āĻāĻĄāĻŧ āĻŽāĻžāĻ¨āĨ¤ āĻāĻŦāĻ āĻĢāĻ˛āĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻŽāĻ¨āĻāĻŋ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻā§āĻˇā§āĻĒ āĻāĻ°āĻžāĻ° āĻāĻā§, āĻāĻĒāĻ¨āĻŋ āĻŽā§āĻāĻžāĻŽā§āĻāĻŋāĻāĻžāĻŦā§ āĻāĻŦāĻŋāĻˇā§āĻ¯āĻ¤ā§āĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻ āĻ¨ā§āĻŽāĻžāĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤
āĻāĻžāĻ°āĻŖ āĻšāĻ˛ āĻāĻĄāĻŧ āĻ¸ā§āĻā§āĻ° āĻĒāĻžāĻāĻ¯āĻŧāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻŦā§āĻļāĻŋ āĻ¸āĻāĻā§āĻ¯āĻ āĻāĻŽā§āĻŦāĻŋāĻ¨ā§āĻļāĻ¨ āĻāĻā§āĨ¤ āĻāĻāĻŋ āĻĨā§āĻā§ āĻ¯āĻ¤ āĻĻā§āĻ°ā§, āĻāĻŽ āĻ¸āĻāĻŽāĻŋāĻļā§āĻ°āĻŖ - āĻāĻŦāĻ āĻ¸ā§āĻ āĻ āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§, āĻā§āĻˇāĻ¤āĻŋāĻ° āĻ¸āĻŽā§āĻāĻžāĻŦāĻ¨āĻž āĻāĻŽāĨ¤ āĻ¯āĻĻāĻŋ āĻāĻ āĻ¤āĻĨā§āĻ¯āĻāĻŋ āĻāĻ˛ā§āĻĒāĻ¨āĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¤āĻŦā§ āĻāĻāĻŋ āĻ āĻ¸ā§āĻĒāĻˇā§āĻāĻāĻžāĻŦā§ āĻāĻāĻāĻŋ āĻāĻŖā§āĻāĻžāĻ° āĻāĻā§āĻ¤āĻŋāĻ° āĻ āĻ¨ā§āĻ°ā§āĻĒ āĻšāĻŦā§āĨ¤ āĻ āĻ¤āĻāĻŦ, āĻāĻŋāĻā§ āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŋāĻ¤ āĻ¸āĻš, 10 āĻĄāĻžāĻāĻ¸ā§āĻ° āĻāĻāĻāĻŋ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽāĻā§ āĻāĻāĻāĻŋ āĻ¸ā§āĻŦāĻžāĻāĻžāĻŦāĻŋāĻ āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻ¸āĻš āĻāĻāĻāĻŋ RNG āĻŦāĻ˛āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻāĻ°ā§āĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ, āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻ āĻ¸āĻŽāĻ¯āĻŧ āĻāĻāĻāĻŋ āĻŦāĻŋāĻŽāĻžāĻ¨ā§ - āĻāĻāĻāĻŋ āĻ˛āĻā§āĻˇā§āĻ¯ā§ āĻļā§āĻāĻŋāĻ. āĻļā§āĻ¯ā§āĻāĻžāĻ°āĻāĻŋ āĻāĻāĻāĻŋ RNG āĻšāĻŦā§ āĻ¯āĻž āĻā§āĻ°āĻžāĻĢā§ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻŋāĻ¤ āĻāĻ āĻā§āĻĄāĻŧāĻž āĻ¸āĻāĻā§āĻ¯āĻž (x, y) āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĨ¤
āĻ¸āĻŽā§āĻŽāĻ¤ āĻšāĻ¨ āĻ¯ā§ āĻŦāĻžāĻŽ āĻĻāĻŋāĻā§āĻ° āĻŦāĻŋāĻāĻ˛ā§āĻĒāĻāĻŋ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ āĻā§āĻŦāĻ¨ā§āĻ° āĻāĻžāĻāĻžāĻāĻžāĻāĻŋ - āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻ¸ā§āĻŦāĻžāĻāĻžāĻŦāĻŋāĻ āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻ¸āĻš āĻāĻāĻāĻŋ 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, ...
āĻĒā§āĻ°āĻĨāĻŽ āĻ¨āĻāĻ°ā§ āĻāĻ āĻ¸āĻāĻā§āĻ¯āĻžāĻā§āĻ˛āĻŋ āĻāĻ¤āĻāĻž āĻ°ā§āĻ¯āĻžāĻ¨ā§āĻĄāĻŽ? āĻāĻ° āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻā§āĻ āĻāĻ°ā§ āĻļā§āĻ°ā§ āĻāĻ°āĻž āĻ¯āĻžāĻ.
āĻāĻāĻŋ āĻāĻāĻ¨āĻŋāĻĢāĻ°ā§āĻŽā§āĻ° āĻāĻžāĻāĻžāĻāĻžāĻāĻŋ āĻĻā§āĻāĻžāĻ¯āĻŧ, āĻ¤āĻŦā§ āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻĻā§āĻāĻŋ āĻ¸āĻāĻā§āĻ¯āĻžāĻ° āĻāĻāĻāĻŋ āĻā§āĻ°āĻŽ āĻĒāĻĄāĻŧā§āĻ¨ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻ¸āĻŽāĻ¤āĻ˛ā§ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻā§āĻ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž āĻāĻ°ā§āĻ¨ āĻ¤āĻŦā§ āĻāĻĒāĻ¨āĻŋ āĻāĻāĻŋ āĻĒāĻžāĻŦā§āĻ¨:
āĻĒā§āĻ¯āĻžāĻāĻžāĻ°ā§āĻ¨āĻā§āĻ˛āĻŋ āĻ¸ā§āĻĒāĻˇā§āĻāĻāĻžāĻŦā§ āĻĻā§āĻļā§āĻ¯āĻŽāĻžāĻ¨ āĻšāĻ¯āĻŧā§ āĻāĻ ā§āĨ¤ āĻāĻŦāĻ āĻ¯ā§āĻšā§āĻ¤ā§ āĻ¸āĻŋāĻā§āĻ¯āĻŧā§āĻ¨ā§āĻ¸ā§āĻ° āĻĄā§āĻāĻž āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻĒāĻžāĻ¯āĻŧā§ āĻ
āĻ°ā§āĻĄāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ (āĻ
āĻ°ā§āĻĨāĻžā§ āĻāĻāĻŋāĻ¤ā§ āĻāĻŽ āĻāĻ¨āĻā§āĻ°āĻĒāĻŋ āĻ°āĻ¯āĻŧā§āĻā§), āĻāĻāĻŋ āĻ¸ā§āĻ "āĻĒāĻā§āĻˇāĻĒāĻžāĻ¤"āĻā§ āĻāĻ¨ā§āĻŽ āĻĻāĻŋāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻ¨ā§āĻ¯ā§āĻ¨āĻ¤āĻŽ, āĻāĻ āĻāĻžāĻ¤ā§āĻ¯āĻŧ 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, ...
āĻĒā§āĻ˛ā§āĻ¨ā§āĻ āĻāĻāĻžāĻ¨ā§ āĻ¸āĻŦāĻāĻŋāĻā§ āĻ āĻŋāĻ āĻāĻā§ āĻŦāĻ˛ā§ āĻŽāĻ¨ā§ āĻšāĻā§āĻā§:
āĻāĻ¸ā§āĻ¨ āĻāĻ¯āĻŧāĻ¤āĻ¨ā§ āĻĻā§āĻāĻŋ (āĻāĻāĻŦāĻžāĻ°ā§ āĻ¤āĻŋāĻ¨āĻāĻŋ āĻ¸āĻāĻā§āĻ¯āĻž āĻĒāĻĄāĻŧā§āĻ¨):
āĻāĻŦāĻ āĻāĻŦāĻžāĻ° āĻ¨āĻŋāĻĻāĻ°ā§āĻļāĻ¨. āĻāĻžāĻ° āĻŽāĻžāĻ¤ā§āĻ°āĻžāĻ¯āĻŧ āĻāĻāĻāĻŋ āĻāĻŋāĻā§āĻ¯ā§āĻ¯āĻŧāĻžāĻ˛āĻžāĻāĻā§āĻļāĻ¨ āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖ āĻāĻ°āĻž āĻāĻ° āĻ¸āĻŽā§āĻāĻŦ āĻ¨āĻ¯āĻŧāĨ¤ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ¨āĻŋāĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ āĻŽāĻžāĻ¤ā§āĻ°āĻž āĻāĻŦāĻ āĻŦāĻĄāĻŧ āĻŦā§āĻļā§ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§.
āĻā§āĻ°āĻŋāĻĒā§āĻā§āĻā§āĻ°āĻžāĻĢāĻŋāĻ¤ā§, āĻ¯ā§āĻāĻžāĻ¨ā§ āĻĒāĻŋāĻāĻ°āĻāĻ¨āĻāĻŋ-āĻ¤ā§ āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻāĻ ā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧāĻ¤āĻž āĻāĻ°ā§āĻĒ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ āĻ¸ā§āĻĒāĻˇā§āĻāĻ¤āĻ āĻ āĻā§āĻ°āĻšāĻŖāĻ¯ā§āĻā§āĻ¯āĨ¤ āĻ āĻ¤āĻāĻŦ, āĻ¤āĻžāĻĻā§āĻ° āĻā§āĻŖāĻŽāĻžāĻ¨ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻŦāĻŋāĻļā§āĻˇ āĻ ā§āĻ¯āĻžāĻ˛āĻāĻ°āĻŋāĻĻāĻŽ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻ¯āĻž āĻāĻŽāĻ°āĻž āĻāĻāĻ¨ āĻ¸ā§āĻĒāĻ°ā§āĻļ āĻāĻ°āĻŦ āĻ¨āĻžāĨ¤ āĻŦāĻŋāĻˇāĻ¯āĻŧāĻāĻŋ āĻŦā§āĻ¯āĻžāĻĒāĻ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻĒā§āĻĨāĻ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§āĻ° āĻĻāĻžāĻŦāĻŋ āĻ°āĻžāĻā§āĨ¤
āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻŽā§āĻ˛āĻ
āĻ¯āĻĻāĻŋ āĻāĻŽāĻ°āĻž āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤āĻāĻžāĻŦā§ āĻāĻŋāĻā§ āĻāĻžāĻ¨āĻŋ āĻ¨āĻž, āĻ¤āĻžāĻšāĻ˛ā§ āĻā§āĻāĻžāĻŦā§ āĻāĻāĻŋ āĻ¨āĻŋāĻ¯āĻŧā§ āĻāĻžāĻ āĻāĻ°āĻŦ? āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻāĻžāĻ¨ā§āĻ¨ āĻ¨āĻž āĻā§āĻ¨ āĻā§āĻ°āĻžāĻĢāĻŋāĻ āĻ˛āĻžāĻāĻ āĻāĻāĻŋāĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧ āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻŋ āĻ°āĻžāĻ¸ā§āĻ¤āĻž āĻĒāĻžāĻ° āĻšāĻāĻ¯āĻŧāĻž āĻāĻāĻŋāĻ¤? āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻāĻŋāĻ¨ā§āĻ¨ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻāĻāĻ¨āĻŋāĻāĻŋāĻ¤ā§ āĻā§āĻā§āĻ¯āĻžāĻ¤ āĻāĻ˛ā§āĻŽā§āĻ˛ā§āĻ¤āĻžāĻ° āĻāĻ¨ā§āĻ¯āĻ āĻāĻāĻ āĻāĻĨāĻžāĨ¤ āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻŦāĻŋāĻļāĻĻ āĻŦāĻŋāĻŦāĻ°āĻŖ āĻĒā§āĻ°āĻāĻžāĻļ āĻāĻ°āĻ˛ā§ āĻāĻāĻŋ āĻāĻžāĻ˛, āĻ¤āĻŦā§ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§āĻ° āĻļā§āĻ°ā§āĻ¤ā§ āĻāĻ˛ā§āĻ˛āĻŋāĻāĻŋāĻ¤ āĻāĻ˛ā§āĻĒāĻāĻŋ āĻāĻžāĻā§āĻā§āĻˇāĻŋāĻ¤ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻāĻ¤āĻžāĻ° āĻ āĻāĻžāĻŦā§āĻ° āĻāĻžāĻ°āĻŖā§ āĻ āĻŦāĻŋāĻāĻ˛ āĻāĻā§āĻā§āĨ¤
āĻāĻŦāĻ āĻ¯āĻĻāĻŋ āĻāĻĒāĻ¨āĻŋ āĻāĻžāĻ¨ā§āĻ¨ āĻ¨āĻž āĻāĻŋāĻāĻžāĻŦā§ āĻā§āĻ˛āĻāĻŋ āĻāĻžāĻ āĻāĻ°ā§, āĻāĻĒāĻ¨āĻŋ āĻāĻāĻŋ āĻ¸āĻ āĻŋāĻāĻāĻžāĻŦā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻ¸āĻā§āĻˇāĻŽ āĻšāĻŦā§āĻ¨ āĻ¨āĻžāĨ¤ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻāĻžāĻŦā§, āĻļā§āĻˇ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻ āĻ¨ā§āĻ¤āĻ¤ āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻžāĻ° āĻāĻŦāĻ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ¨āĻž āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻ¸ā§āĻā§āĨ¤
āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨āĻāĻŋ āĻ¸āĻšāĻ āĻāĻŦāĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻāĻŋāĻ˛ - āĻĒāĻ°āĻŋāĻ¸āĻāĻā§āĻ¯āĻžāĻ¨ āĻ¸āĻāĻā§āĻ°āĻš āĻāĻ°ā§āĻ¨, āĻāĻĻā§āĻĻā§āĻļā§āĻ¯āĻŽā§āĻ˛āĻ āĻ¤āĻĨā§āĻ¯ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻĢāĻ˛āĻžāĻĢāĻ˛āĻā§āĻ˛āĻŋ āĻĻā§āĻā§āĻ¨āĨ¤
āĻĒāĻžāĻ ā§āĻ¯ āĻŦāĻŋāĻˇāĻ¯āĻŧ
āĻāĻāĻ¨āĻŋāĻāĻŋāĻ¤ā§ āĻ°ā§āĻ¯āĻžāĻ¨ā§āĻĄāĻŽ āĻ¸āĻāĻā§āĻ¯āĻž āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻāĻĒāĻžāĻ¯āĻŧ āĻ°āĻ¯āĻŧā§āĻā§ - āĻāĻŽāĻ°āĻž āĻĒāĻžāĻāĻāĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°ā§āĻāĻŋāĨ¤
- System.Random.Next()āĨ¤ āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻĒāĻ°āĻŋāĻ¸āĻ°ā§ āĻĒā§āĻ°ā§āĻŖāĻ¸āĻāĻā§āĻ¯āĻž āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĨ¤
- System.Random.NextDouble()āĨ¤ [0 āĻĨā§āĻā§ āĻĒāĻ°āĻŋāĻ¸āĻ°ā§ āĻĻā§āĻŦāĻŋāĻā§āĻŖ āĻ¨āĻŋāĻ°ā§āĻā§āĻ˛āĻ¤āĻž āĻ¸āĻāĻā§āĻ¯āĻž āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§; 1)āĨ¤
- UnityEngine.Random.Range()āĨ¤ āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻĒāĻ°āĻŋāĻ¸āĻ°ā§ āĻāĻāĻ āĻ¨āĻŋāĻ°ā§āĻā§āĻ˛āĻ¤āĻž āĻ¸āĻāĻā§āĻ¯āĻž (āĻĢā§āĻ˛ā§āĻ) āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĨ¤
- āĻāĻāĻ¨āĻŋāĻāĻŋ āĻāĻā§āĻāĻŋāĻ¨āĨ¤āĻāĻ˛ā§āĻŽā§āĻ˛ā§āĨ¤āĻŽā§āĻ˛ā§āĻ¯āĨ¤ [0 āĻĨā§āĻā§ āĻĒāĻ°āĻŋāĻ¸āĻ°ā§ āĻāĻāĻ āĻ¨āĻŋāĻ°ā§āĻā§āĻ˛āĻ¤āĻž āĻ¸āĻāĻā§āĻ¯āĻž (āĻĢā§āĻ˛ā§āĻ) āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§; 1)āĨ¤
- 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
āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨
āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻžāĻā§ āĻ°ā§āĻ¯āĻžāĻ¨ā§āĻĄāĻŽ āĻ¸āĻāĻā§āĻ¯āĻž āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻāĻĒāĻžāĻ¯āĻŧ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤ āĻ¤āĻžāĻĻā§āĻ° āĻĒā§āĻ°āĻ¤ā§āĻ¯ā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯, āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻĒā§āĻĨāĻ āĻŽā§āĻĄāĻŧāĻ āĻā§āĻ˛āĻžāĻ¸ āĻ˛āĻŋāĻāĻŦ, āĻ¯āĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤:
- āĻŽāĻžāĻ¨ā§āĻ° āĻĒāĻ°āĻŋāĻ¸ā§āĻŽāĻž āĻ¸ā§āĻ āĻāĻ°āĻžāĻ° āĻ¸āĻŽā§āĻāĻžāĻŦāĻ¨āĻž [āĻŽāĻŋāĻ¨āĻŋāĻ/āĻ¸āĻ°ā§āĻŦā§āĻā§āĻ)āĨ¤ āĻāĻ¨āĻ¸ā§āĻā§āĻ°āĻžāĻā§āĻāĻ°ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ¸ā§āĻ āĻāĻ°āĻž āĻšāĻŦā§āĨ¤
- MF āĻĢā§āĻ°āĻ¤ āĻĻā§āĻāĻ¯āĻŧāĻžāĻ° āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĨ¤ āĻāĻžāĻāĻĒ āĻšāĻŋāĻ¸āĻžāĻŦā§ float āĻŦā§āĻā§ āĻ¨ā§āĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻ, āĻāĻžāĻ°āĻŖ āĻāĻāĻŋ āĻāĻ°āĻ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĨ¤
- āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻāĻŋāĻšā§āĻ¨āĻŋāĻ¤ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻāĻ¨ā§āĻŽ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻ¨āĻžāĻŽāĨ¤ āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻŽāĻžāĻ¨ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻā§āĻ˛āĻžāĻ¸ā§āĻ° āĻĒā§āĻ°ā§ āĻ¨āĻžāĻŽ + 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();
}
}
...
}
}
āĻĒā§āĻ°āĻāĻ˛ā§āĻĒ āĻ¸ā§āĻ¤ā§āĻ°ā§ āĻ
Đ ĐĩСŅĐģŅŅĐ°ŅŅ
āĻā§āĻ¨ āĻ āĻ˛ā§āĻāĻŋāĻ āĻāĻāĻ¨āĻž āĻāĻā§āĻ¨āĻŋāĨ¤ āĻ¤āĻžāĻ°āĻž āĻ¯āĻž āĻāĻļāĻž āĻāĻ°ā§āĻāĻŋāĻ˛ āĻ¤āĻž āĻ¤āĻžāĻ°āĻž āĻĒā§āĻ¯āĻŧā§āĻā§ - āĻ¸āĻŦ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§āĻ āĻˇāĻĄāĻŧāĻ¯āĻ¨ā§āĻ¤ā§āĻ°ā§āĻ° āĻāĻā§āĻāĻŋāĻ¤ āĻāĻžāĻĄāĻŧāĻžāĻ āĻāĻāĻāĻŋ āĻ¸āĻŽāĻžāĻ¨ āĻŦāĻŋāĻ¤āĻ°āĻŖāĨ¤ āĻāĻŽāĻŋ āĻĒā§āĻ˛ā§āĻ¯āĻžāĻāĻĢāĻ°ā§āĻŽā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻĨāĻ āĻā§āĻ°āĻžāĻĢ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ā§āĻ° āĻŦāĻŋāĻ¨ā§āĻĻā§ āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻā§āĻāĻŋ āĻ¨āĻž - āĻ¤āĻžāĻ°āĻž āĻ¸āĻŦāĻā§āĻ˛āĻŋ āĻĒā§āĻ°āĻžāĻ¯āĻŧ āĻāĻāĻ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻĻā§āĻāĻžāĻ¯āĻŧāĨ¤
āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻ¤āĻž āĻšāĻ˛:
āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒāĻžāĻāĻāĻāĻŋ āĻĒā§āĻ°āĻāĻ¨ā§āĻŽā§āĻ° āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻĨā§āĻā§ āĻāĻāĻāĻŋ āĻ¸āĻŽāĻ¤āĻ˛ā§ āĻ¸āĻŋāĻā§āĻ¯āĻŧā§āĻ¨ā§āĻ¸ā§āĻ° āĻāĻŋāĻā§āĻ¯ā§āĻ¯āĻŧāĻžāĻ˛āĻžāĻāĻā§āĻļāĻ¨:
āĻāĻŦāĻ 3D āĻ¤ā§ āĻāĻŋāĻā§āĻ¯ā§āĻ¯āĻŧāĻžāĻ˛āĻžāĻāĻā§āĻļāĻ¨āĨ¤ āĻāĻŽāĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° System.Random.Next() āĻāĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻā§āĻĄāĻŧā§ āĻĻā§āĻŦ āĻ¯āĻžāĻ¤ā§ āĻāĻāĻā§āĻā§āĻ āĻ
āĻāĻŋāĻ¨ā§āĻ¨ āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§ āĻ¤ā§āĻ°āĻŋ āĻ¨āĻž āĻšāĻ¯āĻŧāĨ¤
āĻāĻāĻ¨āĻŋāĻāĻŋ āĻāĻā§āĻāĻŋāĻ¨ā§āĻ° āĻ¸ā§āĻŦāĻžāĻāĻžāĻŦāĻŋāĻ āĻŦāĻ¨ā§āĻāĻ¨ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻā§āĻŽāĻŋāĻāĻžāĻ¤ā§ āĻāĻ˛ā§āĻĒāĻāĻŋ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻ°âā§āĻ¯āĻžāĻ¨ā§āĻĄāĻŽ āĻ¨āĻŋāĻā§āĻā§ āĻĒā§āĻ¨āĻ°āĻžāĻŦā§āĻ¤ā§āĻ¤āĻŋ āĻāĻ°ā§āĻ¨āĻŋ: āĻšāĻ¯āĻŧ āĻāĻāĻŋ āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻāĻāĻžāĻŦā§ āĻā§āĻ˛ āĻāĻŋāĻ˛, āĻŦāĻž āĻ¤āĻžāĻ°āĻĒāĻ° āĻĨā§āĻā§ āĻāĻā§āĻāĻŋāĻ¨ā§ āĻāĻŋāĻā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻ¤āĻŦā§ āĻāĻāĻ¨ āĻāĻŽāĻ°āĻž āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤āĨ¤
āĻāĻ¤ā§āĻ¸: www.habr.com