|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Линейная сортировка. Вычисление длины кривой1. Линейная сортировка
Дана последовательность А из n целых чисел, которые находятся в диапазоне от некоторого min до некоторого max. Тогда алгоритм линейной сортировки состоит в следующем: 1. Определить значения min, max и определить диапазон значений m = max – min + 1. 2. Обнулить вспомогательную последовательность счетчиков B(m), где m – размер последовательности B. 2. Просматривая последовательность А, для каждого элемента ai выполнить k = ai – min и B[k] = B[k] + 1. 3. Просматривая последовательность В, для каждого элемента bi занести в А последовательно bi элементов со значением i. На рисунке приведен пример сортировки последовательности из 10 элементов методом линейной сортировки.
Задание: разработать программу, реализующую линейную сортировку для заданной последовательности чисел по возрастанию или убыванию.
2. Вычисление длины кривой Вычислите длину кривой с точностью e в интервале [x1, x2], заданную функцией y = a*sin(b*x), путем аппроксимации кусочно-линейной функцией, где a, b – коэффициенты уравнения; x1, x2 – границы интервала для расчета значений функции; e – точность, с которой осуществляется вычисление длины кривой. Для достижения требуемой точности вычислений длины кривой шаг вычислений каждый раз должен уменьшаться в 2 раза, то есть интервал [x1, x2] должен делится сначала на 1 участок, затем на 2, 4, 8, 16, … участков. Тестовые данные:
3. Поезд Имеется состав из N плацкартных вагонов. Вагоны стандартные: по 54 места в каждом, места разделены на 9 купе. Расположение мест и вагонов показано на рисунке:
Необходимо разместить в поезде М человек так, чтобы расстояние между двумя самыми удалёнными друг от друга людьми было минимальным. Расстояние измеряется по прямой вдоль вагонов. Будем считать, что расстояние между местами в одном купе равно нулю. Например, расстояние между всеми местами 1, 2, 3, 4, 53 и 54 равно нулю. Между местами в соседних купе расстояние равно 1. Например, между местами 1 и 6, 53 и 7. Расстояние между вагонами равно 6. То есть расстояние между местом 33 первого вагона и местом 1 второго вагона равно 6. Рассмотрим пример из одного вагона (первый тест): Серым помечены занятые места, а белым – свободные. Нужно разместить 6 человек. Оптимально будет занять места (30, 32, 37, 38, 39, 40) или (30, 32, 39, 40, 41, 42). Наименьшее расстоянием будет равно 1. Задание: разработать программу, которая для заданного числа вагонов n (1 £ n £ 3) и количества людей m (1 £ m £ 100) определяет расстояние их оптимального размещения в поезде или выдает сообщение “Пассажиров разместить невозможно”. Каждый вагон представляется строкой по 54 символа (места в вагоне): 0 – место свободно, 1 – занято. Тестовые данные:
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|