Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Срочно прога на С нужна, Реализовать матем. задачу 
:(
    Опции темы
gelo777
  Дата 29.5.2006, 20:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 29.5.2006

Репутация: нет
Всего: нет



 smile 
Очень прошу, пожалуйста - помогите, не знаю куда уже кинуться, нужна помощь. Написать программу , решающую математическую задачу.
Задача: Даны два моножества на плоскости. Выбрать три точки из второго множества таким образом, чтобы составленный из них треугольник полностью накрывал первое множество и его площадь при этом была минимальной.
 Помогите, плизз! Осталось мало времени  smile  
PM MAIL   Вверх
jxr
Дата 29.5.2006, 20:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 338
Регистрация: 31.7.2005

Репутация: нет
Всего: нет



Причем здесь С? Надо алгоритм? - есть форум "Алгоритм". 
PM MAIL   Вверх
sergejzr
Дата 29.5.2006, 20:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 11
Всего: 360



Для домашних заданий, курсовых, существует "Центр Помощи"

Тема перенесена!

Добавлено @ 20:40 
Из С++ 


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Friackazoid
Дата 30.5.2006, 11:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 148
Регистрация: 23.2.2006

Репутация: 1
Всего: 3



Уточните каким образом задаются множества. И как должен быть оформлен вывод программы. 
--------------------
Даже если тебя съели, то все равно есть два выхода.42Team блог
PM MAIL WWW ICQ GTalk   Вверх
nostromo
Дата 30.5.2006, 14:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 194
Регистрация: 23.3.2006

Репутация: 4
Всего: 10



Алгоритм может быть примерно такой (компромисс между простотой и эффективностью):
1. Строим выпуклую оболочку первого множества и выбрасываем из второго множества все точки, попадающие в нее.
2. Перебираем все пары оставшихся во втором множестве точек и выбираем только те, для которых соответствующий отрезок не пересекает выпуклую оболочку первого множества.
3. В получившемся графе из точек и отрезков ищем циклы длины три, для каждого из них проверяем, что соответствующий треугольник содержит первое множество (достаточно взять одну любую точку первого множества) и вычисляем его площадь.
4. Среди выбранных на предыдущем шаге треугольников выбираем треугольник с минимальной площадью. 
--------------------
На пыльных тропинках далеких планет останутся наши следы.
PM MAIL   Вверх
gelo777
Дата 30.5.2006, 23:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 29.5.2006

Репутация: нет
Всего: нет



Спасибо огромное!
Извини, если что не так..
ТОлько вот бы оченьхотелось на програмный код взглянуь, очень надо.. smile

Добавлено @ 23:59 
Цитата(jxr @ 29.5.2006,  20:37)
Причем здесь С? Надо алгоритм? - есть форум "Алгоритм".

К сожалению - нужна программа... smile  
PM MAIL   Вверх
DeadSoul
Дата 31.5.2006, 00:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1217
Регистрация: 25.9.2005
Где: Москва

Репутация: нет
Всего: 11



В качестве алгоритма подойдет полный перебор. Код попробуй написать сам. 


--------------------
 Если Вы получили ответ на Ваш вопрос, то нажмите на "Вопрос решен". 

Бьем спамеров их же оружием. Пусть весь спам сыпется им
[email protected] 
PM   Вверх
B3cK
Дата 31.5.2006, 02:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 29.5.2005
Где: Минск

Репутация: нет
Всего: 1



По-моему легче перебором найти треугольники которые покрывают первое множество, после чего отобрать треугольник с наименьшой площадью.

Например координаты треугольника:
A(Ax,Ay), B(Bx, By), C(Cx,Cy)
ну и координата точки для проверки:
P(x,y)

Тогда:
Если все опpеделители

| Ax-x Ay-y |    | Bx-x By-y |    | Cx-x Cy-y |
| Bx-x By-y |    | Cx-x Cy-y |    | Ax-x Ay-y |

ненулевые и одного знака, то точка P находится внутpи  тpеугольника ABC. Если
знак одного отличается от двух дpугих - то  снаpужи ABC. Если же хотя бы один
из них 0 - то на гpанице. Два нуля - P совпадает с одной из веpшин.
Тpи нуля - тpуегольник выpожденный A=B=C=P.
  

Это сообщение отредактировал(а) B3cK - 31.5.2006, 02:07
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.1161 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.