Докажем, что за столом сидит не более девяти хоббитов. Разобьём жителей на девять групп по три сидящих подряд жителя. В каждой такой группе сидит не больше одного хоббита, следовательно, хоббитов не больше девяти.
Теперь докажем, что в правильном 27-угольнике можно образовать тремя вершинами равносторонний треугольник. Пронумеруем вершины 27-угольника как A₁, A₂, ... , A₂₇. Докажем, что A₁A₁₀ = A₁₀A₁₉ = A₁₉A₁. Для этого совместим наложением ломаную A₁A₂...A₁₀ с ломаной A₁₀A₁₁...A₁₉. Так как A₁A₂ = A₁₀A₁₁ (27-угольник правильный), то отрезок A₁A₂ наложится на отрезок A₁₀A₁₁, а так как ∠A₁A₂A₃ = ∠A₁₀A₁₁A₁₂, то следующие два отрезка, которые тоже равны, будут находиться под равным углом от этих, следовательно, наложатся друг на друга. Таким образом совмещается и остальная часть ломаных. Так как точка A₁ совместилась с точкой A₁₀, а точка A₁₀ с точкой A₁₉, то A₁A₁₀ = A₁₀A₁₉. Аналогичным образом доказывается, что A₁A₁₀ = A₁₉A₁ = A₁₀A₁₉, следовательно, равносторонний треугольник можно образовать тремя вершинами правильного 27-угольника. Всего у нас 9 способов выбрать три вершины для треугольника (они не пересекаются). Назовём вершины такого треугольника "тройкой" (точнее жителей, сидящих на местах в его вершинах).
Пусть за столом сидело ровно девять хоббитов. Так как между двумя любыми хоббитами сидит не меньше двух викингов, между каждыми двумя хоббитами должно сидеть по два викинга. Значит, остаток от деления на 3 мест, на которых сидят хоббиты, одинаков для всех хоббитов. Значит, три викинга, сидящие на равных расстояниях друг от друга, найдутся (так как хоббиты занимают всего три "тройки").
Пусть за столом было не более 8 хоббитов, тогда можно разбить всех жителей за столом на 9 "троек" (помним, что это - равносторонний треугольник с вершинами в вершинах многоугольника, стороны которого, разумеется, равны). Тогда найдётся "тройка", в которой нет ни одного хоббита, следовательно, в ней все являются викингами, которые сидят на равных расстояниях друг от друга.