Как вычислить положение элемента массива в матрице на основании его индекса и размерности матрицы? Доброй ночи.
Есть массив элементов (по факту - записи из базы), и есть количество элементов в строке - N. В цикле проходим по массиву, если текущий элемент (i) равен N, начинаем новую строку. В общем-то типичная картина для огромного числа сайтов.
Я хочу сделать возможность выводить элементы с другим порядком - не в строку, а в столбец, но при этом сохраняя html \ css структуру (флекс отпадает, таким образом). Например, если в построчном варианте второй элемент по факту имел индекс 2 (т.е. был на втором месте в строке), в постолбцовом он будет иметь индекс 5, и располагаться в начале второй строки (т.е. второй в первом столбце). Однако, к примеру, если у нас 10 элементов и N равен 4м, то 6й элемент так и останется по факту шестым, так что арифметически подгадать весьма проблематично.
Я пока что вижу только вариант преобразовать массив в матрицу, и затем повернуть ее на 90 градусов, а то и вовсе намудрить с вложенными циклами, но это слишком громоздко для такой простой задачи. Хочется красивое и элегантное решение, без вложенных циклов и лишних преобразований, просто на основе имеющихся данных.
Какой вариант вы бы использовали, возможно, есть специальные формулы \ алгоритмы для этого?.. Не обязательно готовый пример, можно статью с описанием возможного способа решения данной задачи.
Буду благодарен за советы, спасибо.

21 Авг 2019 в 06:10
181 +1
0
Ответы
1

Для вычисления положения элемента массива в матрице на основании его индекса и размерности матрицы можно использовать следующий подход:

Представить индекс элемента массива как двумерные координаты (x, y), где x - номер строки, а y - номер столбца.Для перевода одномерного индекса в двумерные координаты можно использовать следующие формулы:
x = индекс / N, где N - количество элементов в строке
y = индекс % NДля вывода элементов в столбец можно использовать следующую формулу для пересчета двумерных координат в одномерный индекс:
индекс = y * M + x, где M - количество строк в матрицеТаким образом, вы сможете вычислить новые координаты элемента и его порядковый номер для вывода в столбец.

Надеюсь, что эти подсказки помогут вам решить задачу элегантным способом. Если у вас останутся вопросы, не стесняйтесь задавать их. Спасибо и удачи в решении задачи!

20 Апр в 13:22
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 89 837 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир