Учитывая количество вершин n ≥ 3
и «размер шага» 1 ≤ m < n/2
(указывающий расстояние между двумя соединенными вершинами), выведите графическое представление соответствующей регулярной полиграммы . Если полиграмма состоит из нескольких замкнутых циклов, каждый цикл должен быть представлен другим цветом линии. (Если это звучит странно, примеры, приведенные ниже, должны прояснить ситуацию.)
правила
Любое разумное решение проблемы, скорее всего, будет удовлетворять этим правилам автоматически - они просто налагают некоторые ограничения на параметры вывода, чтобы избежать ответов типа «Этот черный блок является полностью полиграммой, но вы не можете видеть это, потому что Я установил ширину линии более 9000 ".
- Вы можете визуализировать полиграму либо в файл (который может быть записан на диск, либо в стандартный поток вывода), либо отобразить его на экране.
- Вы можете использовать векторную или растровую графику. Если ваш вывод растеризован, ваше изображение должно иметь размеры 400x400 пикселей или более, а радиус полиграма (расстояние от центра до каждой вершины) должен составлять от 35% до 50% длины стороны.
- Соотношение сторон полиграммы должно быть 1 (чтобы вершины лежали на правильном круге) - холст изображения может быть прямоугольным.
- Линии полиграммы должны быть не толще 5% от радиуса (и, конечно, они должны иметь ненулевую толщину, чтобы быть видимыми).
- Вы можете визуализировать оси или рамку в дополнение к полиграмме, но не более того.
- Вы можете выбрать любой (сплошной) цвет фона.
- Для полиграмм, состоящих из нескольких замкнутых циклов, вы должны поддерживать как минимум 6 визуально отличных цветов, каждый из которых должен отличаться от фона. (Серая шкала в порядке, при условии, что оттенки достаточно распределены по спектру.) Ваш код должен по-прежнему работать для более чем 6 циклов, но цвета не должны быть различимы для каких-либо дополнительных циклов (то есть вы также можете использовать повторно цвета из предыдущих циклов в этой точке).
Это код гольф, поэтому самый короткий ответ (в байтах) выигрывает.
Примеры
Вот все выходные данные до n = 16
(где столбец соответствует n
и строка m
):
Нажмите для увеличения версии.
В качестве примеров для большего n
, вот (n, m) = (29, 11)
и (30, 12)
: