0 / 0 / 0
Регистрация: 10.01.2016
Сообщений: 25
1

Выбрать три различные точки из заданного множества

11.12.2016, 20:13. Показов 1478. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Выбрать три различные точки из заданного множества точек на плоскости так, чтобы была минимальной разность между количествами точек, лежащих внутри и вне треугольника, с вершинами в выбранных точках.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.12.2016, 20:13
Ответы с готовыми решениями:

Выбрать три различные точки из заданного множества
Доброго времени суток, буду вам очень признателен, если вы поможете мне решить вот эту задачу: ...

Выбрать три различные точки из заданного множества точек на плоскости по условию
вот у меня задача нарисовалась нужно выбрать три различные точки из заданного множества точек на...

Выбрать три различные точки первого множества так, чтобы круг, ограниченный окружностью, проходящей через три точки
Даны два множества точек на плоскости. Выбрать три различные точки первого множества так, чтобы...

Из заданного множества точек на плоскости выбрать две различные точки так, чтобы количества точек различались наименьшим образом
Из заданного множества точек на плоскости выбрать две различные точки так, чтобы количества точек,...

1
Почетный модератор
64302 / 47597 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
11.12.2016, 21:14 2
Лучший ответ Сообщение было отмечено Надежда_ как решение

Решение

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
const e=0.01;{точность сравнения вещественных чисел}
type Point=record{тип точка}
           x,y:real;
           end;
{площадь треугольника}
function Strg(a,b,c:Point):real;
begin
Strg:=abs(a.x*(b.y-c.y)+b.x*(c.y-a.y)+c.x*(a.y-b.y))/2;
end;
{принадлежит ли точка треугольнику}
function Prin(a,b,c,t:Point):boolean;
var s,s1,s2,s3:real;
begin
{площади 3х маленьких треугольников, образованных
двумя вершинами и точкой}
s1:=Strg(a,b,t);
s2:=Strg(a,c,t);
s3:=Strg(b,c,t);
{площадь самого треугольника}
s:=Strg(a,b,c);
Prin:=abs(s-(s1+s2+s3))<e;
end;
 
 
const nmax=15;{чтобы вошли в строку по ширине экрана}
 
var m:array[1..nmax] of Point;{множество точек}
    n:integer;{его мощность}
    kv,kn,kvmn,knmn:integer;{кол. точек в треугольнике и вне его}
    mn,imn,jmn,kmn:integer;{номера вершин треугольника с минимальной разностью точек}
    i,j,k,p:integer;{счетчики циклов}
begin
randomize;
repeat
write('Количество точек в множестве от 3 до ',nmax,' n=');
readln(n);
until n in [3..nmax];
writeln('Множество точек');
for i:=1 to n do
 begin
  m[i].x:=10*random;
  m[i].y:=10*random;
 end;
write(' ':2);
for i:=1 to n do
write(i:5);
writeln;
write('X:');
for i:=1 to n do
write(m[i].x:5:2);
writeln;
write('Y:');
for i:=1 to n do
write(m[i].y:5:2);
writeln;
writeln;
imn:=0;
jmn:=0;
kmn:=0;
mn:=n;
{перебираем треугольники }
for i:=1 to n-2 do
for j:=i+1 to n-1 do
for k:=j+1 to n do
 begin
  kv:=0;
  kn:=0;
  for p:=1 to n do
  if not (p in [i,j,k]) then
  if Prin(m[i],m[j],m[k],m[p]) then inc(kv)
  else inc(kn);
  if abs(kv-kn)<mn then
   begin
    mn:=abs(kv-kn);
    imn:=i;
    jmn:=j;
    kmn:=k;
    kvmn:=kv;
    knmn:=kn;
   end;
 end;
writeln('Треугольник, у которого разница между количеством точек внутри и снаружи');
writeln('минимальна, образован точками:');
writeln(imn:2,'(',m[imn].x:5:2,';',m[imn].y:5:2,')');
writeln(jmn:2,'(',m[jmn].x:5:2,';',m[jmn].y:5:2,')');
writeln(kmn:2,'(',m[kmn].x:5:2,';',m[kmn].y:5:2,')');
writeln('Количество точек: внутри=',kvmn,' снаружи=',knmn);
end.
1
11.12.2016, 21:14
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.12.2016, 21:14
Помогаю со студенческими работами здесь

Из заданного на плоскости множества точек выбрать 3 различные
Из заданного на плоскости множества точек выбрать 3 различные так,чтобы разность между площадью...

Массив: Выбрать три точки первого множества так, чтобы выполнялось заданное условие...
Даны два множества точек на плоскости. Выбрать три различные точки первого множества так, чтобы...

Из заданного множества точек на плоскости выбрать две различные точки по условию
из заданного множества точек на плоскости выбрать две различные точки так, чтобы количества точек,...

Выбрать три разные точки заданного на плоскости множества точек, составляющие треугольник наибольшего периметра
программа должна спрашивать координаты 4х точек и выбирать три точки,составляющие треугольник...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru