Здравствуйте, igna, Вы писали:
I>Кто-нибудь из считающих так мог бы привести аргументы в пользу такого понимания?
Не считаю так. Но могу предположить один из источников путаницы:
В BASICах есть такие statement как Dim и ReDim для задания размерности, но они задают не только размерность, но и размеры. При этом ReDim вряд ли будет использована для изменения размерности, скорее только для изменения размеров.
I>Кто-нибудь из считающих так мог бы привести аргументы в пользу такого понимания?
Возможно из того, что в математике под размерностью вектора понимается как раз количество его элементов. А к размерности типа вектор, таблица и т.д. скорее ближе понятие ранга тензора.
Пусть есть вектор {x, y, z}. Вам кажется, что длина этого вектора 3, а размерность 1. А математик скажет, что длина вектора — sqrt(x^2 + y^2 + z^2), а размерность — 3.
Здравствуйте, Sergey Chadov, Вы писали:
SC>Возможно из того, что в математике под размерностью вектора понимается как раз количество его элементов. А к размерности типа вектор, таблица и т.д. скорее ближе понятие ранга тензора.
Ну да: есть размерность вектора данных, а есть размерность вектора координат (оно же — ранг тензора).
Если с вектором, матрицей или даже гиперкубом данных работают как с пространством, содержащим отдельные элементы — то нас больше интересуют координаты.
Если же мы работаем с этими векторами как едиными целыми, образующими векторное пространство...
Здравствуйте, Qbit86, Вы писали:
Q>Пусть есть вектор {x, y, z}. Вам кажется, что длина этого вектора 3, а размерность 1. А математик скажет, что длина вектора — sqrt(x^2 + y^2 + z^2), а размерность — 3.
Математик спросит про тип пространства и определённое в нём расстояние. Манхеттенское там |x|+|y|+|z|, чёбышевское — max(|x|,|y|,|z|), и только евклидово — как выше.
А кстати: где-нибудь используются иные расстояния? Ну, скажем, кубическое: (|x|^3+...+|z|^3)^(1/3)
У манхеттенского (^1), евклидового (^2) и чёбышевского (lim ^+oo) есть физический смысл: это кратчайшие пути по квадратной сетке, по прямой и по квадратной сетке с диагоналями.
Здравствуйте, Кодт, Вы писали:
К>А кстати: где-нибудь используются иные расстояния?
Ну, где-нибудь, наверное, используются, ты ж сам примеры написал. Надо определить расстояние между перекрёстками в городе — манхеттенская метрика с (обобщённо) октаэдрической окрестностью, надо определить число ходов шахматного короля из одной клетки в другую — чебышевская метрика с (обобщённо) кубической окрестностью.
Здравствуйте, Кодт, Вы писали:
К>Ну да: есть размерность вектора данных, а есть размерность вектора координат (оно же — ранг тензора).
Про ранг почти всё верно, но со словами вроде «тензор» надо поаккуратнее. Так, например, не любая двумерная матрица величин (не обязательно констант) является тензором второго ранга, не любой радиус-вектор является вектором-в-смесле-тензора-первого-ранга. Там ещё необходимо, чтобы при поворотах координаты преобразовывались определённым образом.
Здравствуйте, Кодт, Вы писали:
К>А кстати: где-нибудь используются иные расстояния? Ну, скажем, кубическое...
А, имелось в виду не одну из трёх перечисленных? Да, используются. У меня коллеги работают со звуком, у них там всякие метрики в разных пространствах используются. Никогда не понятно, что значит «ближе» в том или ином случае, приходится эксперементировать, метрики подбирать.
Здравствуйте, Sergey Chadov, Вы писали:
SC>Возможно из того, что в математике под размерностью вектора понимается как раз количество его элементов.
Спасибо, теперь ясно, это путаница понятий "массив" и "вектор". Обрати внимание, как ты молча подменил мое "размерность массива" на "размерность вектора", и не ты один
PS. Да, я знаю, STL использует имя vector для обозначения массива, но STL и set использует для обозначения упорядоченного множества, а не множества вообще, более того, по-мнению STL даже map (отображение) упорядочено, так что в смысле корректности названий STL не авторитет.
I>Спасибо, теперь ясно, это путаница понятий "массив" и "вектор". Обрати внимание, как ты молча подменил мое "размерность массива" на "размерность вектора", и не ты один
Здравствуйте, Sergey Chadov, Вы писали:
SC>А чем массив принципиально отличается от вектора? И тот и другой представляют собой набор однородных элементов.
Здравствуйте, Sergey Chadov, Вы писали:
SC>А чем массив принципиально отличается от вектора?
Массив — это структура данных. А вектор — это абстрактный тип данных, который чаще всего реализуется на базе структуры данных массив. Это всего лишь одна из интерпретаций терминов, не самая распространённая, наверное.
SC>И тот и другой представляют собой набор однородных элементов.
Абстрактный тип данных «вектор-некоторого-пространства» не обязан поддерживать операции типа push_back(), очевидного математического смысла они не несут. Абстрактный тип данных «вектор-как-инексируемый-набор-данных» может менять свойство Count (так его назовём, чтобы не путать с Length, Dimension и Rank).
Здравствуйте, Qbit86, Вы писали:
Q>Про ранг почти всё верно, но со словами вроде «тензор» надо поаккуратнее. Так, например, не любая двумерная матрица величин (не обязательно констант) является тензором второго ранга, не любой радиус-вектор является вектором-в-смесле-тензора-первого-ранга. Там ещё необходимо, чтобы при поворотах координаты преобразовывались определённым образом.
Да сперва нужно вообще предусмотреть эти повороты... Если мы ничего не вертим, то вся аналогия с тензорами — это структура данных.
Q>Абстрактный тип данных «вектор-некоторого-пространства» не обязан поддерживать операции типа push_back(), очевидного математического смысла они не несут. Абстрактный тип данных «вектор-как-инексируемый-набор-данных» может менять свойство Count (так его назовём, чтобы не путать с Length, Dimension и Rank).
Это все верно, но математика ничего не знает об абстрактных типах данных. Поэтому в принципе понятна точка зрения, что вектор — ближайший аналог массива. Хоття лично я бы макрос, вычисляющий длину массива dimensionof не назвал.
Здравствуйте, Трурль, Вы писали:
Т>a[10] имеет одну размерность — 10. Т>b[2,5] имеет две размерности — 2 и 5. Иногда говорят, что размерность b — 2x5.
Спасибо, вот еще как оказывается можно мозгами раскинуть.
Из Википедии:
A tesseract is an example of a four-dimensional object. Whereas outside of mathematics the use of the term "dimension" is as in: "A tesseract has four dimensions," mathematicians usually express this as: "The tesseract has dimension 4," or: "The dimension of the tesseract is 4."