«Либо — либо» означает «по крайней мере одно из двух» (а может быть, и то и другое). Следовательно, если бы у вышедшего из домика братца была карта черной масти, то было бы верно, что либо он Траляля, либо у него карта черной масти. Но это означало бы, что обладатель карты черной масти высказал истинное утверждение. Так как это невозможно, то у говорившего не может быть карты черной масти. Следовательно, у него должна быть карта красной масти, а его утверждение должно быть истинным. В свою очередь это означает, что либо его зовут Траляля, либо у него карта черной масти. Поскольку вторая альтернатива по доказанному выше не выполняется, наш герой Траляля с красной картой в кармане.
На этот раз невозможно определить, какой масти (красной или черной) карта того, кто вышел из домика, но и в том и в другом случае это должен быть Траляля. Предположим, что у него карта красной масти. Тогда он говорит правду. Следовательно, перед Алисой либо Траляля с картой черной масти, либо Труляля с картой красной масти. Первый вариант отпадает (так как у нашего героя карта красной масти). Остается второй вариант, поэтому перед Алисой не кто иной, как Труляля.
С другой стороны, предположим, что у него карта черной масти. Тогда высказанное им утверждение ложно. Значит, он не может быть ни Траляля с картой черной масти, ни Труляля с картой красной масти. Следовательно, он либо Траляля с картой красной масти, либо Труляля с картой черной масти. Первая альтернатива отпадает (так как по доказанному у него в кармане карта черной масти). Остается вторая альтернатива: перед Алисой Труляля, как и в разобранном выше случае.
Предположим, что у говорившего красная карта. Тогда высказанное им утверждение истинно. Значит, перед Алисой должен быть Труляля. Предположим теперь, что у говорившего черная карта. Тогда высказанное им утверждение ложно. Значит, у Траляля не черная карта. Вместе с тем у того, кто вышел из домика, в кармане черная карта. Следовательно, он не может быть Траляля и его в этом случае зовут Труляля.
Итак, и в том и в другом случае из домика на этот раз вышел Труляля.
Если бы у первого братца была карта красной масти, то мы пришли бы к следующему противоречию. Предположим, что у первого братца карта красной масти. Тогда высказанное им утверждение истинно. Следовательно, второго братца зовут Труляля, а его самого Траляля. Таким образом, первый братец Траляля с картой красной масти. Если это так, то утверждение высказанное вторым братцем, истинно. Но тогда как мог лгать первый братец, который говорит правду, утверждая, будто его братец Труляля с картой черной масти? Следовательно, у первого братца не может быть карты красной масти: у него должна быть карта черной масти.
Так как у первого братца карта не красной масти, то высказанное вторым братцем утверждение не может быть истинным. Значит, и у второго братца карта черной масти. Если бы второго братца звали Труляля, то он был бы Труляля с картой черной масти. Тогда первый братец сказал бы правду. Но первый братец солгал (так как у него карта черной масти). Следовательно, второго братца зовут не Труляля. Значит, Труляля зовут первого братца.
Говоривший не мог быть Траляля с картой оранжевой масти, ибо в противном случае он сказал бы правду, заявив: «У меня карта оранжевой масти».
Говоривший не мог быть и Траляля с картой пурпурной масти, ибо в противном случае он солгал бы, утверждая: «У меня карта оранжевой масти».
Следовательно, говорившего звали не Траляля. Значит, это был Труляля (либо с картой пурпурной масти и говорящий правду, либо с картой оранжевой масти и лгущий).
Полезный принцип, которым мы воспользуемся в этой и некоторых других задачах, состоит в следующем: если у братцев две карты одной масти, то один из братцев лжет, а другой говорит правду. (Если бы у них были карты оранжевой масти, то Траляля говорил бы правду, а Труляля лгал бы. Если бы у них были карты пурпурной масти, то Труляля говорил бы правду, а Траляля лгал.) С другой стороны, если карты различных мастей, то братцы либо оба лгут, либо оба говорят правду.