|
30 / 30 / 5
Регистрация: 21.03.2013
Сообщений: 381
|
|
Рекурсивный метод для решения задачи01.07.2017, 04:20. Показов 2051. Ответов 13
Метки нет (Все метки)
Есть 2 точки координат, допустим расстояние между ними 200 метров.
Нужно добавить точки по 25 метров между этими 2-мя точками. И записать все точки в массив по порядку (от 1 до 2 точки). p1______________________________________ ___________________________________p15 p1___p2___p3___p4___p5___p6___p7___p8___ p9___p10___p11___p12___p13___p14___p15__ _p16___p17 p9 = center(p1, p17) p5 = center(p1, p9) p3 = center(p1, p5) p7 = center(p5, p9) p2 = center(p1, p3) p4 = center(p3, p5) p6 = center(p5, p7) p8 = center(p7, p9) так же для правой части и записать в массив точки по порядку : p1,p2,p3,p4,p5... Все это дело должно решатся рекурсией. Кто понимает в рекурсиях помогите)
0
|
|
| 01.07.2017, 04:20 | |
|
Ответы с готовыми решениями:
13
Метод решения задачи с jr на CRUD Подскажите литературу для решения задачи!
|
|
164 / 170 / 139
Регистрация: 28.11.2016
Сообщений: 301
|
||||||
| 01.07.2017, 11:18 | ||||||
|
Кликните здесь для просмотра всего текста
Смотрите код. На выходе массив с точками между указанными, расстояние больше или равно 25 метров. Приведено два решения, на базе класса Point и просто на базе int значений. На печать выводится номер позиции точки.
0
|
||||||
|
30 / 30 / 5
Регистрация: 21.03.2013
Сообщений: 381
|
|
| 03.07.2017, 02:19 [ТС] | |
|
v777779, явно это ответ на вопрос.
Просто вопрос не тот). Перепишем задачу: есть 2 точки координат (прямой отрезок). Нужно разбить его на отрезки по меньше (конкретно < 20 метров). К координатам я не умею добавлять расстояние к примеру, 20 метров от точки, (если вы знаете как добавить 20 метров от точки зная направление, поделитесь, это очень облегчит работу), зато я умею находить центр между 2мя точками. И потому решил делить отрезки на под отрезки и т.д. пока отрезок не будет меньше 20 метров и записать все точки в массив. Это явно решается рекурсией, но еще так же важно записать полученные точки по порядку в массив.
0
|
|
|
1296 / 470 / 151
Регистрация: 24.08.2011
Сообщений: 2,249
|
||||||
| 03.07.2017, 19:20 | ||||||
Сообщение было отмечено powowstal как решение
Решение
powowstal, возможно...
1
|
||||||
|
30 / 30 / 5
Регистрация: 21.03.2013
Сообщений: 381
|
|
| 05.07.2017, 01:04 [ТС] | |
|
Керра, так писал но на выходе элементы стоят не по порядку
0
|
|
|
1296 / 470 / 151
Регистрация: 24.08.2011
Сообщений: 2,249
|
|
| 05.07.2017, 06:58 | |
|
powowstal, не поняла. Моя программа выдает по порядку... Не поняла ваше сообщение...
0
|
|
|
30 / 30 / 5
Регистрация: 21.03.2013
Сообщений: 381
|
|||
| 05.07.2017, 19:27 [ТС] | |||
|
Керра, ваш код работает правильно, раньше у меня не те данные на вход поступали.
Можете прокомментировать логику ? -
0
|
|||
|
1296 / 470 / 151
Регистрация: 24.08.2011
Сообщений: 2,249
|
|
| 05.07.2017, 19:34 | |
|
Насчет первого: мы делим массив на два отдельных массива, у каждого из которых есть 2 элемента. То есть, мы берем середину, и эта середина является вторым элементом для левого массива, и первым элементом для второго массива.
Насчет второго: когда мы соединяем массивы, то мы вспоминаем о том, что тогда мы продублировали серединку. Так что надо удалить серединку из левого (от правого остается одна). Также, нужно удалить нулевой и последний элементы, потому что мы вставляем их внутрь уже готовых двух элементов. Насчет points.addAll. Сначала мы соединяем левую и правую часть, затем удаляем лишние элементы, и добавляем левую (уже соединенную с правой) часть в изначальный массив, на место с индексом 1. То бишь, если у нас был массив (0, 200), то вставится на вторую (индекс 1) позицию, и получится (0, 50, 100, 150, 200). К примеру.
1
|
|
|
30 / 30 / 5
Регистрация: 21.03.2013
Сообщений: 381
|
||||||
| 05.07.2017, 19:36 [ТС] | ||||||
|
Керра, Изрядно помучившись вот что вышло
0
|
||||||
|
1296 / 470 / 151
Регистрация: 24.08.2011
Сообщений: 2,249
|
|
| 05.07.2017, 19:40 | |
|
О господи боже мой ну и стиль у вас...
Добавлено через 23 секунды Ща проверю... Добавлено через 1 минуту Киньте пожалуйста весь код, а не только main. MyPoints мне тоже нужно... У меня IDE сама отформатирует ваш ужас... Я извиняюсь... Добавлено через 15 секунд Киньте пожалуйста весь код, а не только main. MyPoints мне тоже нужно... У меня IDE сама отформатирует ваш ужас... Я извиняюсь...
0
|
|
|
30 / 30 / 5
Регистрация: 21.03.2013
Сообщений: 381
|
||||||
| 05.07.2017, 19:55 [ТС] | ||||||
|
Керра,
0
|
||||||
|
1296 / 470 / 151
Регистрация: 24.08.2011
Сообщений: 2,249
|
|
| 05.07.2017, 19:59 | |
|
Я говорю ВЕСЬ код нужен. Я знаю, что класс описан выше. Он мне тоже нужен для проверки.
0
|
|
|
30 / 30 / 5
Регистрация: 21.03.2013
Сообщений: 381
|
||||||
| 05.07.2017, 21:36 [ТС] | ||||||
|
Керра, ok 10 мин создам новый проект и залью на гид
Добавлено через 1 час 12 минут Керра, на гид не судьба. В новом проекте код не запускается (библиотеки есть), видимо с настойками карты или ключ АПИ или студия обновилась криво. Скину архивом с гугла. https://drive.google.com/open?... m1mR3ZnRDQ Так всегда, как нужно что-то быстро сделать все перестает работать( Добавлено через 3 минуты Керра, оу, забыл проект на андроиде. вот весь код:
0
|
||||||
|
1296 / 470 / 151
Регистрация: 24.08.2011
Сообщений: 2,249
|
|
| 06.07.2017, 07:20 | |
|
powowstal, запустить не могу, но в целом формула правильная. Только концы не будут добавляться. И массив не чистится нигде - если второй раз с другими данными запустить, он в тот же будет добавлять, мешанина будет.
0
|
|
| 06.07.2017, 07:20 | |
|
Помогаю со студенческими работами здесь
14
Что нужно знать для решения данной задачи? Разработать программу на языке Java для решения следующей задачи:
Метод Гаусса для решения системы уравнений. Перевести с Pascal Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|