Я хочу как можно быстрее решить математическую задачу. У меня есть набор натуральных чисел от 1 до n, например {1,2,3,4, n = 5}, и я хочу рассчитать формулу следующим образом:Сумма комбинаций номеров
s = 1 * 2 * 3 * 4 + 1 * 2 * 3 * 5 + 1 * 3 * 4 * 5 + 2 * 3 * 4 * 5
, как вы можете видеть, каждый элемент в сумме является умножением n-1 чисел в множестве. Например, в (1 * 2 * 3 * 4) исключается 5, а в (1 * 2 * 3 * 5) исключается 4. Я знаю, что некоторые из умножений повторяются, например (1 * 2) повторяется в 3 из умножений. Как я могу решить эту проблему с наименьшим числом умножений.
Извините за плохой английский. Спасибо.
Как это проблема программирования? Что вы пробовали? И деления считаются умножением или каким-то другим способом? (Я могу думать о нескольких методах, которые используют одно или несколько делений или ответчиков.) А как насчет дополнений? Каждое умножение может быть заменено несколькими добавлениями, чтобы не использовать умножения. –
Я не хочу использовать деление. Только умножения и суммы. Это одна из проблем, которую я хочу решить. Я попытался структурировать числа в дереве, но я не смог найти хорошую структуру, которая может использовать повторные умножения. – Bazinevis
Вы не ответили на вопрос о замене всех умножений на добавления. Кроме того, ваша цель - минимизировать время (как вы говорите в первом предложении) или умножить (как вы говорите в своем почти последнем предложении) или что-то еще? –