82. Dawkins' weasel

Dawkins' weasel, also known as the weasel program, is a relatively simple text simulation that was intended to demonstrate how random variation and selection can lead to non-random results. The idea was inspired by the infinite monkey theorem, which states that a monkey typing randomly on a typewriter for an infinite amount of time will eventually reproduce all of the works of William Shakespeare. Thinking about that theorem, Richard Dawkins decided to write a simulation that would generate Hamlet's line, "Methinks it is like a weasel." (Hamlet, Act 3, Scene 2.)

The simulation starts with a completely random string of 28 letters and spaces. (The Hamlet quote is 28 characters long.) The program then creates a sequence of generations until the random string morphs into the target string.

During each generation, the program creates a certain number (the generation size) of copies of the best string found so far. Each copy is the same as the current best string, but there is a certain probability that any given character in the copy will be mutated into a random letter. After creating each of the generation's new values, the program saves the one that is closest to the target string as the new best string.

The process continues until the best string matches the target string exactly.

For this problem, write a Dawkins' weasel program. Allow the user to enter the generation size and mutation probability. After the program finishes running the simulation, display the best strings found during each generation and the total number of generations required to reach the target string.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset