Задать вопрос
Ответы пользователя по тегу Математика
  • Как расчитать вес основания торшера?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Для расчёта можно взять только одну ось, по второй торшер зеркально-симметричен и устойчив. За 0 примем центр основания.
    1. Основание - радиус Rосн, масса Mосн
    2. Вертикальная труба - расстояние от центра основания Xвт, масса Mвт
    3. Дуга, самая сложная часть, примем за сектор в 90°, радиус Rд, масса Mд
    4. Вынос - длина Lв, масса Mв
    5. Светильник - масса Mсвacbb3f86d8c64ba1ae8c2edd104d77be.png

    Для начала посчитаем расположение всех центров масс.
    Rцмд = Rд*sin(π/4)/(π/4) = 0.9*Rд
    Xцмд = Rд - Rцмд*cos(π/4) - Xвт
    Xцмв = Rд - Xвт + Lв / 2
    Xсв = Rд - Xвт + Lв

    Теперь возьмём формулу центра масс сложного объекта
    Xцм = SUM(Xi * Mi) / SUM(Mi)
    Наложим ограничение Xцм < Rосн
    (-Xвт*Mвт + Xцмд*Mд + Xцмв*Mв + Xсв*Mсв) / (Mосн + Mвт + Mд + Mв + Mсв) < Rосн
    (Mосн + Mвт + Mд + Mв + Mсв) > (-Xвт*Mвт + Xцмд*Mд + Xцмв*Mв + Xсв*Mсв) / Rосн
    Mосн > (-Xвт*Mвт + Xцмд*Mд + Xцмв*Mв + Xсв*Mсв) / Rосн - Mвт - Mд - Mв - Mсв
    Ответ написан
    1 комментарий
  • Как проверить, пересекаются ли треугольники?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Варианты: не пересекаются, касаются снаружи, пересекаются, один касается другого изнутри, один полностью вложен во второй.

    Пересекаются - какая-либо сторона одного треугольника пересекается с какой-нибудь стороной второго и стороны не параллельны, для каждой стороны первого треугольника проверяем каждую сторону второго.

    Один полностью внутри другого - все вершины треугольника A расположены по одну сторону от сторон второго треугольника B, обходимого по контуру, то есть от отрезков B1B2, B2B3, B3B1.

    Касание - вершина одного из треугольников лежит на стороне другого треугольника или сторона одного треугольника параллельна стороне второго и пересекается с ней.
    Ответ написан
    6 комментариев
  • Какую связь имеет эта формула с функциональным программированием?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Композиция функций f и g
    Ответ написан
    Комментировать
  • Сгенерировать M уникальных случайных чисел в диапазоне от 1..N. Быстрый алгоритм есть?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Создать массив X[1..N]
    Заполнить его X[i] = i
    Сделать много (например, N) перестановок случайных элементов X[rand(1..N)] <=> X[rand(1..N)]
    Взять M первых элементов
    Ответ написан
    Комментировать
  • Как округлить число только в большую сторону?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    21749 до скольки знаков должно округляться? Можно получить 21750, 21800, 22000, 30000, 100000, 1000000, ... Как программа должна определить где остановиться?
    Ответ написан
    1 комментарий
  • Точность рекуррентной формулы?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Вы вывели формулу получения k+1 элемента из k-го, а в программе используете её для получения k-го элемента из k-1. Это разные формулы.
    Ответ написан
    Комментировать
  • Как найти дубликаты в массиве 64-битных чисел по (битовому) расстоянию Хэмминга?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Расстояние Хэмминга на MySQL посчитать несложно.
    BIT_COUNT(HEX(:value1) ^ HEX(:value2))
    Но надо определиться с понятием "группы таких чисел". Возьмём три двоичных числа (001, 011, 111) и определим расстояния между ними.
    d(001, 011) = 1
    d(001, 111) = 2
    d(011, 111) = 1
    Таким образом, первое и третье числа находятся на расстоянии 1 до второго, но между собой они находятся на расстоянии 2. Если границей расстояния выбрать 1, то как должны сформироваться группы?
    Ответ написан
    8 комментариев
  • Разделить окружность на равные части?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Math.Cos и Math.Sin принимают угол не в градусах, а в радианах.
    Замечание - расстояние между любыми двумя отрезками на вашем рисунке - ноль, так как они все имеют общую точку.
    Ответ написан
    2 комментария
  • Каково количество возможных отношений между N числами?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Для задачи можно рассматривать только неубывающие последовательности, поскольку возрастающие можно получить из них инвертировав порядок.
    Имеем N чисел. Пусть ni - длина подпоследовательности, в которой числа равны. Тогда все варианты можно представить как разложение N на слагаемые. Для каждого такого варианта вычисляем количество перестановок чисел с учётом наличия одинаковых
    P = N! / ∏(ni!)
    , затем суммируем полученные значения.

    N = 4
    [4] => A = B = C = D, P = 4! / (4!) = 1
    [3,1] => A = B = C < D, P = 4! / (3! * 1!) = 4
    [2,2] => A = B < C = D, P = 4! / (2! * 2!) = 6
    [2,1,1] => A = B < C < D, P = 4! / (2! * 1! * 1!) = 12
    [1,3] => A < B = C = D, P = 4! / (1! * 3!) = 4
    [1,2,1] => A < B = C < D, P = 4! / (1! * 2! * 1!) = 12
    [1,1,2] => A < B < C = D, P = 4! / (1! * 1! * 2!) = 12
    [1,1,1,1] => A < B < C < D, P = 4! / (1! * 1! * 1! * 1!) = 24

    Итого 24+12+12+4+12+6+4+1 = 75 вариантов
    Ответ написан
    2 комментария
  • Есть ли формула для этого?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Вообще-то это стандартный перевод из одной систему счисления, в данном случае десятичной, в другую, с основанием равным длине нового алфавита.
    function myEncode($value, $alphabet, $length) {
      $base = strlen($alphabet);
      $encoded = '';
      while ($length > 0 && $value > 0) {
        $encoded = $alphabet[$value % $base].$encoded;
        $value = ($value - $value % $base) /$base; 
        $length--;
      }
      while ($length > 0) {
        $encoded = $alphabet[0].$encoded;
        $length--;
      }
      return $encoded;
    }
    
    $alphabet = 'abcdefghijklmnopqrstuvwxyz';
    echo myEncode(2, $alphabet, 3)."\n";
    echo myEncode(555, $alphabet, 3)."\n";


    Если алфавит и длина результата фиксированы, то можно и проще:
    function myEncode_1($value) {
      return chr(($value - $value % 676) / 676 + 97).
             chr(($value % 676 - $value % 26) / 26 + 97).
             chr($value % 26 + 97);
    }
    
    echo myEncode_1(2)."\n";
    echo myEncode_1(555)."\n";
    Ответ написан
  • Почему произведение может дать количество комбинаций?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Для первой книги (из шести) есть шесть свободных позиций на полке. Для второй - остаётся пять для каждого из шести вариантов размещения первой книги (6*5). Для третьей - 4 для каждого из 30 (6*5*4). И так далее, для шестой остаётся одна позиция для каждого из 720 (6*5*4*3*2) вариантов размещения первых пяти книг. Итого 6*5*4*3*2*1 = 6! = 720 вариантов.
    Ответ написан
    Комментировать
  • Возможно ли найти 4ую сторону прямоугольника?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Возьмите карту, нанесите на неё три известных стороны участка, соедините крайние точки получившейся ломаной линии и вуаля - вы нарисовали четвёртую сторону участка.
    Ответ написан
  • Каким образом сделать распределение ресурса в игровом мире?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Зоны (например квадраты или гексы), для каждой определить максимальную плотность ресурса, текущую плотность и скорость восстановления. При движении в пределах зоны перс собирает ресурс, при этом плотность ресурса в зоне (и, соответственно, скорость сбора) падает.
    Ответ написан
  • Правильно ли я считаю средневзвешенное значение?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    В вашей формуле получится руб*м2/руб = м2, то есть некая площадь.
    Ответ написан
    Комментировать
  • Как представить кривую Безье через окружность?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    А цель какая?
    Если необходимо только сохранение направления кривой в P0 и P2, то достаточно просто. Строим перпендикуляр к P0P1 в точке P0, перпендикуляр к P1P2 в точке P2, находим пересечение перпендикуляров, получаем центр окружности.
    Если максимально точное приближение, но без сохранения направления в крайних точках, то тут уже будут трёхэтажные формулы.
    Ответ написан
  • Как решить задачу по теории вероятностей?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Пары AB и CD - это последовательные зависимые события, PAB = PA*PB/A, PCD = PC*PD/C
    Ответ написан
    7 комментариев
  • Как бы вы разложили многчлен на множители?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Общий принцип - найти корни x1...xn и представить многочлен в виде (x-x1)*(x-x2)*...*(x-xn)
    Корни можно искать как подбором, так и аналитическими методами. Например, первый многочлен:
    p2+pq-2q2 = 0
    D = q2+8q2 = 9q2
    p1 = (-q+3q)/2 = q
    p2 = (-q-3q)/2 = -2q
    p2+pq-2q2 = (p-q)*(p+2q)

    PS.
    Можно решать последовательно, подбирая по одному корню xi и деля многочлен на (x-xi)
    Ответ написан
    5 комментариев
  • Вероятность определения общего числа событий по неполным данным?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Бесконечным. Тогда можно гарантированно сказать, что бросили бесконечное количество яблок. Во всех остальных случаях можно сказать только, что M ≥ L.
    Ответ написан
  • Как рассчитать среднеквадратичное отклонение, если среднее значение неизвестно?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Формула в таком виде смысла не имеет.
    Причина: (i-1) * avg = SUM(Value0...Valuei-1), что, по вашим же словам, в память не поместится.
    Можно считать среднее блока (например, 100 чисел), затем суммировать эти средние и делить на количество блоков. Продолжая алгоритм, средние для каждых 100 блоков можно считать отдельно, как суперблок, затем суммировать их и т.д.

    Точное значение среднего квадратического отклонения без знания среднего арифметического не посчитать. Соответственно, надо знать, что представляют из себя эти числа. Вполне может быть, что достаточно взять небольшую случайную выборку, чтобы получить оценочные значения нужных параметров.
    Ответ написан
    Комментировать
  • Числа из цифр иди число из цифр?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Формально, из цифр состоит не число, а запись числа, его визуальное представление. Само число - некая абстракция, которая может быть представлена ещё и графически на шкале или специальным обозначением (e, π).
    Ответ написан