алгоритм — Найти N-й член в последовательности в переполнении стека

Я нашел проблему, в которой вам дают этот тип последовательности:

у тебя есть

  the first K terms : a1, a2, ... , ak;
K coefficients : b1, b2, ... , bk

и повторение:

S(i) = b1*S(i-K) + b2*S(i-K+1) + ... + bk*S(i-1).

Я должен выяснить N-й термин.

Я считаю, что эту проблему можно решить с помощью быстрого возведения в матрицу, но мне трудно найти матрицы, которые я должен использовать. Я пытаюсь написать проблему на C ++. Может кто-нибудь дать мне несколько советов о том, как я должен относиться к этому типу проблемы?

2

Решение

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

Надеюсь это поможет!

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]