Это распечатали "таблицу умножения". А вот делает ли библиотека "раскрытие скобок", или какую-то более простую операцию, непонятно. Разбираться в коде неохота. Спрашивал, может автор знает более простой способ перемножить.
У этого решения проблема: выражение в скобках перед %7 даёт равномерно распределённое случайное число X от 0 до 24, и таким образом операция %7 даст по 3 числа 0-6 для значений X=0..20 и числа 0,1,2,3 для X=21,22,23,24. То есть, числа 1,2,3,4 будут выпадать заметно чаще, чем 5,6,7. Выше я приводил обобщение вашего решения, чтобы уменьшить эту проблему.
Это если мы двигаемся равномерно-прямолинейно. Но это не так. Земля вращается вокруг собственной оси, вокруг Солнца и чуть-чуть вокруг всех других планет, что немаловажно для точного позиционирования. Солнце - вокруг галактики (своей и других галактик), галактика - тоже вокруг чего-то. И на каждом уровне скорости нарастают на порядки. А какие уровни мы ещё не знаем... Вырисовывается такая непредсказуемая линия.
Можно записать всю "таблицу умножения" 8x8, используя правила перемножения как с многочленами + сокращения квадратов, как я написал в примере выше. Но это очень рутинно. Одиночные примеры, типа e1e2 = e12, в статье приведены в избытке.
Поэтому я и спрашивал, есть ли красивая формула, возможно в матричном виде, которая двум 8-векторам сомножителям поставит в соответствие 8-вектор произведение.
Действуют обычные правила перемножения многочленов, плюс приколы с поглощением второй степени переменной (e12*e12=1), что не позволяет выйти за пределы нового базиса. Плюс антикоммутативность умножения.
То есть, умножая e12 на e3, получим e123. e12*e23 = (e1*e2)*(e2*e3) = e1*(e2*e2)*e3 = e13 e12*5 = 5e12 и т.д.
Ладно, обозначим e1*e2 как e12 и так далее. Чему же они равны (покомпонентно)?
e12 ничему не равен покомпонентно. Это просто новый символ, добавленный в базис элемент. На него можно натянуть геометрический смысл (про плоскость на векторах e1,e2), а можно не натягивать. Алгебре от этого ни тепло, ни холодно.
С суммой, казалось бы, тоже простейшее решение. Но ошибочное.
А повторный вызов rand() точно не имеет каких-то негативных последствий? Когда выпало неподходящее число, после этого мы перекрутили. Вспоминается парадокс Монти-Холла.
Я ожидаю что-то типа: есть 4х-мерное линейное пространствo
Вы статью подгоняете под свои ожидания. У автора 3-мерное линейное пространство, над которым он построил 8-мерное множество (не факт, что линейное пространство, но если так, то будет вообще замечательно). И вектора исходного 3-мерного пространства, и их "алгебраические произведения", и скаляры, довольно причудливо ложатся в построенное 8-мерное множество. Что немаловажно, там есть замкнутое сложение и умножение.
Было бы интересно увидеть, как перемножаются в общем случае эти 8-компонентные векторы. Есть ли какая-то красивая формула, или это нудное раскрытие скобок, как с многочленами.
Если есть 2 монитора, можно как-то настроить OBS (легальное ПО, с точки зрения античита), чтобы он транслировал окно игры на другой монитор, с фильтрами Crop/Zoom.
А так у нас калькулятор, который запускается на любом среднем ПК (пусть и съедая все доступные ресурсы). Если бы не запускался на типовом ПК, его бы никто не покупал. Лучше иметь такой калькулятор, чем не иметь по причине его стоимости как 2 самолёта.
Вызывая k раз ф-цию rand5, получаем число от 0 до 5^k-1 (записывая цифры из rand5 как число в 5-ричной системе). Далее берём от этого числа mod 7, и получаем ответ. Ясно, что не идеально точный, потому что остаётся маленький "хвостик" между 5^k и 7*n. Но чем больше k, тем меньше эта разница. Например для k=10 вероятность попасть в эту погрешность будет не выше 7/(5^10), т.е. пренебрежимо малой.
Это распечатали "таблицу умножения". А вот делает ли библиотека "раскрытие скобок", или какую-то более простую операцию, непонятно. Разбираться в коде неохота. Спрашивал, может автор знает более простой способ перемножить.
В статье это есть
где с - скалярное произведение, d=(d1,d2,d3) - векторное классическое.
У этого решения проблема: выражение в скобках перед %7 даёт равномерно распределённое случайное число X от 0 до 24, и таким образом операция %7 даст по 3 числа 0-6 для значений X=0..20 и числа 0,1,2,3 для X=21,22,23,24. То есть, числа 1,2,3,4 будут выпадать заметно чаще, чем 5,6,7. Выше я приводил обобщение вашего решения, чтобы уменьшить эту проблему.
Система отсчёта, привязанная в космическому телу, движущемуся по орбите - не инерциальная. К чему будете привязываться?
Это если мы двигаемся равномерно-прямолинейно.
Но это не так. Земля вращается вокруг собственной оси, вокруг Солнца и чуть-чуть вокруг всех других планет, что немаловажно для точного позиционирования. Солнце - вокруг галактики (своей и других галактик), галактика - тоже вокруг чего-то. И на каждом уровне скорости нарастают на порядки. А какие уровни мы ещё не знаем... Вырисовывается такая непредсказуемая линия.
Можно записать всю "таблицу умножения" 8x8, используя правила перемножения как с многочленами + сокращения квадратов, как я написал в примере выше. Но это очень рутинно. Одиночные примеры, типа e1e2 = e12, в статье приведены в избытке.
Поэтому я и спрашивал, есть ли красивая формула, возможно в матричном виде, которая двум 8-векторам сомножителям поставит в соответствие 8-вектор произведение.
Действуют обычные правила перемножения многочленов, плюс приколы с поглощением второй степени переменной (e12*e12=1), что не позволяет выйти за пределы нового базиса. Плюс антикоммутативность умножения.
То есть, умножая e12 на e3, получим e123.
e12*e23 = (e1*e2)*(e2*e3) = e1*(e2*e2)*e3 = e13e12*5 = 5e12и т.д.
Вот как ложатся исходные вектора на 8-мерное пространство:
Скаляр
Вектора
Бивектора
e12 ничему не равен покомпонентно. Это просто новый символ, добавленный в базис элемент. На него можно натянуть геометрический смысл (про плоскость на векторах e1,e2), а можно не натягивать. Алгебре от этого ни тепло, ни холодно.
С суммой, казалось бы, тоже простейшее решение. Но ошибочное.
А повторный вызов rand() точно не имеет каких-то негативных последствий? Когда выпало неподходящее число, после этого мы перекрутили. Вспоминается парадокс Монти-Холла.
Так 8 базисных элементов:
3 исходых вектора e₁, e₂, e₃
3 бивектора (просто говорим, что e₁e₂, e₂e₃, e₁e₃ - новые элементы, прошу любить и жаловать)
скаляр 1
псевдоскаляр e₁e₂e₃
Вы статью подгоняете под свои ожидания. У автора 3-мерное линейное пространство, над которым он построил 8-мерное множество (не факт, что линейное пространство, но если так, то будет вообще замечательно). И вектора исходного 3-мерного пространства, и их "алгебраические произведения", и скаляры, довольно причудливо ложатся в построенное 8-мерное множество. Что немаловажно, там есть замкнутое сложение и умножение.
Было бы интересно увидеть, как перемножаются в общем случае эти 8-компонентные векторы. Есть ли какая-то красивая формула, или это нудное раскрытие скобок, как с многочленами.
В статье решение из г-на и палок, без финансовых вливаний. Я предложил аналогичное.
Есть там эти определения:
Как я понял, "мультивектор" - наиболее общая форма элемента этой алгебры (с любыми ненулевыми компонентами)
Хотелось бы уточнений:
3e₁e₂ - тоже бивектор, или уже нет?
2e₁e₂+7e₂e₃ - бивектор?
если да, то "бивектор" - это форма мультивектора, в которой ненулевые только слагаемые со второй степенью компонент базиса.
Если есть 2 монитора, можно как-то настроить OBS (легальное ПО, с точки зрения античита), чтобы он транслировал окно игры на другой монитор, с фильтрами Crop/Zoom.
Сериал "Devs" (2020)
Понятно. Тогда формула выше (для произведения ab) - неполное определение произведения. Нужна формула произведения для 4-х компонентных объектов.
Или даже не 4 компонента, а больше? Увидел выше ваше сообщение про 8 комбинаций. То есть, элемент в этой алгебре задаётся 8 числами.
А так у нас калькулятор, который запускается на любом среднем ПК (пусть и съедая все доступные ресурсы). Если бы не запускался на типовом ПК, его бы никто не покупал. Лучше иметь такой калькулятор, чем не иметь по причине его стоимости как 2 самолёта.
Наоборот, умный тролль. Он показал ученикам, что задачи типа "продолжить ряд" математически некорректны.
Вызывая k раз ф-цию rand5, получаем число от 0 до 5^k-1 (записывая цифры из rand5 как число в 5-ричной системе). Далее берём от этого числа mod 7, и получаем ответ. Ясно, что не идеально точный, потому что остаётся маленький "хвостик" между 5^k и 7*n. Но чем больше k, тем меньше эта разница. Например для k=10 вероятность попасть в эту погрешность будет не выше 7/(5^10), т.е. пренебрежимо малой.