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

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

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

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

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

20 Апр 2024 в 13:22
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир