Работа с математическими векторами в программировании Основы

Работа с математическими векторами в программировании Основы
Решаю задачи из учебника Блинова по языку java и возникла сложность с одним из заданий.
Вот оно:
"Определить класс Вектор размерности n. Реализовать методы сложения,
вычитания, умножения, инкремента, декремента, индексирования.
Определить массив из m объектов. Каждую из пар векторов передать в
методы, возвращающие их скалярное произведение и длины. Вычислить и
вывести углы между векторами"

Реализация программы проблемы не составляет, однако я совершенно не помню как с математическими векторами работать.
И вот что собственно нужно:
- Кратко и понятно объясните основы. Не математическими терминами, а реализацией в программировании - так сказать на пальцах, для дебилов=)
- Что означает "размерность" вектора?
- Пример сложения векторов.

  • Размерность вектора - это, грубо говоря, сколько в нём чисел.
    Сложение:
    Допустим: a1(1, 2, 4), a2(2, 7, -1)
    Тогда a1 + a2 = (1 + 2, 2 + 7, 4 + (-1) ) = (3, 9, 3) (получается другой вектор) .
    Вычитание - точно так же, только вычитание.
    Скалярное произведение:
    a1 ^ a2 = (1 * 2) + (2 * 7) + (4 * (-1) ) = 2 + 14 - 4 = 12 (получается число) .
    Чтобы найти длины нужно взять скалярное произведение вектора на самого себя:
    d(a1) = a1 ^ a1 = (1 * 1) + (2 * 2) + (4 * 4) = 1 + 4 + 16 = 21.

    Инкремента и декремента в математике нет.

    Чтобы угол между векторам найти нужно их скалярное произведение разделить на произведение их длин.

  • "Для дебилов)) "
    размерность вектора - то сколько у него компонет.
    три числа в декартовой геометрии пространства - векторы трёхмерные. и тд.
    в программизме - сколько возможных значений индекса у этого массива

    пример сложения в декартовой метрике
    for(i=0;i < razmer; i++)novyi[ i]= staryi1[ i] + staryi2[ i] ;