Первый ученик думает: "Пусть на мне серая шапка. Тогда второй ученик, видя перед собой черную и серую шапку, должен рассуждать так :"Если на мне серая шапка, то третий должен выйти бы сразу (так как видел бы две серых шапки на мне и на первом ученике), он не уходит, значит на мне черная шапка"". Тогда второй ученик должен был бы выйти потому что понял, какая у него шапка. Но он не уходит. Значит на мне не серая, а черная шапка.