100 (or some even number 2N :-) ) prisoners are in a room A. They are numbered from 1 to 100.
One by one (from prisoner #1 to prisoner #100, in order), they will be let into a room B in which 100 boxes (numbered from 1 to 100) await them. Inside the (closed) boxes are numbers from 1 to 100 (the numbers inside the boxes are randomly permuted!).
Once inside room B, each prisoner gets to open 50 boxes (he chooses which one he opens). If he finds the number that was assigned to him in one of these 50 boxes, the prisoner gets to walk into a room C and all boxes are closed again before the next one walks into room B from room A. Otherwise, all prisoners (in rooms A, B and C) gets killed.
Before entering room B, the prisoners can agree on a strategy (algorithm). There is no way to communicate between rooms (and no message can be left in room B!).
Find a strategy (algorithm) that maximizes the probability that all prisoners survive. What probability does your algorithm achieve?
Edits:
Note that I did ask if it was OK to post puzzles. I'd like to get some feedback from people downvoting if possible!
@Ross: doing things randomly (what you call 'no strategy') indeed gives a probability of 1/2 for each prisoner, but then the probability of all of them surviving is 1/2^100 (which is quite low). One can do much better!
The prisoners are not allowed to reorder the boxes!
Also, be assured that I do have an interesting solution. I'll post it in a week or so :)
@Sam Hasler: all prisoners are killed the first time a prisoner fails to find his number. And no communication is possible.
Hint: one can save more than 30 prisoners on average, which is much more that (50/100) * (50/99) * [...] * 1
@Rob Cooper: I get your point (no point in yelling!), however it reflects your opinion (and that of some others I'm sure), and I don't yet see a consensus on that matter. I do respect your opinion (didn't vote on your answer, or on any other by the way), but I'd really like to have this clarified (in the FAQ for example...).
@Jorge: I still didn't get into the details of your solution, but I believe that you can indeed do it this way. However, this is basically using time to communicate. The solution I have in mind doesn't involve any kind of communication (so people can't rely on time, for example).
@chakrit: it would help if you provided the probability that your method achieves. In case it's too complicated to work out, running simulations (Monte-Carlo like) would give you an estimate!
@jbettis: this is indeed the solution I had in mind (and believe me or not, but I found it myself when presented with the problem). As for the wording, I'm sorry but I'm not a native English speaker. For the specific wordings you refer to: for me, saving more that 30 on average is equivalent to your wording; also the problem is the same if you kill all prisoners as soon as one fails...