С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

Обход Джарвиса (Алгоритм заворачивания подарка) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Инклюиды - include http://www.cyberforum.ru/cpp-beginners/thread312481.html
Доброго времени суток ! столкнулся с такой проблемой что нахожу какие-то примеры программ в инэте запускаю у себя а оно ругается что нет include каждых ! подскажите может есть какой-то сборник ? ...
C++ Вопрос о много-модульных проектах... Здравствуйте! Имеется проект из кучи dll(около 20 и планируется свыше сотни)... не спрашивайте зачем... Дак вот... всё бы хорошо, если бы не одна огромная проблема, при которой я не могу работать... http://www.cyberforum.ru/cpp-beginners/thread312473.html
Просят объяснить каждую строчку программы написанная в Borland C++ C++
Вот листинг программы //-------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "Unit1.h" #include "raschet.cpp" #include <math.h>...
C++, переопределение ввода-вывода C++
Решите, пожалуйста, если не трудно) Переопределить операции << и >> для ввода-вывода матриц размерностью m*n, где m и n кон-станты. Матрица хранится в классе.
C++ кому не сложно http://www.cyberforum.ru/cpp-beginners/thread312452.html
вот программа которая находит площадь пересечения прямоугольников #include "stdafx.h" #include <stdio.h> #include <math.h> #include <conio.h> void main(){ printf("vvedite kolichestvo...
C++ Вывести значение целочисленного выражения, заданного в виде строки S. Выражение определяется следующим образом (функция M воз-вращает максимальный из Вывести значение целочисленного выражения, заданного в виде строки S. Выражение определяется следующим образом (функция M воз-вращает максимальный из своих параметров, а функция m — минималь-ный):... подробнее

Показать сообщение отдельно
papa_doc
0 / 0 / 0
Регистрация: 31.05.2011
Сообщений: 1

Обход Джарвиса (Алгоритм заворачивания подарка) - C++

03.06.2011, 21:36. Просмотров 1659. Ответов 0
Метки (Все метки)

Не могу придумать как написать прогу. Помогите пожалуйста. Суть такова: Пусть дано множество P = {p1,p2,...pn} точек. В качестве начальной берётся самая левая нижняя точка p1 (ее можно найти за O(n) обычным проходом по всем точкам), она точно является вершиной выпуклой оболочки. Затем для каждой точки pi ищется против часовой стрелки точка pi + 1 путём нахождения за O(n) среди оставшихся точек (+ самая левая нижняя) точки с наименьшим полярным углом pi − 1pipi + 1. Она и будет следующей вершиной выпуклой оболочки. При этом сам угол не обязательно вычислять, достаточно вычислить векторное произведение (обобщением векторного произведения для двумерного случая является псевдоскалярное произведение) между лучами pip'i + 1 и pip''i + 1, где p'i + 1 найденный на данный момент минимум, p''i + 1 претендент (первым минимумом может быть выбрана любая точка). Если векторное произведение отрицательно, то найден новый минимум. Если равно нулю, то есть p'i + 1 и p''i + 1 лежат на одной прямой, то минимум та, которая лежит дальше от точи pi. Алгоритм продолжается пока . Почему алгоритм остановится? Потому что самая левая нижняя точка в любом случае принадлежит выпуклой оболочке.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.