Массив (строка элементов):
[ ][ ][ ][ ][ ][ ]
2-D Массив (таблица):
[ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ]
Трехмерный массив:
//Imagine the above table as a cube ( a table with depth )
Как каждый визуализирует массив 4-D?
Самыми близкими я могу приехать, являются несколько кубов, таким образом, для int[,,,]
[5,10,2,7] был бы куб 5, строка 10, столбец 2, слой (глубина) 7.
Я не уверен - ли это лучший способ визуализировать массив 4-D, хотя... и я не уверен, что это - лучший способ преподавать это, что... однако он действительно имеет преимущество того, чтобы быть расширяемым (строка кубы, таблица кубов, куба кубов (6-d массив)
Кубы в течение времени иначе, что я могу думать о нем.
Я на правильном пути здесь?
Если вы пытаетесь отобразить вывод программы для конечных пользователей, то вы на правильном пути.
Если вы пытаетесь научить этому, я бы кратко использовал этот метод, а затем углубился в объяснение того, как компьютер хранит их все в непрерывной памяти - http://www.plantation-productions.com/Webster/www.artofasm.com/Windows/HTML/Arraysa2.html. Я думаю, это лучший способ понять это.
Оригинальная ссылка больше не работает, но я нашел ее в Архиве Интернета здесь - http://web.archive.org/web/20120410120743/http://webster.cs.ucr.edu/AoA/Windows/HTML/Arraysa2.html
Обновил первый абзац, чтобы показать обновленную ссылку, благодаря @OskensoKashi.
Визуализация в более чем трех измерениях не будет интуитивно понятной - как бы вы ни старались. Но вы на правильном пути - изменяющиеся во времени объекты - распространенный метод визуализации данных более высоких измерений.
Трехмерный объект может быть визуализирован с изменяющимся во времени пересечением объекта с плоскостью, когда объект движется через плоскость - например, сфера, проходящая через плоскость, отображается как круг, растущий от точки к диску с тем же радиус как сфера и снова сжимается до точки.
То же самое можно сделать с четырехмерными объектами. Они визуализируются как пересечение объекта с фиксированным трехмерным пространством, в то время как объект движется по четвертому измерению.
Гиперкуб! Но на самом деле, если вам нужна визуализация, предположите, что каждый блок, который вы создали из трехмерного массива, теперь имеет внутри массив. Это вроде многомерных идей теории струн.
Две красивые многомерные визуализации, не относящиеся к четырем измерениям, - это Параллельные координаты и Табличная линза .
Одна из визуализаций - это карты с одной поверхности на другую. Представьте, что ваши руки парят над разными точками стола: каждый раз, когда вы двигаете или руку, вы получаете совершенно другое значение.
Вот как я бы научил этому: ряд кубиков. Позиция (или номер куба) в этой строке - это 4-е измерение.
А если хотите 5-мерного, то теперь картинки столбцов и рядов - кубиков!
Для 6 измерений изобразите строки и столбцы кубов (как для 5 измерений), а теперь добавьте «слои» этих строк и столбцов.
... Для семи измерений представьте все вышеперечисленное - содержащееся в кубах в один ряд! ;)
Ага, это кубики до упора.
Я не могу нарисовать его здесь, но могу визуализировать его как линию (или массив) кубиков.
Другой способ - сначала взять представление куба в виде трехмерного массива. Теперь замените кубик в уме детским деревянным блоком и выровняйте несколько блоков рядом друг с другом.
Это зависит от того, какие данные вы пытаетесь визуализировать. Для некоторых ситуаций, которые у меня были раньше, 2D/3D изображение + RGB цвет работали отлично. 2D изображение образует два измерения, а красный, зеленый, синий каналы цвета, который используется для окраски точки, добавляют еще 3 измерения.
Например, посмотрите на карты нормалей, используемые в разработке игр. Они визуализируют поверхность (2D) с вектором нормали в каждой точке (3D). Векторы обозначаются цветовыми компонентами x~red, y~green, z~blue, сдвинутыми на 127, чтобы можно было хранить отрицательные значения.
Визуализация 3-х измерений в виде кубов и 4-х измерений в виде линии кубов имеет смысл, но, как вы можете видеть, это трудно расширить. Обычно я думаю об этом как о двухмерной визуализации. Обычно это самый простой способ представить, например, как массивы хранятся в Си. Двумерный массив - это просто массив указателей на большее количество массивов или массив массивов. Такой подход также пригодится, если вы действительно вынуждены пытаться представить трехмерные данные в двухмерном формате, например, в электронной таблице. Дополнительные измерения должны быть добавлены в виде столбцов в столбцах или строк в строках.
На самом деле визуализация быстро режет глаза, но, по крайней мере, ее можно нарисовать на доске, и для добавления дополнительных измерений не требуется большого воображения.
1-мерный (массив)
[] [] [] []
2-мерный (массив массивов)
[ [] [] ] [ [] [] ] [ [] [] ] [ [] [] ]
3-мерный (массив массивов массивов)
[ [ [] [] ] [ [] [] ] ] [ [ [] [] ] [ [] [] ] ]