Randomness
From Maze
(Difference between revisions)
(→Randomness in Contemporary Computing) | |||
| Line 93: | Line 93: | ||
Within the last decade, however, as a new generation of visual artists have started to program their work, computed random numbers are playing an increased role in the visual landscape. The most prominent programming languages visual artists are using have functions for generating random numbers and noise values, as well as setting the random seed value to repeat a sequence. With the perspective of time, it seems that aesthetic computational work and random values are intertwined. Writing in 1970, Noll highlights randomness as an essential feature of the computer in relation to the arts: "The computer is a unique device for the arts since it can function solely as an obedient tool with vast capabilities for controlling complicated and involved processes, but then again, full exploitation of its unique talents for controlled randomness and detailed algorithms could result in an entirely new medium – a creative artistic medium." | Within the last decade, however, as a new generation of visual artists have started to program their work, computed random numbers are playing an increased role in the visual landscape. The most prominent programming languages visual artists are using have functions for generating random numbers and noise values, as well as setting the random seed value to repeat a sequence. With the perspective of time, it seems that aesthetic computational work and random values are intertwined. Writing in 1970, Noll highlights randomness as an essential feature of the computer in relation to the arts: "The computer is a unique device for the arts since it can function solely as an obedient tool with vast capabilities for controlling complicated and involved processes, but then again, full exploitation of its unique talents for controlled randomness and detailed algorithms could result in an entirely new medium – a creative artistic medium." | ||
| − | == Randomness in Contemporary Computing == | + | == Randomness in Contemporary Computing (Sidebar) == |
| − | Randomness is not always visible to everyday computer users, though it is often used in ordinary computing tasks. Randomness plays an essential role in the security and networking systems of networked computers, for instance, and is also seen in popular computer games. Certain uses of randomness lie farther behind the computing experience -- the use of pseudo-random number generators for hashing, the simulation and testing of systems using randomness -- but security, networking, and gaming are a few of the ones that are closest at hand. | + | In the many examples of randomness given here, the random element of the process -- whether computational, literary, or aesthetic -- is often foregrounded, or at least obvious. Randomness is not always visible, however, even though it is often used in ordinary computing tasks. Randomness plays an essential role in the security of networked computers, for instance, and is also a part of popular computer games. Other uses of randomness lie beyond the everyday computing experience, but security, networking, and gaming are a few of the ones that are closest at hand. |
| − | When a computer needs to generate a new password for a user, a URL that will let someone in to reset a password, or a CAPTCHA that will help to keep automated spammers out and allow legitimate users access, randomness is invoked. A regular password would allow for a password, URL, or distorted word that could be predicted. But randomness also plays a role behind the scenes of protocols such as SSH (Secure Shell) and SSL (Secure Sockets Layer). Random values are used in a few ways, including the generation of keys for encryption and to pad out the rest of a block when the plain-text message is too short to complete it. Without randomness, it wouldn't be possible to complete a secure credit card transaction on the Web, which happens over an SSL connection. In fact, early versions of SSL as implemented in the Netscape browser suffered from being insufficiently random. The seeds for random number generation were the current time, the process ID, and the parent process ID, which were sufficiently predictable to leave the browser vulnerable to attack. Better randomness was the solution to this problem. | + | When a computer needs to generate a new password for a user, a URL that will let someone reset a password, or a CAPTCHA to keep automated spammers at bay, randomness is invoked. A non-random regular password could easily be predicted, but a random password, URL, or distorted word is much harder to crack through guessing or brute force. Randomness also plays a role behind-the-scenes of protocols such as SSH (Secure Shell) and SSL (Secure Sockets Layer) in a few ways, including the generation of keys for encryption and padding out the rest of a block when a plain-text message is too short to complete it. Without randomness, it would not be possible to complete a secure credit card transaction on the Web, which happens over an SSL connection. In fact, early versions of SSL as implemented in the Netscape browser suffered from being insufficiently random. The seeds for random number generation were the current time, the process ID, and the parent process ID, which were sufficiently predictable to leave the browser vulnerable to attack. Better randomness was the solution to this problem. |
| − | Computers using Ethernet -- almost all of those that are plugged into wired networks -- communicate with one another thanks to randomness, too. All systems on a single local area network send information over the same wire. If two of them start sending at the same time, what is known as a "collision" occurs; the data sent is not intelligible to the intended recipients. When a collision happens, a sending computer that detects the problem, sending a jamming signal and trying to restart the transmission. But instead of restarting immediately, it chooses at random to start or wait -- and the other computer that was trying to send does the same. If there is another collision, the computers either send immediately or wait for one of three intervals. The increasing number of intervals is part of the technique of exponential backoff; the selection of one of these intervals at random is an essential part of this method of avoiding network congestion. | + | Computers using Ethernet -- almost all of those that are plugged into wired networks -- communicate with one another thanks to randomness, too. All systems on a single local area network send information over the same wire. If two of them start sending at the same time, what is known as a "collision" occurs; the data sent is not intelligible to the intended recipients. When a collision happens, a sending computer detects the problem, sends a jamming signal, and tries to restart the transmission. But instead of restarting immediately, the computer chooses at random to start or wait -- and the other computer that was trying to send does the same. If there is another collision, the computers either send immediately or wait for one of three intervals. The increasing number of intervals is part of the technique of exponential backoff; the selection of one of these intervals at random is an essential part of this method of avoiding network congestion. |
A typical computer user of the 2010s will encounter randomness in many computer games. Randomness will shuffle the cards in poker or solitaire, for example, and will be invoked to arrange jewels and tiles in casual games. Randomness may used to determine the behavior of computer opponents, whether in poker or chess. Some action, arcade-style, open-world, and other games incorporate randomness in other ways to determine what happens. Many early games and certain contemporary ones, however, are entirely deterministic. As those who discovered and exploited <i>Pac-Man</i> patterns know, it is deterministic; <i>Ms. Pac-Man,</i> in contrast, uses randomness. | A typical computer user of the 2010s will encounter randomness in many computer games. Randomness will shuffle the cards in poker or solitaire, for example, and will be invoked to arrange jewels and tiles in casual games. Randomness may used to determine the behavior of computer opponents, whether in poker or chess. Some action, arcade-style, open-world, and other games incorporate randomness in other ways to determine what happens. Many early games and certain contemporary ones, however, are entirely deterministic. As those who discovered and exploited <i>Pac-Man</i> patterns know, it is deterministic; <i>Ms. Pac-Man,</i> in contrast, uses randomness. | ||
