Добрый день!
Интересует оценка на величины значений x, y получающиеся алгоритмом Евклида. Много раз сдавал задачи с a, b <= 10^9 полагаясь на то, что ничего не переполнится в int и вроде так и есть (ну а если a, b <= 10^18 в long long вроде все норм). Но хочется знать это слабые тесты или есть какая-то точная оценка/худший тест.
Ну, если (a, b) = 1, то
Если взять обозначения, как на e-maxx.ru, то |x| ≤ b, |y| ≤ a.
Докажем по индукции: a и b считаем неотрицательными. База — на предпоследнем шаге a|b, x = 1, y = 0, b ≠ 0, поэтому всё в порядке.
Переход — пусть из пары (b, bq + a)(a < b, q≥0) мы попали в пару (a, b), для которой результат — (x, y). Тогда для первой пары результат будет (y - qx, x). Оценим: |y - qx| ≤ |y| + |qx| ≤ a + qb, |x| ≤ b, что и требовалось.
Круто спасибо.
Единственно, предпоследнего шага может не быть. Например, a = 1, b = 0. Вырожденный случай, но все же.