|
3 / 3 / 1
Регистрация: 06.07.2014
Сообщений: 145
|
||||||
Тестирование алгоритма на проверку вершин квадрата24.10.2014, 13:55. Показов 2344. Ответов 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
Поиск вершин квадрата Определить координаты вершин квадрата
Определение координат вершин квадрата Определения координах вершин квадрата Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2.
Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
|
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2.
Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом.
В. . .
|
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2.
Задача: отобразить спецтехнику, которая на данный момент находится в ремонте.
Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
|
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
|
|
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
|
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут
Суть:
- Группа наркоманов из 10 человек.
- Только один инфицирован ВИЧ.
- Колются одной иглой.
- Колются раз в день.
- Колются последовательно через. . .
|
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
|
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
|