[Архив!] Чистая математика, физика, химия и т.п.: задачки для тренировки мозгов, никак не связанные с торговлей - страница 555
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Этот видеофильм тоже развод? PS: Интересно мнение не только Алексея, но и других участников форума.
"Единственный известный мне человек которому удалось собрать генератор Серла, который назвали в честь Серла был сам Серл":)
Людей, которые захватили половину Европы тоже не так много. Дмитрий, по-вашему эта фраза "дезавуирует" остальную часть фильма? Так, что вы думаете, развод или нет?
Фильм похож на сектантскую пропаганду. Полная беспонтовость, чтобы его хоть на чуть-чуть всерьез воспринимать... 60 лет он давала давал... и что он дал?
// Сразу пардон за оффтоп, так как частный случай приложения решений (если решения найдутся) всё-таки связан с торговлей.
// (: а с другой стороны, это ведь стимул, да? :)
// Кто реально поможет, скажу зачем понадобилось... ;) Уверяю - очень может пригодиться..
Задачка:
Дано: набор ортогональных векторов в количестве M штук в N-мерном пространстве (M<N) // в предельном случае М==1
Требуется: построить генератор векторов (!) ортогональных данному набору. Нужны идеи о том как можно быстро генерить случайные вектора соответствующие условию (!) .
Пояснения-напоминания : Для пространства размерности N, размерность пространства решений равна (N-M), т.е. при начальном наборе в количестве (M=N-1) векторов имеем одно однозначное решение (кстати, как его получить в один ход? есть статья в вики, но я до конца не разобрался. кто на пальцах объяснит алгоритм - тому конфетка (опять же - скажу зачем мне всё это.)). При меньшем начальном наборе - таких векторов бесконечное количество, т.е. "есть варианты". Вот эти варианты и нужно генерить.
Фраза "набор ортогональных векторов А ортогонален набору В" несколько неоднозначна (в смысле что конкретно чему ортогонально)... Можно задать точное условие, лучше формулой?
Можно и уточнить. Словами мне проще. Все вектора ортогональны друг-другу. :) Мне не нужен набор В. Ну т.е. нужен, но не сразу, а постепенно. :))
Нужно сделать функцию на mql(5), которая берёт на вход начальный набор векторов (А) в виде массива и возвращает один вектор, ортогональный всем входным векторам.
Ну типа такой :
Выходной вектор случайный, но гарантированно из дополняющего пространства. (В случае когда InputCount == Dimention-1, возвращается единственно возможный однозначный вектор)
Важное условие : функция должна быть [насколько возможно] быстрой. Тормозную я и сам могу.. :)
Фраза "набор ортогональных векторов А ортогонален набору В" несколько неоднозначна (в смысле что конкретно чему ортогонально)... Можно задать точное условие, лучше формулой?
Насчёт формулой : взаимные попарные скалярные произведения всех входящих и исходящего вектора == 0
Это условие позволяет однозначно решить систему уравнений и получить последний вектор (при M==N-1).
В случае же (M<N-1) система имеет уже пространство решений.
Вот из этого-то пространства решений мне и нужно случайные вектора выдёргивать. Желательно очень быстро.
Это условие позволяет однозначно решить систему уравнений и получить последний вектор (при M==N-1).
Только если набор нормированный. Если нет, то получаем также бесконечное множество решений.
Пример: для набора {(1,0,0), (0,2,0)} любой вектор вида (0,0,z) будет ортогонален
Только если набор нормированный. Если нет, то получаем также бесконечное множество решений.
Пример: для набора {(1,0,0), (0,2,0)} любой вектор вида (0,0,z) будет ортогонален
Да, конечно. Все векторы нормированные. И на входе и на выходе.
Есть простое решение... на языке вертится как говорят))) щас
Для одного вектора (x0) на входе решение я легко и давно придумал (для пространства произвольной размерности):
. . 1. Генерируем случайный вектор (x1r)
. . 2. Нормируем его -> (x1rn)
. . 3. Находим сумму и разность вродного (х0) и полученного (x1rn) -> (sX, dX)
. . 4. Складываем sX+dX и нормируем сумму.
. . 5. Готово. Возвращаем из функции и берём с полки пирожок.
--
Но для большего чем один входной вектор этот алгоритм не годится. Или я не смог приспособить толком.
Если есть идеи как приспособить так, чтоб итерации не множились как снежный ком - сгодится.
Блин, пока объяснял, кажется сам въехал. :)
Если для каждого входного вектора проделать описанную выше процедура, то все полученные векторы при суммировании с последующим нормированием суммы и дадут искомый псевдослучайный вектор!
alsu, поправь если наглючил.
--
// ага, почти наглючил. Чуть посложнее, так просто не получится. Нужно после получения xi вектора на каждом шаге, сначала его "складывать-вычитать-нормировать" со следующим входным и т.д. до исчерпания входных векторов. Как-то так.