Random Number Generators
Random number generation
Random number generation is a method by which, usually via the random number generator (RNG), a sequence of numbers or symbols that cannot be easily forecasted better than random chance is generated. This implies that the resultant sequence could contain patterns that are recognizable in hindsight yet unpredictable to the foresight. True random number generators can be hardware random-number generators(HRNGS) that produce random numbers, and each generation is a function of the current value of a physical environment's attribute , which is constantly changing in a way that is difficult to predict. This would be in contrast to so-called "random number generations" done by pseudorandom number generators (PRNGs) that generate numbers that only look random but are in fact pre-determined--these generations can be reproduced simply by knowing the state of the PRNG.
Many applications of randomness have led the way to the development of a variety of methods for producing random data. Some of these have existed since the beginning of time, and there are many well-known "classic" examples, including the rolling of dice, coin flipping, the shuffling of playing cards, the usage of yarrow plants (for divination) found in the I Ching, as well as countless other methods. Because of their mechanical character of methods creating large amounts of random numbers (important in statistics) required lots of work and time. Therefore, the results could be collected and then distributed as random number tables.
A variety of algorithms for pseudorandom number generation exist. All fall short of the notion of real randomness, though they do have a chance to pass, but with varying degrees of performance, some statistical tests for randomness intended to measure how unpredictable their results are (that is the extent to which their patterns can be discerned). These tests are usually not appropriate to be used in applications such as encryption. However, well-designed security-assured cryptographically secured pseudorandom generators (CSPRNGS) also exist, with special features specifically designed for use in cryptography.
Practical applications and uses [edit]
Principal article: Uses of randomness
Random number generators are used for the gambling industry, statistical sampling and computer simulation, cryptography, entirely randomized design as well as other areas where a random outcome is desired. In general, for applications that have an element of uncertainty as the primary characteristic, such as in security applications, hardware generators are preferred over pseudorandom algorithm, if possible.
Pseudorandom number generators are very helpful in the creation of Monte Carlo methods of simulations because they allow for debugging. This is facilitated by their ability to run the same sequence of random numbers again by starting with the same random seed. They are also used in cryptography - so long that it is ensured that the seed is not disclosed. Both receivers and senders can generate the identical set of numbers for use as keys.
The creation of pseudorandom numbers is an essential and regular task in computer programming. While cryptography and some mathematical algorithms require a extreme degree of visible randomness, other tasks require only a modest amount of unpredictability. Simple examples include showing a user a "random quote of the day", or determining which way a computer-controlled adversary might move during a computer game. More shrewd forms of randomness are employed in hash algorithms as well as when creating amortized-searching or sorting techniques.
Some applications which appear at initially to be appropriate for randomization however, they aren't all that simple. For instance, a system which "randomly" selects music tracks to play as background music must only have the appearance of random. It could even allow for control over the choice of music such that a genuine random system will not have any limitations on the same item appearing multiple times.
Comments
Post a Comment