Может, через рациональность тангенсов и несократимость выражающих их дробей?
Не понял, как именно? Напишите пример или дайте ссылку, пожалуйста!
Поискал про "рациональность тангенсов", ничего толком не нашел.
-- Ср май 22, 2013 20:59:22 --Не забудьте ещё, что есть отрезки и с другим наклоном, которые нельзя приставить к началу координат.
Да, я этого не учёл, но уже исправил. Сейчас буду писать ответ Sonic86, там расскажу текущее положение дел.
-- Ср май 22, 2013 21:26:06 --Необходимо найти количество отрезков внутри этой решетки, каждый из которых состоит хотя бы из трёх точек (например, отрезок
подходит).
Вы считаете именно отрезки или тройки точек, лежащих на одной прямой? Т.е.
и
- это один и тот же отрезок или нет?
И еще, если считаются отрезки, то считаются именно отрезки ненулевой длины? Если 2 из 3-х точек совпадают, то такая тройка задает отрезок? И считаем мы именно отрезки, а не прямые, задаваемые тройкой точек? Т.е.
и
- это разные отрезки?
При
у меня получилось число отрезков
. У Вас так?
Я считаю именно отрезки. Из Вашего примера отрезки
и
-- разные. Отрезки нулевой длинны не считаются; если совпадают пара точек, то это не подходящий отрезок.
и
- это разные отрезки, верно.
Для
получается
: три вертикальных, три горизонтальных отрезка и две диагонали (отдельная координата измеряется от 0 до 2).
На этой неделе совсем не было время толком об этом подумать, но пока наклёвывается такое решение (отличное от того, что в топике):
- Перебираем все взаимнопростые числа (по генератору из википедии).
- Каждая такая пара задаёт семейство отрезков.
- Будем перебирать целые числа и , в результате получаем отрезки и , лежащие на одной прямой. Каждый такой "большой" отрезок задаёт прямоугольник (этот отрезок является его диагональю).
- Осталось найти количество способов расположения прямоугольника в большом квадрате, это тривиально.
Сложность --
(цикл по парам взаимнопростых, цикл по
, цикл по
), что неприемлемо. Но, вроде бы, удаётся провести оптимизацию: будем перебирать только по
, будут получаться прямоугольники, количество расположений на его диагонали средней точки тривиально, без циклов, вычисляется. Итого сложность уже
, что чуть лучше... Кажется, можно как-то связать взаимно-простую пару
и возможные значения
, если так, то получится
, ещё лучше! Но когда
всё равно не то...
P.S. Вообще, я решаю задачку Проекта Эйлера №415, но всё никак не могу придумать вменяемый алгоритм. Я решал несколько задачек из верхней сотни, открывается доступ к обсужденям -- смотришь, и часто бывает, что народ решал задачу на основании каких-то новых мат.разработок, т.к. частенько дают ссылки на диссертации, где решается сходная задача. Это, конечно, раздражает! Получается, задачи можно решать нагугливанием, но для этого надо разбираться в новейших достижениях... Это хорошо для математиков, но я -- просто развлекающийся программист :)
А ещё возникает вопрос этичности, могу ли я обсуждать решение задачи на форумах? Я считаю, что обсуждать
направление поиска -- можно, а вот получить готовое решение -- уже неэтично. Поэтому я прошу направление -- где искать, какая область математики?