Каковы некоторые алгоритмы для нахождения закрытой функции формы, учитывая целочисленную последовательность?

Вот все типы данных Rails 4 (миграция ActiveRecord):

  • :binary
  • :boolean
  • :date
  • ] :datetime
  • :decimal
  • :float
  • :integer
  • :bigint
  • :primary_key
  • :references
  • :string
  • :text
  • :time
  • [1138]
  • :timestamp

Источник: http://api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/SchemaStatements.html#method-i-add_column
Они аналогичны ] Рельсы 3 .

Если вы используете PostgreSQL, вы также можете воспользоваться этими преимуществами:

  • :hstore
  • :json
  • [1141]
  • :jsonb
  • :array
  • :cidr_address
  • :ip_address
  • :mac_address
  • [1146]

Они сохраняются в виде строк, если вы запустите приложение с базой данных не-PostgreSQL.

Редактировать, 2016-Sep-19:

Существует намного больше специфичных для postgres типов данных в Rails 4 и еще больше в Rails 5.

6
задан wkf 25 June 2009 в 01:50
поделиться

6 ответов

Это касается чрезвычайно глубокой, сложной и активной области математики. Решение чертовски почти тривиально в некоторых случаях (линейное повторение) и чертовски почти невозможно в других (подумайте 2, 3, 5, 7, 11, 13, ....). Вы можете начать с рассмотрения производящих функций , например, и глядя на невероятную книгу Херба Уилфа (см. Стр. 1 (2e)) по этому вопросу, но это только у вас пока что.

Но я думаю, что лучше всего дать вверх, запросите всеобъемлющую Энциклопедию целочисленных последовательностей Слоана, когда вам нужно знать ответ, и вместо этого потратьте свое время на чтение мнений одного из самых эксцентричных личностей в этой глубокой теме.

. Любой, кто говорит вам, что эта проблема разрешима, продает вам змеиное масло (ср.

17
ответ дан 8 December 2019 в 02:41
поделиться

В целом нет одной функции.

Для указанной вами последовательности Он-лайн энциклопедия целочисленных последовательностей находит 133 совпадения в его базе данных интересных целочисленных последовательностей. Я скопировал сюда первые 5.

A000217 Треугольные числа: a (n) = C (n + 1,2) = n (n + 1) / 2 = 0 + 1 + 2 + .. . + п.
0, 1, 3, 6, 10, 15 , 21, 28, 36, 45, 55, 66, 78, 91, 105, 120, 136, 153, 171, 190, 210, 231, 253, 276, 300, 325, 351, 378, 406, 435, 465, 496, 528, 561, 595, 630, 666, 703, 741, 780, 820, 861, 903, 946, 990, 1035, 1081, 1128, 1176, 1225, 1275, 1326, 1378, 1431

A130484 Сумма {0 <= k <= n, k mod 6} (частичные суммы A010875 ).
0, 1, 3, 6, 10, 15 , 15, 16, 18, 21, 25, 30, 30, 31, 33, 36, 40, 45, 45, 46, 48, 51, 55, 60, 60, 61, 63, 66, 70, 75, 75, 76, 78, 81, 85, 90, 90, 91, 93, 96, 100, 105, 105, 106, 108, 111, 115, 120, 120, 121, 123, 126, 130, 135, 135, 136, 138, 141, 145, 150, 150, 151, 153

A130485 Сумма {0 <= k <= n, k mod 7} (частичные суммы A010876 ).
0, 1, 3, 6, 10, 15 , 21, 21, 22, 24, 27, 31, 36, 42, 42, 43, 45, 48, 52, 57, 63, 63, 64, 66, 69, 73, 78, 84, 84, 85, 87, 90, 94, 99, 105, 105, 106, 108, 111, 115, 120, 126, 126, 127, 129, 132, 136, 141, 147, 147, 148, 150, 153, 157, 162, 168, 168, 169, 171, 174, 178, 183

A104619 Запишите натуральные числа с основанием 16 в треугольнике с k цифрами в k-й ряд, как показано ниже. Последовательность дает начальную диагональ.
1, 3, 6, 10, 15 , 2, 1, 1, 14, 3, 2, 2, 5, 12, 4, 4, 4, 13, 6, 7, 11, 6, 9, 9, 10, 7, 12, 13, 1, 0, 1, 10, 5, 1, 12, 8, 1, 1, 14, 1, 9, 7, 1, 4, 3, 1, 2, 2, 1, 3, 4, 2, 7, 9, 2, 14, 1, 2, 8, 12, 2, 5, 10, 3, 5, 11, 3, 8, 15, 3, 14, 6, 3, 7, 0, 4, 3, 13, 4, 2, 13, 4, 4, 0, 5, 9, 6, 5, 1, 15, 5, 12, 11, 6

A037123 a (n) = a (n-1) + сумма цифр числа n.
0, 1, 3, 6, 10, 15 , 21, 28, 36, 45, 46, 48, 51, 55, 60, 66, 73, 81, 90, 100, 102, 105, 109, 114, 120, 127, 135, 144, 154, 165, 168, 172, 177, 183, 190, 198, 207, 217, 228, 240, 244, 249, 255, 262, 270, 279, 289, 300, 312, 325, 330, 336, 343, 351, 360, 370, 381

Если вы ограничитесь полиномиальными функциями, это легко закодировать, и лишь слегка утомительно решить вручную.

Пусть f(x)=a_0+a_1x+a_2x^2+\cdots+a_{n-1}x^{n-1}+a_nx^n, для некоторого неизвестного a_0\ldots a_n

Теперь решите уравнения
y_0=f(0)=a_0
y_1=f(1)=a_0+a_1+a_2+\cdots+a_{n-1}+a_n
y_2=f(2)=a_0+2a_1+4a_2+\cdots+2^{n-1}a_{n-1}+2^na_n

y_n=f(n)=a_0+na_1+n^2a_2+\cdots+n^{n-1}a_{n-1}+n^na_n
, которые представляют собой просто систему линейных уравнений.

10
ответ дан 8 December 2019 в 02:41
поделиться

Система компьютерной алгебры Axiom включает пакет для этой цели. Вы можете прочитать его документацию здесь .

Вот результат для вашей примерной последовательности в FriCAS (ответвление Axiom):

(3) -> guess([1, 3, 6, 10, 15])

                 2
                n  + 3n + 2
(3)  [[function= -----------,order= 0]]
                     2
Type: List(Record(function: Expression(Integer),order: NonNegativeInteger))
2
ответ дан 8 December 2019 в 02:41
поделиться

Если ваша последовательность основана на полиноме, то разделенные разности найдут этот многочлен, выраженный в терминах базиса Ньютона или биномиального базиса. См. это .

1
ответ дан 8 December 2019 в 02:41
поделиться

Если ваши данные гарантированно могут быть выражены в виде полинома, я думаю, вы сможете использовать R (или любой другой пакет, который предлагает регрессионную подгонку данных). Если ваша корреляция равна 1, то линия идеально подходит для описания ряда.

В регрессионный анализ входит множество статистических данных, и я недостаточно знаком даже с основами вычислений, чтобы дать вам много подробностей. .

Но, эта ссылка на регрессионный анализ в R может оказаться полезной

3
ответ дан 8 December 2019 в 02:41
поделиться

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

Вы должны предположить что-то о последовательности. Это геометрическое? Арифметика?

1
ответ дан 8 December 2019 в 02:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: