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.

Y'know, if you log in, you can write something here, or contact authors directly on the site. Create a New User if you don't already have an account.