Если идёт речь о прямом (в том или ином смысле) вычислении по формуле Бине, то можно заметить, что член считать нет смысла: число по жизни находится между и , а значит его степени будут (по модулю) всё меньше и меньше (при возведении числа между 0 и 1 в степень оно начинает катострофически быстро стремится к нулю при росте , а затем сделать один из следующих вариантов: 1. Округлить до ближайшего целого. Поскольку, уже с нулевого члена () модуль второго слагаемого будет по модулю меньше , то банальное округление до ближайшего целого числа сделает своё дело. 2. Определить знак и округлить в соответствующую сторону до ближайщего целого. Действительно, знак это члена – когда делится на 2, и , когда не делится. Следовательно, если мы знаем, что нужно добавить число с данным знаком и по модулю и получить целое число, то это означает округление в сторону данного знака до ближайшего целого.
Главный вопрос. Пусть мы посчитали пару . Как же её поделить на и округлить?
На него можно ответить так. Ну, , которое можно просто вычесть и времено про него забыть (дабы на округление оно не влияет). Теперь же нам нужно найти такое число , что . Тут два варианта: либо по-"глупому" написать ряд для (благо, он классно сходится) или посчитать префикс цепной дроби того числа (или ещё что-нибудь) и приближать ими (но это нудно и нужно писать оценки), либо бинпоиском искать такое число , чьё будет ближе всех к .
С другой стороны есть другой формальный подход. Кольцо таких пар (формально, ) обладает ещё одной интересной операцией: операцией сопряжения, которая паре (числу) сопоставит пару . Выглядит как странная операция, которая меняет второй аргумент, но не всё так просто. Во-первых она сохраняет операции кольца (и поля, если рассматривать пары рациональных чисел):
. Действительно,
. Действительно,
А во-вторых, он позволяет упростить много счёта. Давайте немного обозначим: , . Тогда нам надо посчитать Но заметим, что , а тогда , т.е. высчитав пару для мы можем буквально мгновенно получить пару для : просто измените знак второго члена на противоположный. И счёт фактически сократится в два раза.
То, что полученное кольцо пар (a, b) является полем (т.е. можно делить такие целочисленные пары на ненулевые целочисленные пары и получать сновва целочисленные пары) неверно. Действительно, если попробовать разделить пару (1, 0) (т.е. просто 1) на пару (0, 1) (т.е. \sqrt{5}), то мы должны получить пару (0, 1/5) = (0, 0.2) (т.е. \sqrt{5}/5 = 1/\sqrt{5}), что не является целочисленной парой!
В чём же ошибка в рассуждении? Всё просто: если система линейных уравнений (СЛУ) с целочисленными коэффициентами имеет ненулевой определитель, то это значит, что оно имеет решение в поле, но не обязательно в кольце (например, простое СЛУ 2x = 1 имеет определитель 2, но и единственное решение 1/2 = 0.5).
В данном случае, чтобы получить поле, нужно рассматривать пары рациональных чисел (а не целых).
P.S. Это не влияет на суть статьи: мы не пользовались тем, что это поле, а все моменты вне этих абстракций тщательно описанны. Но ошибка есть ошибка.
Если идёт речь о прямом (в том или ином смысле) вычислении по формуле Бине, то можно заметить, что член
считать нет смысла: число
по жизни находится между
и
, а значит его степени будут (по модулю) всё меньше и меньше (при возведении числа между 0 и 1 в степень
оно начинает катострофически быстро стремится к нулю при росте
, а затем сделать один из следующих вариантов:
) модуль второго слагаемого
будет по модулю меньше
, то банальное округление до ближайшего целого числа сделает своё дело.
и округлить в соответствующую сторону до ближайщего целого. Действительно, знак это члена –
когда
делится на 2, и
, когда не делится. Следовательно, если мы знаем, что нужно добавить число с данным знаком и по модулю
и получить целое число, то это означает округление в сторону данного знака до ближайшего целого.
. Как же её поделить на
и округлить?
, которое можно просто вычесть и времено про него забыть (дабы на округление оно не влияет). Теперь же нам нужно найти такое число
, что
. Тут два варианта: либо по-"глупому" написать ряд для
(благо, он классно сходится) или посчитать префикс цепной дроби того числа (или ещё что-нибудь) и приближать ими (но это нудно и нужно писать оценки), либо бинпоиском искать такое число
, чьё
будет ближе всех к
.
) обладает ещё одной интересной операцией: операцией сопряжения, которая паре (числу)
сопоставит пару
. Выглядит как странная операция, которая меняет второй аргумент, но не всё так просто. Во-первых она сохраняет операции кольца (и поля, если рассматривать пары рациональных чисел):
1. Округлить до ближайшего целого. Поскольку, уже с нулевого члена (
2. Определить знак
Главный вопрос. Пусть мы посчитали пару
На него можно ответить так. Ну,
С другой стороны есть другой формальный подход. Кольцо таких пар (формально,
А во-вторых, он позволяет упростить много счёта. Давайте немного обозначим:
,
. Тогда нам надо посчитать
Но заметим, что
, а тогда
, т.е. высчитав пару для
мы можем буквально мгновенно получить пару для
: просто измените знак второго члена на противоположный. И счёт фактически сократится в два раза.
То, что полученное кольцо пар
(a, b)является полем (т.е. можно делить такие целочисленные пары на ненулевые целочисленные пары и получать сновва целочисленные пары) неверно. Действительно, если попробовать разделить пару(1, 0)(т.е. просто1) на пару(0, 1)(т.е.\sqrt{5}), то мы должны получить пару(0, 1/5) = (0, 0.2)(т.е.\sqrt{5}/5 = 1/\sqrt{5}), что не является целочисленной парой!В чём же ошибка в рассуждении? Всё просто: если система линейных уравнений (СЛУ) с целочисленными коэффициентами имеет ненулевой определитель, то это значит, что оно имеет решение в поле, но не обязательно в кольце (например, простое СЛУ
2x = 1имеет определитель 2, но и единственное решение 1/2 = 0.5).В данном случае, чтобы получить поле, нужно рассматривать пары рациональных чисел (а не целых).
P.S. Это не влияет на суть статьи: мы не пользовались тем, что это поле, а все моменты вне этих абстракций тщательно описанны. Но ошибка есть ошибка.
При умножении
(a + \sqrt{5} b) (a - \sqrt{5} b)получаетсяa^2 - 5 b^2. А у Вас в результате везде написаноb^2без квадрата.