Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.10.2021, 15:48   #1
Ramosok
Новичок
Джуниор
 
Регистрация: 07.10.2021
Сообщений: 1
По умолчанию Решения задачи с матрицами. JS

Вы — инженер, проектирующий роверы-беспилотники. Вам надо рассчитать путь ровера по заранее известной местности с максимальной экономией заряда.

Местность
Вам пришли данные о местности в закодированном виде: фотография, сконвертированная в матрицу с числами. Одна матрица — это прямоугольный снимок размером х на y метров. Вот пример одной такой сконвертированной фотографии, на ней снимок в 100 на 100 метров:
Фото 1:
0 2 3 4 1
2 3 4 4 1
3 4 5 6 2
4 5 6 7 1
6 7 8 7 1
Числа показывают высоту над уровнем моря. 0 — это высота ровно на уровне моря, а, например, 4 — это 4 единицы над уровнем моря. На Фото 1 закодирован холм, пологий слева и резко обрывающийся справа.
Небольшой холмик выглядел бы вот так
Фото 2:
0 1 1 1 0
1 1 3 1 1
0 1 1 1 0
0 0 0 0 0
А вот так: ложбина между двумя холмами
Фото 3:
1 1 2 3 4
1 0 1 2 3
2 1 1 1 2
3 3 1 0 1
4 3 1 1 0
На этих данных - овраг с резким перепадом высот в середине снимка
Фото 4:
1 1 6 7 7
1 1 6 7 8
1 6 7 8 9
А на этом снимке - маленькая ямка
Фото 5:
3 4 4 4 4 3
3 2 1 1 1 4
4 2 1 1 3 4
4 4 2 2 3 4
Данные придут вам в виде матрицы с неотрицательными числами. Размер матрицы NxM.

Ровер
Ровер всегда движется из верхней левой точки [0][0] в правую нижнюю точку [N - 1][M - 1], где N и M - это длина и ширина матрицы.
У вашего ровера есть несколько ограничений:

Движение
Из любой точки ровер может двигаться только в четыре стороны: на север, юг, запад, восток. Ровер не может ехать по-диагонали — эта функция еще не реализована. Ровер не может вернуться в ту точку, в которой уже был.
Заряд
Ровер ездит на заряде. Вы знаете, что для ровера очень затратно подниматься и опускаться. Он тратит единицу заряда на само движение, и дополнительные единицы на подъем и спуск. Ровер бы вообще спокойно жил, если бы ездил по асфальту в Беларуси, тогда бы он тратил себе линейно заряд и в ус не дул, но жизнь его сложилась иначе.
Расход заряда
Заряд расходуется по правилу:
На 1 шаг ровер всегда тратит 1 единицу заряда. На подъем или спуск ровер тратит заряд, пропорциональный сложности подъема или спуска. Сложность подъема или спуска - это разница между высотами.


Например, в такой местности
1 2
1 5
на путь из [0][0] в [0][1] ровер потратит 2 единицы заряд: 1 единица заряда на само движение, и еще 1 единицу заряда на подъем в [0][1]. А из [0][1] в [1][1] ровер потратит 4 единицы заряда: 1 единица на само движение, и 3 единицы (5 - 2) на подъем
Вам надо рассчитать путь ровера из верхей левой [0][0] точки в правую нижнюю [N - 1][M - 1] точку с минимальной тратой заряда.
Вы не заранее знаете размер фотографии, которую будете обрабатывать, N и M - произвольные неотрицательные числа.

План
Сделайте план пути и планируемый расход в txt файле. Назовите файл path-plan.txt
Для фотографии
0 4
1 3
план будет такой:
path-plan.txt
[0][0]->[1][0]->[1][1]
steps: 2
fuel: 5
Ровер едет из 0 в 1 в 3, сделает два шага, потратит 5 заряда. Если бы он поехал сначала в 4, потом в 3, он бы сделал то же количество шагов, но потратил бы 7 заряда. Оптимальный путь: 2 шага и 5 заряда.
Если на карте есть несколько вариантов пути, выберите любой из них.

Обработка ошибок
Что-то всегда может пойти не так. Например, в матрице могут оказаться кривые данные или ее может вообще не быть.
Напишите обработку ошибок. Главное правило обработки ошибок: если ровер не может двигаться по карте, выбросите exception и завершите программу. В файл path-plan.txt напишите причину. Она всегда должна начинаться с фразы "Cannot move because ...". Придумайте свое описание проблемы. Пишите на простом и понятном английском.

Требования

Реализуйте функцию calculateRoverPath(map) по правилам в задаче
Результат отработки функции запишите в txt файл
Если в вашем языке нужно название класса (как в Java или C#), назовите класс Rover
В файле Rover.__ должен быть метод calculateRoverPath. Вы можете добавить любой другой функционал в этот файл, любые другие функции и комментарии. Главное, чтобы функция calculateRoverPath работала
Не используйте System.out.*, Console.Write*, console.log и любые другие методы для выведения данных в консоль
Используйте готовые файлы для решения. Не меняйте название файла, название методов и параметров. Если вашего языка нет в папке с готовыми файлами, напишите об этом рекрутеру, который дал вам задание
Напишите для себя .gitignor. Не добавляйте в репозиторий .idea, src, venv, DS_STORE и подобные файлы. В репозитории должен лежать только файл с решением и README.md


Ограничения
Нельзя использовать библиотеки для реализации алгоритма. Реализовать алгоритм вы можете только своими силами.
Можно использовать библиотеки для записи в файл.
Есть такое ТЗ помогите пожалуйста найти решения.
P/S желательно с небольшими коментариями.
Ramosok вне форума Ответить с цитированием
Старый 07.10.2021, 15:56   #2
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,158
По умолчанию

ну видно же что это учебная задача.....
сами учитесь, не хотите - тему в раздел фриланс, там за денюжку решат вам
ADSoft вне форума Ответить с цитированием
Старый 08.10.2021, 03:04   #3
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

Задача о кратчайшем пути - выбирайте алгоритм по вкусу и реализовывайте, дерзайте
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помощь в решении задачи в vba с матрицами xxx-shurik-xxx Microsoft Office Excel 3 29.05.2015 19:55
Помощь в решении задачи в vba с матрицами xxx-shurik-xxx Помощь студентам 0 28.05.2015 21:52
Паскали(задачи с матрицами) sllh_111 Помощь студентам 7 20.11.2010 07:51
Задачи с матрицами blondinochka Паскаль, Turbo Pascal, PascalABC.NET 0 11.05.2009 11:36
Паскаль. Две задачи с матрицами L@dy Помощь студентам 1 12.06.2007 23:58