Это не вопрос Java. Это основной математический вопрос. Если вы считаете [1, 4, 9, 16, 25], воспользуйтесь различиями между ними, вы получите [3, 5, 7, 9]. Сделайте это снова, и вы получите [2, 2, 2].
Теперь взгляните на [1, 8, 27, 64, 125] ... различия есть [7, 19, 37, 61]. Различия между ними развиваются [12, 18, 24], а различия еще раз [6, 6].
Если вы сделали это при х^4, то четвёртая множество различий, которые вы должны были бы бы [24, 24, 24 ...] и т.д.
Другими словами, если наивысший член уравнение равно * x^n, то конечная разница, которую вы получаете, после разницы n раз, равна * n !.
Итак, начиная с [1, 683, 44287, 838861] первое различие - [682, 43604, 794574], второе отличие [42922, 750970], а третье отличие - [708048]. Так разделите это на 3! или 6, и вы получите первый член 118008 * x^3.
Теперь вы можете вернуться назад, вычесть 118008 * x^3 из вашей исходной последовательности и выяснить, что x^2 член из вашей новой последовательности [-118007, -943381, -3141929, -6713651]. Вероятно, есть ярлык, который вы можете добавить сюда, чтобы вам не нужно было возвращаться к началу, но это зависит от вас, чтобы понять.
У вас вопрос не подходит для SO. Кроме того, здесь нет важного языка, это алгоритм. Поиск генерирующих функций - это проблема, которая не связана напрямую с программированием. – Jack
Этот вопрос кажется не по теме, потому что речь идет о математике (попробуйте http://math.stackexchange.com). –
Почему это так? Я очень хорошо разбираюсь в решении этого вопроса на бумаге, о чем я прошу об алгоритме. – user2705335