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