Blog

Best posts

About me

Shop

CAD Dojo

Hardbin

URL Canary

SCAMP CPU

Collapse OS docs

Seasonal.css

Stegoseed

Image Steganography

Mojibake Steganography

Chess Steganography

4x4 Chess Puzzle

Chess Clock

Anagram Deputy

«prev random next»

*Fri 3 March 2017*

I read a story, in some online comment section, about a clever trick the US Army used to work out how many soldiers were taking drugs. It went something like this:

The army asked all the soldiers if they had ever taken any drugs. They had to tick yes or no.

They knew the drug-takers would lie, so they introduced a twist. Each soldier was to toss a coin. If it came up heads, they had to answer the truth. If tails, they had to lie.

Statistically, if no one had been taking drugs, 50% of the final result would be positive for drug use (those who got tails), and 50% would be negative (those who got heads).

But the answer they got was almost 60-40, which meant about 10% of soldiers had been taking drugs. By using this method, they got the soldiers to tell the truth without fear of individual reprisal.

It should be clear that given any individual soldier's answer, it is impossible to determine whether or not he has been taking drugs. If his answer is "yes", then it means either he got heads and has been taking drugs, or he got tails and has not been taking drugs. The coin flip is 50:50, so we have no information about whether or not he has been taking drugs.

I assert that, even taken in aggregate, this gives us no information about whether *any* of the soldiers have been taking drugs.

50% of the true "yes" answers are changed to "no", but 50% of the true "no" answers are changed to "yes". This means 50% of all our answers are "yes", regardless of how many were "yes" before being changed.

Don't believe me? Imagine if every soldier has been taking drugs: 50% of them flip heads and write "yes", 50% flip tails and write "no". This is exactly the same result, given in the story, as we'd get if none of the soldiers have been taking drugs!

Now imagine if 20% of soldiers have been taking drugs: 10% of the soldiers (half the drug-takers) flip heads and write "yes", 10% of the soldiers (half the drug-takers) flip tails and write "no", 40% of the soldiers (half the non-drug-takers) flip heads and write "no", 40% of the soldiers (half the non-drug-takers) flip tails and write "yes". 10% + 40% = 50%, for both "yes" and "no".

As long as each soldier inverts his response with 50% probability, we get half "yes" and half "no", regardless of how many soldiers have actually been taking drugs.

So while the story is quite fun and might seem to make sense, it doesn't actually work. The only way for the answer to come out 60-40 is by random chance, or if the soldiers are using biased coins, or are otherwise failing to carry out the procedure correctly.

**Update 2017-07-12:** Aka writes:

Regarding this article - the journalist probably just got the explanation wrong.

I believe it does work with this setup:

- If you get tails, tell the truth
- If you get heads, give the "bad" answer
"60% have taken drugs" is then interpreted as 50% of the people got heads, and of the remaining truth-telling 50%, 10% said yes, and 10/50==20%, so there's a 20% use rate.

Which looks like it would work.