Каким-то образом я пришел к идее обратной трансформации: если известно
, то как вычислить
? Здесь мне пригодились дополнительные значения
Опытным путем было установлено, что
Т.е. если мы знаем
, то можем найти все значения
для любого
.
Важно: работает только для возрастающих последовательностей
у которых
. Исходя из этих условий мы без проблем можем задавать
.
По сути для вычисления
нам достаточно знать
и все предыдущие значения
:
Отсюда мы также учимся вычислять
без суммирования
:
Если сохранять значения в массивы, то скорость счета увеличивается в разы. Данные результаты неоптимальны при вычислении отдельных значений, но для получения списка
первых значений
или
они крайне полезны.
Теперь вы можете получать больше значений
:
Код:
f(n)=n
s1(n)=my(v, v1); v=vector(n+1,i,1); v1=v; v2=vector(n+1,i,0); v2[1]=1; for(i=1,n,for(j=1,n-i+1,v1[j]=v[j+1]+sum(k=1,j,f(j-k)*v[k])); v=v1; v2[i+1]=v[1];); v2
w=s1(50)
print(w)
Кроме того, вы можете выбрать любую последовательность в энциклопедии (обязательно возрастающую и с первым членом равным единице!), скопировать несколько первых членов и вставить в следующую программку:
Код:
w=[1, 2, 3, 5, 7, 11, 15, 22, 30, 42, 56, 77, 101, 135, 176, 231, 297, 385, 490, 627, 792, 1002, 1255, 1575, 1958, 2436, 3010, 3718, 4565, 5604, 6842, 8349, 10143, 12310, 14883, 17977, 21637, 26015, 31185, 37338, 44583, 53174, 63261, 75175, 89134, 105558, 124754, 147273, 173525]
f(n)=my(A=w, B=[A,[1]], v); v=vector(n+1,i,0); v[1]=A[2]-A[1]; for(i=2,n+1,B=vector(i+1,j,if(j==1,B[1],vector(i-j+2,k,if(j==i+1,1,if(k<i-j+2,B[j][k]))))); for(j=2,i,B[j][i-j+2]=B[j-1][i-j+3]-sum(k=1,j-1,v[j-k]*B[k][i-j+2])); v[i]=B[i][2]-sum(j=1,i-1,v[j])-1); v
w1=f(#w-2)
print(w1)
Она выполнит обратную трансформацию, т.е. вернет вам
, наличие которой вы можете проверить в энциклопедии. Если результат окажется положительным, помещайте исходную и результирующую последовательность в этой теме.
В приведенном выше примере мы берем за
последовательность
A000041 и получаем гипотезу, что
это
A176950, члены которой умножены на
.
Ну а я пока продолжу работу над обратной трансформацией для
. Жду ваших постов!