![]() |
|
Модераторы: Poseidon |
![]()
|
|
| oekamon |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 24.11.2005 Репутация: нет Всего: нет |
Задачка такая:
Дано множество координат точек в виде списка второго уровня вложенности (например, ((1 0) (0 1) (1 2) ...)). Необходимо из всего множества точек найти такую пару, чтобы через эту пару точек можно было бы провести прямую, и эта прямая не содержала бы только эти две точки и никакую третью из данного множества. Точнее, нужно просто указать, есть такая пара, или нет. Алгоритм примерно такой: создать дополнительный список, содержащий все сочетания точек по три (C(n,k)=n!/(n-k)!k!), а затем для каждой тройки посчитать определитель ((x2 - x1)(y3 - y1) - (x3 - x1)(y2 - y1)). Если определитель не равен 0, то три точки не лежат на одной прямой (по идее, "площадь треугольника, вершины которого - вот эти точки, не равна 0"), и этот случай нам подходит. Возвращаем T, иначе строим прямую для следующей тройки. Все бы было замечательно, но я не могу придумать, как можно сделать список сочетаний (кто не понял, что такое сочетания - это биномиальные коэффициенты Ньютона, или "цэ из эн по ка"). Заранее благодарю за помощь. |
|||
|
||||
| adejneka |
|
||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 8.7.2005 Где: Москва, Россия Репутация: 2 Всего: 11 |
Список сочетаний:
или так:
Надо же, а я-то всегда считал, что "цэ" - это количество сочетаний... |
||||||
|
|||||||
| oekamon |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 24.11.2005 Репутация: нет Всего: нет |
Спасибо огромное, как раз до этого я не мог дойти. Строить прямые - уже намного проще...
Я, в общем, это и имел в виду, простите, если перепутал... |
|||
|
||||
| Cr@$h |
|
|||
![]() Исследователь ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1693 Регистрация: 3.4.2005 Где: Санкт-Петербург, Россия Репутация: 3 Всего: 41 |
|
|||
|
||||
![]()
|
| Правила форума "Центр помощи" | |
|
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Центр помощи | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |