Genetic Algorithm Explanation:

This program uses a natural selection process to guess a phrase of the user's choice. To begin with, 200 random phrases are generated. Out of these 200 phrases, the ones closest to the target phrase are selected and the other ones are forgotten. The selected phrases make 200 children, or in other words, phrases equally as close to the target phrase as themselves, but with a slight chance of a mutation. If a mutation occurs, a character randomly changes, but since there are so many children, there will be some mutations that will end up being in favour of getting closer to the target phrase. Ultimately, this natural selection process is repeated until the best phrase is the target phrase. The user can not only change the phrase, but can change the number of phrases generated and the mutation rate.