Multi Threaded Problem With People As Computer

August 30, 2010

At my church there is a wall with all the people who donated when the church was built. I think it may have a thousand or so names on it, all in what appears to be a random order.

One day I waiting in the front of the wall for something and wondered how would I determine if there was a duplicate name on the wall. Obviously if you had a list in a computer it would be trivial. I could also imagine entering all the names into a spreadsheet and then sorting them, or even using the command line.

What if you only had a piece of paper and pencil? What strategy would you use?

Even more interesting would be what you could do if you had more than one person; how would you combine your efforts to speed up the process? Is there an optimum number of people to get the lowest possible time and any time thereafter just makes it take longer?

It is interesting to think of multi threaded problems in this way; you could even try it sometime with people to get a feel for the problems of writing multi threaded code. I guess it wouldn't be popular at parties unless all your party goers were programmers!