2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки


Правила форума


В этом разделе нельзя создавать новые темы.

Если Вы хотите задать новый вопрос, то не дописывайте его в существующую тему, а создайте новую в корневом разделе "Помогите решить/разобраться (М)".

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

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

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



Начать новую тему Ответить на тему На страницу 1, 2  След.
 
 Это квадрат? Программная проверка
Сообщение07.10.2014, 10:40 


10/05/13
251
Вчера была олимпиада по программированию. Мое решение упало
на 40м тесте и все из-за того что я написал неправильную функцию
которая должна была определять, лежат ли четыре точки плоскости
на вершинах квадрата (по точке в каждой вершине).

В моей программе функция имеет такой прототип:
Код:
bool is_on_square(ii * xy)

где ii - это пара целых чисел. xy - вектор длины 4.

Как решить данную задачу? Я делал так, брал любую точку и вычислял расстояние
от нее до трех остальных, т. е. получил три числа. Если два из них были равны,
а квадрат третьей был равна сумме квадратов двух, то выводил да иначе нет, но
как я потом увидел это решение не всегда верно работает.

Как правильно решить данную задачу?

 Профиль  
                  
 
 Re: Это квадрат?
Сообщение07.10.2014, 10:54 
Заслуженный участник
Аватара пользователя


18/05/06
13438
с Территории
Три точки расположены на одной прямой, две на равных расстояниях от средней. Четвёртая - где-то на плоскости, на расстоянии в $\sqrt2$ раз дальше от средней. Эта конфигурация пройдёт под Ваш тест.
Ещё скажите, что Вы там на самом деле извлекали корни (ну, чтобы расстояние).

-- менее минуты назад --

Я бы нашёл центр, вычел его из всех, а потом оперировал со скалярными произведениями (часть из них должна быть равна друг другу, часть - минус тому же, а часть - нулю.)

 Профиль  
                  
 
 Re: Это квадрат?
Сообщение07.10.2014, 11:14 


07/08/14
4231
для квадрата можно обойтись изменением координат точек.

 Профиль  
                  
 
 Re: Это квадрат?
Сообщение07.10.2014, 11:22 


10/05/13
251
ИСН в сообщении #916062 писал(а):
Три точки расположены на одной прямой, две на равных расстояниях от средней. Четвёртая - где-то на плоскости, на расстоянии в $\sqrt2$ раз дальше от средней. Эта конфигурация пройдёт под Ваш тест.
Ещё скажите, что Вы там на самом деле извлекали корни (ну, чтобы расстояние).

Да, вы нашли контр-тест, поздравляю :|

 Профиль  
                  
 
 Re: Это квадрат?
Сообщение07.10.2014, 11:23 
Заслуженный участник
Аватара пользователя


18/05/06
13438
с Территории
upgrade в сообщении #916064 писал(а):
для квадрата можно обойтись изменением координат точек.

Не совсем понял, что Вы имеете в виду, но можно и без произведений: тупо сравнить векторы, что они соответствуют поворотам одного из них на $90^\circ$ и далее.

 Профиль  
                  
 
 Re: Это квадрат?
Сообщение07.10.2014, 11:25 


07/08/14
4231
да без сравнений и вычислений расстояний - помещаем какую-то очку в $(0;0)$ смотрим что с другими...

-- 07.10.2014, 11:26 --

одна пара должна выглядеть например $(10;2), (-2;10)$ ..

 Профиль  
                  
 
 Re: Это квадрат?
Сообщение07.10.2014, 11:29 
Заслуженный участник
Аватара пользователя


18/05/06
13438
с Территории
upgrade в сообщении #916069 писал(а):
да без сравнений

дак вот это же и есть сравнение:
upgrade в сообщении #916069 писал(а):
должна выглядеть например $(10;2), (-2;10)$

 Профиль  
                  
 
 Re: Это квадрат?
Сообщение07.10.2014, 11:31 


07/08/14
4231
да, без сравнений не получится.

 Профиль  
                  
 
 Re: Это квадрат?
Сообщение07.10.2014, 11:35 
Заслуженный участник
Аватара пользователя


18/05/06
13438
с Территории
Количество операций у нас различается маргинально, но в Вашем варианте легче запутаться, потому что больше частных случаев.

 Профиль  
                  
 
 Re: Это квадрат?
Сообщение07.10.2014, 11:46 


10/05/13
251
ИСН в сообщении #916062 писал(а):
Я бы нашёл центр, вычел его из всех, а потом оперировал со скалярными произведениями (часть из них должна быть равна друг другу, часть - минус тому же, а часть - нулю.)

Здесь под центром вы имеете ввиду точку координы которой являются средним значением координат остальных?

 Профиль  
                  
 
 Re: Это квадрат?
Сообщение07.10.2014, 11:48 
Заслуженный участник
Аватара пользователя


18/05/06
13438
с Территории
Да.

 Профиль  
                  
 
 Re: Это квадрат?
Сообщение07.10.2014, 11:54 


07/08/14
4231
ИСН в сообщении #916074 писал(а):
Количество операций у нас различается маргинально

с поиском центра операций меньше, согласен

 Профиль  
                  
 
 Re: Это квадрат?
Сообщение07.10.2014, 12:04 


10/05/13
251
Давайте сначала найдем хоть какое-то решение и детально его сформулируем,
а потом можем решить вторую задач - поиск быстрого решения.

 Профиль  
                  
 
 Re: Это квадрат?
Сообщение07.10.2014, 12:05 


14/01/11
3039
Можно ещё найти 6 квадратов попарных расстояний, которые должны относиться как 2:2:1:1:1:1.

 Профиль  
                  
 
 Re: Это квадрат?
Сообщение07.10.2014, 12:08 
Заслуженный участник
Аватара пользователя


18/05/06
13438
с Территории
upgrade, я Вам начал было писать длинную простыню, что Вы не понимаете своё собственное решение, а она уже и не нужна. Ладно.

-- менее минуты назад --

frankenstein, Вам нашли решение и сформулировали его настолько детально, насколько позволяет совесть. Если ещё дополнить, то какая часть работы останется на Вашу долю?

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 18 ]  На страницу 1, 2  След.

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group