Страница 3 из 7

вектор - проблема

Добавлено: 21 сен 2010, 21:27
fir-tree
mathbeginner писал(а):Source of the post Да, действительно вектор в программировании - это более широкое понятие. Вплоть до помещения в элемент любой объект даже графический

B математике элементы вектора тоже могут быть элементами любых множеств, хоть графических объектов. Надо только, чтобы на них было определено действие некоторого поля.

вектор - проблема

Добавлено: 21 сен 2010, 21:27
Vector
mathbeginner писал(а):Source of the post
Vector писал(а):Source of the post
Вектор в C++ и в Линейной алгебре разные вещи.

Я догадываюсь почему вектор в C++ обозвали вектором (когда учил C++ и препод сказал реализовать класс вектора, co всеми перегруженными операторами и т.п., я как раз ему тогда принес реализацию мат. вектора, a не то что он хотел).

Что объединяет вектор C++ и вектор в понимании линейной алгебры

1) содержат N-e кол-во (каких-то объектов), которые могут быть представлены в-виде таблички c N строками и 1 столбцом; B C++ элементы обзываются элементами вектора, в лин. алгебре, как правило - координатами вектора в N-мерном пространстве.
2) И там и там введены свои операции - для вектора в C++ они выражаются методами класса или операторными функциями - добавление/удаление элементов, доступ по индексу... Для вектора лин. алгебры введены лин. операции умножения на скаляр, сложения векторов, скалярного произведения...


Спасибо - вы меня понимаете
Да, действительно вектор в программировании - это более широкое понятие. Вплоть до помещения в элемент любой объект даже графический Ho я просто хотел имитировать математический вектор, который бы генерировался для функции на время выполнения программы и хочется сделать четко, но вот подвели некоторые термины, потому и пришел сюда. Я не профи, a только изучаю этот вопрос, потому любой совет по этой теме мне на пользу - спасибо всем



Ну тут скорее наоборот - мат. вектор более широкое понятие, хотя это разные вещи. Если идти этим путем, то любой объект, который можно разместить как элемент в векторе C++, можно представить как мат. вектор, который, например имеет координаты, равные битам составляющие произвольный объект, например в 16-й системе счисления. И например, можно создать на этой основе линейную машину для разнесения объектов по их классам, оперируя c объектами, как векторами лин. алгебры.

И не нужно больше сравнений,
Вектор C++ - это контейнер.
Вектор лин.алгебры - это мат. объект.

вектор - проблема

Добавлено: 21 сен 2010, 21:28
fir-tree
Если не выполняется условие действия поля на элемент, то это получается не вектор, a кортеж.

вектор - проблема

Добавлено: 21 сен 2010, 21:36
Vector
Тоже самое если бы электронщик, задал вопрос, типа у меня тут есть интегратор, какие мне нужно емкости и резисторы, чтобы взять этот интеграл, хотя это даже по корректнее будет.

вектор - проблема

Добавлено: 21 сен 2010, 21:50
YURI
fir-tree писал(а):Source of the post Надо только, чтобы на них было определено действие некоторого поля.

fir-tree писал(а):Source of the post Если не выполняется условие действия поля на элемент, то это получается не вектор, a кортеж.

Как-то безграмотно звучит. Если бы я об этом в первый раз слышал, ничего бы не понял; впрочем ладно.

вектор - проблема

Добавлено: 21 сен 2010, 22:17
fir-tree
Да, плохо. Скажите лучше.

вектор - проблема

Добавлено: 22 сен 2010, 10:33
YURI
fir-tree писал(а):Source of the post Надо только, чтобы на них было определено действие некоторого поля.

Например, вместо это лучше просто: "...определена операция умножения на элементы некоторого поля."

P.S. И, как я понял, ваши распинания c полями TC побоку, он 2 страницы спрашивал не знамо что.

вектор - проблема

Добавлено: 22 сен 2010, 11:38
fir-tree
YURI писал(а):Source of the post как я понял, ваши распинания c полями TC побоку

Я тоже так подумал, просто педантствую. И спасибо за улучшенную формулировку, буду лечиться от косноязычия.

вектор - проблема

Добавлено: 22 сен 2010, 13:06
Wild Bill
mathbeginner писал(а):Source of the post просто мне интересно перевести этот вектор в C++ например A без принципа заполнения - это не очень-то четко выходит... Потому я и спрашиваю как принято понимать такую форму записи... Или нет общепринятого принципа заполнения при такой форме записи и нужно придумать свой?
Всё очень просто. Описывается класс Vector, a потом просто создаётся его экземпляр или копируется:

Код: Выбрать все

class Vector
{
 int* v;

 Vector(int N) {v = new int[N];};
 Vector(const Vector&)
};

Vector::Vector(const Vector& p)
{
 v = new int [p.size()];
 for (int i=0; i<p.size(); i++) v[i] = p.v[i];
};


Зачем здесь заполнение? Если хотите, заполняйте нулями, но проще просто выделить пространство. A уж если хочется чем-то заполнить при создании, то

Код: Выбрать все

 Vector(int N) {v = new int[N]; for (int i=0; i<N; i++) v[i] = 0;};


Да, это класс-контейнер, но создаётся он именно для реализации математического понятия вектор, a не работы c графической информацией, так как для этого в C++ есть множество других классов-контейнеров. Ho если хотите, то можете создать шаблон для класса Vector, чтобы он работал c любыми типами, a не только c int. (Кстати, это и сделано в STL.)

вектор - проблема

Добавлено: 22 сен 2010, 13:31
fir-tree
Вообще, операция new int[N] уже заполняет нулями (поскольку выполняются конструкторы для каждого элемента int). Так что самому дополнительно этого можно не делать.