|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
11.01.2008, 00:00 | #1 |
Новичок
Джуниор
Регистрация: 10.01.2008
Сообщений: 1
|
Определить радиус и центр окружности на которой лежит наибольшее число точек.
Определить радиус и центр окружности на которой лежит наибольшее число точек заданного на плоскости множества точек. Как нарисовать этот бред уже неделю мучаюсь
|
11.01.2008, 15:37 | #2 |
Участник клуба
Регистрация: 02.09.2007
Сообщений: 1,193
|
Окружность можно провести через любые три точки плоскости. Ее уравнение: (x-Xc)^2+(y-Yc)^2=R^2, т.е. три неизвестных коэффициента Xc,Yc,R определяем через координаты трех точек, через которые проводим окружность (решаем систему трех уравнений).
В вашем случае, нужно рассмотреть все возможные варианты, т.е. выбираем последовательно все тройки точек из заданного множества, определяем коэффициенты уравнения окружности, подставляем в это уравнение координаты оставшихся точек и считаем, для скольких оно выполняется. |
11.01.2008, 16:00 | #3 |
Старожил
Регистрация: 13.10.2007
Сообщений: 2,740
|
Что-то смотрю никаких сдвигов. Задача у вас на записи, множества и массивы. Для начала надо определить типы для точек и окружностей, примерно так:
type tck=record x,y:integer;//координаты, лучше все делать в целых числах, end; //больше вероятность совпадений okrug=record x,y,r,kol:integer;//координаты центра, радиус, кол-во совпадений end; var a:array[1..100] of tck;//массив точек b:array[1..10] of okrug;//массив окружностей i,n,m:integer; Далее вводим значения n и m, В цикле рандомом присваиваем значения полей записей: write('kol tocek=');readln(n); write('kol okrugn=');readln(m); for i:=1 to n do begin a[i].x:=random(50); a[i].y:=random(50); end; for i:=1 to m do begin b[i].x:=random(25)+25; b[i].y:=random(25)+25; b[i].r:=randon(5)+20; end; Затем в тройном цикле определяем, сколько точек совпадают с каждой окружностью. Затем находим окружность с максимальным количеством совпадений и выводим данные ее полей на экран. Работа с записями часто рассматривается на форуме. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Получение координат точек касательной к окружности | Stilet | Помощь студентам | 2 | 01.08.2008 15:12 |
программа считывающая пять целых чисел и определяющая, печатающая наибольшее и наименьшее число из них | Syber | Общие вопросы C/C++ | 3 | 30.06.2008 22:39 |
Ввести число N и определить делится ли оно без остатка на число M (VBA) | Ivanich | Microsoft Office Excel | 7 | 24.04.2008 19:43 |
Из двух натуральных чисел, составить наибольшее число, сохраняя первоначальную последовательность.Паскаль | Omedus | Помощь студентам | 8 | 19.11.2007 22:02 |
Паскаль. Определить номер позиции,в которой символы отличаются | Stelix | Помощь студентам | 6 | 06.11.2007 16:53 |