|
3 / 3 / 1
Регистрация: 06.07.2014
Сообщений: 145
|
||||||
Тестирование алгоритма на проверку вершин квадрата24.10.2014, 13:55. Показов 2285. Ответов 13
Метки нет (Все метки)
Здравствуйте! У меня есть алгоритм для выяснения, являются ли точки с координатами вершинами квадрата(задаются 4 точки). Тестируя алгоритм вручную(сверяя результаты алгоритма с правильными), ошибки не обнаруживал, а вот во время отправки программы(алгоритма) на сайт, выводится что алгоритм из всех подставленных в него значений, решает только 60%. Хотел бы узнать, в каком месте алгоритма я допустил ошибку:
0
|
||||||
| 24.10.2014, 13:55 | |
|
Ответы с готовыми решениями:
13
Поиск вершин квадрата Поиск вершин квадрата |
|
12 / 12 / 4
Регистрация: 17.12.2012
Сообщений: 71
|
|
| 24.10.2014, 21:28 | |
|
Если бы было отформатировано, прокомментировано, или хотя бы переменные по-человечески назывались - может кто-то и пробовал бы разобраться.
+ напишите задание + напишите, как собирались решать
1
|
|
|
3 / 3 / 1
Регистрация: 06.07.2014
Сообщений: 145
|
||||||
| 24.10.2014, 22:13 [ТС] | ||||||
0
|
||||||
|
3 / 3 / 1
Регистрация: 06.07.2014
Сообщений: 145
|
|
| 26.10.2014, 14:56 [ТС] | |
|
Может есть такие кто хотя бы сможет протестировать некоторые точки с координатами на программе, и убедиться верный ли будет выводиться ответ, в случае если результат будет неверен, то попрошу отписаться. Буду очень благодарен.
0
|
|
|
0 / 0 / 0
Регистрация: 13.12.2012
Сообщений: 15
|
|
| 27.10.2014, 00:31 | |
|
форматирование, коменты и читаемость кода вряд ли ваш конек.
а теперь к сути - вам был задан такой алгоритм или ето вы его придумали? в проверке на сайте (среди тестовых даных) допускаються (или нет) немного повернутые квадраты и\или отрицательные числа. если есть возможность вывода ввводимих сайтом даных то выложите их, особенно те шо не работают.
0
|
|
|
3 / 3 / 1
Регистрация: 06.07.2014
Сообщений: 145
|
|
| 27.10.2014, 00:47 [ТС] | |
|
Как то не подумал о перевёрнутых квадратах.
Условие: На плоскости задано 4 точки (координаты всех точек попарно различны). Напишите программу, определяющую являются ли эти точки вершинами квадрата. Формат входных данных: Задано четыре строки, каждая из которых содержит два числа через пробел – координаты точек (первое число координата х, вторая – координата y). Все числа по модулю не превосходят 10^9. Формат выходных данных: Выведите в единственной строке YES – если точки образуют квадрат и NO – квадрат с такими вершинами построить нельзя.
0
|
|
|
0 / 0 / 0
Регистрация: 13.12.2012
Сообщений: 15
|
|
| 27.10.2014, 01:58 | |
|
поигрался немного с вводом координат. мне кажется что проблема как раз с повернутими квадратами. как я понял алгоритма вас не задавали и ето ваш собственный и он не универсален. простите но перебрать по камушкам вашу програмную логику 5-10 минут не хватит. легче самому с нуля написать.
я б посоветовал убрать проверку на совпадение по осям и сделать проверку только по растоянию. вариантов много, в худшем случае просто вичислить растояние каждой точки к другим. записать в 4 отдельних масива по 3 числа. сделать сортировку, тогда просто прировнять величины с каждого масива по индексам. также учтите что дробовая часть может немного отличатся и надо будет делать какое то округление (например к 0.1) результатов. может хватит провверки на то что меньшее растояние к другим в каждой точки должно дублироватся 2 раза. или например у всех вершинах максимальное растояние к другим точкам одинаковое.
0
|
|
|
69 / 69 / 39
Регистрация: 22.05.2014
Сообщений: 311
|
|
| 27.10.2014, 05:31 | |
|
0
|
|
|
3 / 3 / 1
Регистрация: 06.07.2014
Сообщений: 145
|
||||||
| 27.10.2014, 19:27 [ТС] | ||||||
|
Готово. Решил проблему с повернутыми квадратами. Теперь алгоритм решает 80% подставленных значений.
Алгоритм работает следующим образом: Известно что от каждой точки до других точек: 2 расстояния одинаковы(размер одной из сторон квадрата), и только 1 диагональ. За пример берутся расстояния от первой попавшейся точки до других(размер одной из сторон квадрата и диагональ), которые в последующих итерациях сравниваются с другими значениями размеров сторон квадрата и диагоналей.
0
|
||||||
|
0 / 0 / 0
Регистрация: 13.12.2012
Сообщений: 15
|
|||||||
| 27.10.2014, 19:54 | |||||||
0
|
|||||||
|
3 / 3 / 1
Регистрация: 06.07.2014
Сообщений: 145
|
|
| 27.10.2014, 20:26 [ТС] | |
|
Готово. Но это никак не влияет на результат.
0
|
|
|
любитель покушать
687 / 641 / 248
Регистрация: 25.09.2011
Сообщений: 1,313
|
||||||
| 27.10.2014, 22:57 | ||||||
|
marick0073, мб так?
0
|
||||||
|
0 / 0 / 0
Регистрация: 13.12.2012
Сообщений: 15
|
|
| 28.10.2014, 00:56 | |
|
потратил 40 минут на разбирательство вашего кода, алгоритма.
совет-просьба: почитайте побольше статьи о том как правильно писать код. из очень заметных ошибок к коду: *переменные просто нереально прочитать и найти за что они отвечают. переменные в 1-2 буквы(которые не несут логического названия) годятся только на создание циклов, счетчиков, или как временные. *не ленитесь ставить { } даже если у вас только одна операция после IFа код тогда намного легче и разбирать и помогает обойти много ошибок изза невнимательности. * логические цепочки IF ELSE не должны иметь более чем 3 уровневую стуктуру. теперь к алгоритму. незнаю поможет ли замечание но в вашей логике проскавивают 2 ложных случая: 1) все точки сходятся - 0 0 0 0 0 0 0 0 -YES 2) точки разпределены в 2 секции - 0 0 1 1 0 0 1 1 -yes возможно ешо функция округления слишком сильно отсекает дробовую часть (в вашем случае округление проходит до целого числа) чтоб например считывалось до 2 знаков после комы можно использовать new BigDecimal(Math.sqrt(ky * ky + kx * kx)).setScale(2, RoundingMode.UP).doubleValue() или new BigDecimal(Math.sqrt(ky * ky + kx * kx)).setScale(2,BigDecimal.ROUND_HALF_DO WN).doubleValue() п.с. не обижайтесь что столько критикую код. писал ответ паралельно разбирая програму поетому можно сказать бил немного в состоянии аффекта
0
|
|
|
3 / 3 / 1
Регистрация: 06.07.2014
Сообщений: 145
|
||||||
| 28.10.2014, 14:08 [ТС] | ||||||
|
Немного сократил алгоритм, исправил ошибки, 100% решаемость.
0
|
||||||
| 28.10.2014, 14:08 | |
|
Помогаю со студенческими работами здесь
14
Поиск вершин квадрата Определить координаты вершин квадрата
Определение координат вершин квадрата Определения координах вершин квадрата Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам
Кирхгофа, решает её и находит:
токи, напряжения и их 1 и 2 производные при t = 0;. . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|