Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
SW.VOL
0 / 0 / 0
Регистрация: 16.01.2012
Сообщений: 5
#1

Верно ли, что для любой пары точек из множества все оставшиеся точки лежат по одну сторону от прямой, проведённой через эту пару - C++

21.01.2012, 08:03. Просмотров 780. Ответов 4
Метки нет (Все метки)

Даны действительные числа x1,....x15, y1,....y15, которые рассматриваются как координаты 15 точек на плоскости. Верно ли, что для каждой из этих пятнадцати точек найдется другая, такая, что все оставшиеся тринадцать точек лежат по одну сторону от прямой, проходящей через эти две точки.


сдесь есть такой же код но, но он на Форум Java SE (J2SE)---

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

 Комментарий модератора 
Именуйте темы осмысленно!

 Комментарий модератора 
Дублирование тем наказуемо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.01.2012, 08:03     Верно ли, что для любой пары точек из множества все оставшиеся точки лежат по одну сторону от прямой, проведённой через эту пару
Посмотрите здесь:

Найти наименьшее расстояние от точки В до любой из точек множества А C++
Определить, лежат ли точки на одной прямой C++
C++ Определить номер точки, через которую проходит окружность с центром в начале координат, внутрь которой попадают все оставшиеся точки.
Написать программу, определяющую радиус и центр окружности, проходящей по крайней мере через три различные точки заданного множества точек C++
C++ Определите, лежат ли точки на одной прямой
C++ Определить радиус и центр окружности минимального радиуса, проходящей хотя бы через три различные точки заданного множества точек на плоскости
Лежат ли точки на одной прямой и вычислить угол C++
C++ Написать программу, определяющую радиус и центр окружности, проходящей по крайней мере через три различные точки заданного множества точек
Три точки заданы координатами. Определить, лежат ли они на одной прямой C++
Определить лежат ли три точки на одной прямой C++
Определите, лежат ли все три точки заданного множества к заданному эллипсу - блоксхема C++
Из множества точек на плоскости найти точки, образующие параллелограмм с наибольшим количеством точек внутри C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Байт
Эксперт C
 Аватар для Байт
15092 / 9494 / 1396
Регистрация: 24.12.2010
Сообщений: 17,582
21.01.2012, 14:16     Верно ли, что для любой пары точек из множества все оставшиеся точки лежат по одну сторону от прямой, проведённой через эту пару #2
Скорее всего, неверно. Одну точку поместите в центр круга, а остальные равномерно разместите на окружности.
SW.VOL
0 / 0 / 0
Регистрация: 16.01.2012
Сообщений: 5
21.01.2012, 15:00  [ТС]     Верно ли, что для любой пары точек из множества все оставшиеся точки лежат по одну сторону от прямой, проведённой через эту пару #3
Байт, и что это даст?

Добавлено через 28 минут
училка обьяснила,не чего я не понял(( думаю делаеться так:
1) ввод n
2) ввод х(n), y(n)
fl=0;
3)цикл(от i=0 до n-1)
цикл(от j=j=1 до n)
{
s1=0; s2=0;
цикл( от k!=i до n)
if(k!=0 и k!=j)
if(y[j]==y[i] && y[k]>y[i]) s1++ ; else
if(y[j]==y[i] && y[k]<y[i]) s2++ ; else
if(x[j]==x[i] && x[k]>x[i]) s1++ ; else
if(x[j]==x[i] && x[k]<x[i]) s2++ ; else
if((y[k]-u[i])/(y[j]-y[i])<(x[k]-x[i]/(x[j]-x[i]) s1++; elser s2++;
if(s1==0 || s2==0)
{ fl=1; печ "да" ; i=n;i=n;k=n;}
}
4) if( fl=0) печ "нет"
Байт
Эксперт C
 Аватар для Байт
15092 / 9494 / 1396
Регистрация: 24.12.2010
Сообщений: 17,582
21.01.2012, 15:40     Верно ли, что для любой пары точек из множества все оставшиеся точки лежат по одну сторону от прямой, проведённой через эту пару #4
Цитата Сообщение от SW.VOL Посмотреть сообщение
Байт, и что это даст?
Я, видимо неправильно понял задачу. Нужно проверить это для конкретной конфигурации, а не доказать в общем случае.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
for(i=0; i<15; i++) {
 for(j=0; j<15; j++) {
   if (i==j) continue;
   A = y[j] - y[i];
   B = x[i] - x[j];
   C = -x[i]*(y[j] - y[i]) + y[i]*(x[j] - x[i]); // Это коэфициэнты уравнения прямой
   for (k=m=0;  k<15; k++) {
     if (k==i || k==j) continue;
     if (m==0) { z = A*x[k]+B*y[k]+C;  m =1; }
     else if ((A*x[k]+B*y[k]+C)*z < 0) break;  // Точки лежат по разную сторону
   }
    if (k<15) continue;  // Эта прямая не подошла
    break;
 }
  if (j==15) break;
}
 if (i==15) printf("Yes\n");
 else        prin\ntf("No");
Вот как-то так. Не проверял.
SW.VOL
0 / 0 / 0
Регистрация: 16.01.2012
Сообщений: 5
21.01.2012, 16:05  [ТС]     Верно ли, что для любой пары точек из множества все оставшиеся точки лежат по одну сторону от прямой, проведённой через эту пару #5
Байт, напиши полностью код программы, что то я вообще запутался.... зарание спасибо
Yandex
Объявления
21.01.2012, 16:05     Верно ли, что для любой пары точек из множества все оставшиеся точки лежат по одну сторону от прямой, проведённой через эту пару
Ответ Создать тему
Опции темы

Текущее время: 21:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru