The number of monkeys needed to bash on typewriters randomly before a specific text is likely to be generated in a given non-infinite time. For example, somone may want to know the CSM for a 90% probability of getting the source for Linux 10.0.0 in one week.

# Method to determine CSM

(may need some work/correction)

Required variables:

• S - Symbols in alphabet
• M - size of message in symbols
• t - average time between keypresses for each monkey
• P - desired probability of generating message
• T - desired completion time
• Q - number of monkeys.

Working:

1. Time to produce a message of correct length: tM.
2. Probability such a message is correct: 1/SM
3. Number of messages which should be produced to obtain the desired probability of a correct message: log(1-P)/log(1-(1/SM))
4. Number of messages created by Q monkeys in time T: QT/tM
5. Therefore number of required monkeys: Q = t × M × log(1-P)/(T × log(1-(1/SM))).

Examples:
Assuming t = 0.2, M = 7 (largest message size where matlab generates answer!), S = 128, P = .9, T = 604800, Q works out as 3 billion. Which is large for such a short message.

Even reducing the number of symbols in the alphabet to 26 allows a message size of only 11 characters before Microsoft Excel gives up the ghost at about 38 billion monkeys.

These are of course numbers of monkeys. Conversion to a mass of monkeys (in newtons) is left as an exercise for the reader.

Log in or register to write something here or to contact authors.