It's all algebra. It's not fuzzy, it's quite precise.
The unknown variable is each monk's own forehead
F = monk's own forehead
D = total number of dots
The question is: Is F a subset of D?
M = total number of monks
Each monk sees (M - 1) other foreheads. (M - F)
M is a known value [in this version M = 100]
F is a known value [F = 1 in all versions]
D is an unknown value, BUT we know it is greater than 0
U = number of uninfected monks [U = M - D)
E = number of evenings
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
On the first evening, E = 1
U = M - D = 99
D = 1 = F = E
There is one dotted monk, and he knows who he is, on the first evening
- - - - - - - - - - - - - - - - - - -
On the second evening, E = 2
D both know that D is greater than 0. They also know that if D = 1 then D would have died when E = 1
Therefore, since D is greater than 0, and also greater than 1, then D must = 2
D = 2 = E = F + 1
- - - - - - - - - - - - - - - - - - - - - -
No matter what number you give to D, D will always = E
The number of dots always equals the number of evenings
F is a subset of D if E = D - 1
in other words:
If you see one less dot than the number of evenings, you know that you have a dot

The unknown variable is each monk's own forehead
F = monk's own forehead
D = total number of dots
The question is: Is F a subset of D?
M = total number of monks
Each monk sees (M - 1) other foreheads. (M - F)
M is a known value [in this version M = 100]
F is a known value [F = 1 in all versions]
D is an unknown value, BUT we know it is greater than 0
U = number of uninfected monks [U = M - D)
E = number of evenings
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
On the first evening, E = 1
- If D = 1:
- U see 1 dot (D)
- D sees 99 uninfected monks (U)
U = M - D = 99
D = 1 = F = E
There is one dotted monk, and he knows who he is, on the first evening
- - - - - - - - - - - - - - - - - - -
On the second evening, E = 2
- If D = 2
- U see 2 dots (D)
- D see 1 dot (D-1)
D both know that D is greater than 0. They also know that if D = 1 then D would have died when E = 1
Therefore, since D is greater than 0, and also greater than 1, then D must = 2
D = 2 = E = F + 1
- - - - - - - - - - - - - - - - - - - - - -
No matter what number you give to D, D will always = E
The number of dots always equals the number of evenings
F is a subset of D if E = D - 1
in other words:
If you see one less dot than the number of evenings, you know that you have a dot
