Вот все типы данных Rails 4 (миграция ActiveRecord):
:binary
:boolean
:date
:datetime
:decimal
:float
:integer
:bigint
:primary_key
:references
:string
:text
:time
:timestamp
Источник: http://api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/SchemaStatements.html#method-i-add_column
Они аналогичны ] Рельсы 3 .
Если вы используете PostgreSQL, вы также можете воспользоваться этими преимуществами:
:hstore
:json
:jsonb
:array
:cidr_address
:ip_address
:mac_address
Они сохраняются в виде строк, если вы запустите приложение с базой данных не-PostgreSQL.
Редактировать, 2016-Sep-19:
Существует намного больше специфичных для postgres типов данных в Rails 4 и еще больше в Rails 5.
Это касается чрезвычайно глубокой, сложной и активной области математики. Решение чертовски почти тривиально в некоторых случаях (линейное повторение) и чертовски почти невозможно в других (подумайте 2, 3, 5, 7, 11, 13, ....). Вы можете начать с рассмотрения производящих функций , например, и глядя на невероятную книгу Херба Уилфа (см. Стр. 1 (2e)) по этому вопросу, но это только у вас пока что.
Но я думаю, что лучше всего дать вверх, запросите всеобъемлющую Энциклопедию целочисленных последовательностей Слоана, когда вам нужно знать ответ, и вместо этого потратьте свое время на чтение мнений одного из самых эксцентричных личностей в этой глубокой теме.
. Любой, кто говорит вам, что эта проблема разрешима, продает вам змеиное масло (ср.
В целом нет одной функции.
Для указанной вами последовательности Он-лайн энциклопедия целочисленных последовательностей находит 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, 1431A130484 Сумма {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, 153A130485 Сумма {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, 183A104619 Запишите натуральные числа с основанием 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, 6A037123 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
Если вы ограничитесь полиномиальными функциями, это легко закодировать, и лишь слегка утомительно решить вручную.
Пусть , для некоторого неизвестного
Теперь решите уравнения
…
, которые представляют собой просто систему линейных уравнений.
Система компьютерной алгебры 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))
Если ваша последовательность основана на полиноме, то разделенные разности найдут этот многочлен, выраженный в терминах базиса Ньютона или биномиального базиса. См. это .
Если ваши данные гарантированно могут быть выражены в виде полинома, я думаю, вы сможете использовать R (или любой другой пакет, который предлагает регрессионную подгонку данных). Если ваша корреляция равна 1, то линия идеально подходит для описания ряда.
В регрессионный анализ входит множество статистических данных, и я недостаточно знаком даже с основами вычислений, чтобы дать вам много подробностей. .
Но, эта ссылка на регрессионный анализ в R может оказаться полезной
Думаю, ваша проблема некорректна. Для любого конечного числа целых чисел в последовательности с без производящей функции, следующим элементом может быть что угодно.
Вы должны предположить что-то о последовательности. Это геометрическое? Арифметика?