Задача по линейной алгебре
300 UAHЗадача больше математическая, но раздела с математикой тут нет и решение все равно будет использоваться в программе, поэтому буду одинаково рад как математической формуле, так и программной функции (предпочтительно C#, но можете писать на чем угодно).
Для облегчения понимания условий задачи, представим человека, стоящего в квадратной закрытой комнате.
На него действует сила гравитации, вектор направления которой V1 = (0, -1, 0), т.е. по-простому "вниз". В исходных данных мы имеем этот самый вектор направления гравитации V1 и вектор направления взгляда V2 (человек всегда смотрит вперед, факт того, что он может крутить головой , игнорируем). Но то, что он не может крутить головой, не отменяет того факта, что человек может стоять так, что вектор взгляда не перпендикулярен одной из стен.
Теперь представим, что направление гравитации внезапно меняется на V3 = (1, 0, 0). Т.е. поверхность, которая еще недавно была для человека одной из стен, становится для него полом. Человек в воздухе меняет положение тела так, чтоб его ноги всегда заправлены в сторону новой гравитации и вот он стоит на этой стене и она для него теперь пол. Человек все также смотрит вперед, и этот самый новый вектор направления взгляда V4 и есть тем, что нужно посчитать.
Если посмотреть на рис.2 то становится понятным, что от того, в какую сторону изначально направлен вектор взгляда V2, при прочих одинаковых условиях, конечный результат будет отличаться. Повторюсь, взгляд не обязательно будет направлен перпендикулярно одной из стен, как и начальная и конечная гравитация.
Т.е. фактически мне нужна формула F(V1, V2, V3) = V4
Мне уже пытались решить эту задачу на другой бирже, но человек не проверил все пары входящих данных и результатов и в результате в некоторых ситуациях получается неправильный результат, поэтому обязательно прошу проверить все комбинации.
Пример неправильного решения тоже прикладываю (рис.3). В неправильной формуле решение отличается лишь знаком, например для Примера 3 получается 0, -1, 0 (нужно 0, 1, 0); для Примера 4 получается 0, -1, 0 (нужно 0, 1, 0); для Примера 5 получается 0, 0, -1 (нужно 0, 0, 1). Т.е. формула работает почти правильно, но нужна доработка, поэтому в этот раз я дал так много примеров, чтоб уж точно получить правильно решение.
Примеры входящих данных и результатов:
Пример 1
V1 = 0, -1, 0
V2 = 1, 0, 0
V3 = 1, 0, 0
Результат V4 = 0, 1, 0
--------
Пример 2
V1 = 0, -1, 0
V2 = -1, 0, 0
V3 = 1, 0, 0
Результат V4 = 0, -1, 0
--------
Пример 3
V1 = 0, -1, 0
V2 = -1, 0, 0
V3 = -1, 0, 0
Результат V4 = 0, 1, 0
----------------
Пример 4
V1= 0, -1, 0
V2 = 0, 0, 1
V3 = 0, 0, 1
Результат V4 = 0, 1, 0
------------------
Пример 5
V1 = 0, -1, 0
V2 = 0, 0, 1
V3 = 0, 1, 0
Результат V4 = 0, 0, 1
------------------
Пример 6
V1 = 0, -1, 0
V2 = 0, 0, -1
V3 = 0, 1. 0
Результат V4 = 0, 0, -1
---------
Пример 7
V1 = 0, -1, 0
V2 = 1, 0, 0
V3 = 0, 1, 0
Результат V4 = 1, 0, 0
---------
Пример 8
V1 = 0, -1, 0
V2 = 0, 0, -1
V3 = 0, 0, -1
Результат V4 = 0, 1, 0
Приложения 3
Отзыв заказчика о сотрудничестве с Олексієм Кожушком
Задача по линейной алгебреВсе сделано на отлично и в срок. Большое спасибо!
Отзыв фрилансера о сотрудничестве с Иваном Зеленым
Задача по линейной алгебреЗадача хорошо поставлена, заказчик сразу дал всю необходимую информацию. Сотрудничество было эффективным. Рекомендую.
-
Вниз всегда было (0;0;-1). Или это какая-то новая традиция?
-
Интересно, что выдаст ваша программа в случае:
V1 = 0, -1, 0
V2 = 1, 0, 0
V3 = 0, 0, 1
Результат V4 = ??? -
Актуальные фриланс-проекты в категории C#
Доопрацювання 1С УТ 11 для ТСД Zebra (RDP): різні звукові сигнали при скануванні
1000 UAH
Конфигурация: 1С УТ 11 Адресный склад ТСД Zebra TC26 Работа через RDP Сканирование товаров выполняется в документах приемки, размещения, отбора и других складских операциях. Текущая проблема: Кладовщики работают через ТСД Zebra. При сканировании не всегда замечают сообщения на… C#, Базы данных и SQL ∙ 3 дня 21 час назад ∙ 6 ставок |