Прежде всего заметим, что A не может быть рыцарем, так как если бы A был рыцарем, то его высказывание было бы ложным (рыцарь как особа высшего ранга не может быть по рангу ниже B). Предположим, что A - лжец. Тогда его высказывание ложно. Следовательно, A по рангу не может быть ниже, чем B. Значит, B также должен быть лжецом (так как если бы B не был лжецом, то A был бы особой более высокого ранга, чем B). Но это невозможно, так как высказывание B противоположно высказыванию A, а два противоположных высказывания не могут быть истинными одновременно. Следовательно, предположение, что A - лжец, приводит к противоречию. Значит, A не лжец, но тогда A должен быть нормальным человеком.
А что можно сказать о B? Если бы он был рыцарем, то A (будучи нормальным человеком) был бы особой более низкого ранга, чем B. Тогда высказывание A было бы истинным, из чего следовало бы, что высказывание B ложно. Таким образом, рыцарь высказал бы ложное утверждение, что невозможно. Значит, B не рыцарь. Предположим, что B был бы лжецом. Тогда высказывание A было бы ложным, из чего следовало бы, что высказывание B истинно. Таким образом, лжец высказал бы истинное утверждение, что невозможно. Следовательно, B не может быть не только рыцарем, но и лжецом. Значит, B - нормальный человек.
Итак, A и B - нормальные люди. Высказывание A ложно, высказывание B истинно. Тем самым задача полностью решена.