А вот расставить все дроби со знаменателем 7 может оказаться не очень тривиально:
Вопрос: а как понять (не выполняя кучи сравнений), что куда ставить?
Второй вопрос — а как устроены расстояния между соседними дробями в последовательности Фарея?
Математические байки
Photo
Скажем, в примере выше:
5/7 приходит между 2/3 и 3/4,
4/7 — между 1/2 и 3/5.
5/7 приходит между 2/3 и 3/4,
4/7 — между 1/2 и 3/5.
И уже несложно угадать, что 5/7 это (2+3)/(3+4), а 4/7 это (1+3)/(2+5).
То есть — новая дробь это всегда "сумма двоечника своих соседей", числитель с числителем, знаменатель со знаменателем.
Такую "сумму" называют медиантой; то, что она заключена между этими дробями, можно увидеть по-всякому, но лучше всего опять переходом от "проективной" картины к линейной. А именно — сопоставим каждой дроби p/q точку (p,q) плоскости; тогда взятие медианты это просто сложение векторов:
А разность двух соседних дробей a/b и c/b в любой последовательности Фарея — это 1/(bd). Что, опять-таки, можно угадать, посмотрев на несколько примеров; скажем,
3/5-4/7=(21-20)/35,
2/3-3/5=(10-9)/15;
после пары-тройки таких вычитаний становится понятно, что в числителе должны всегда быть единицы...
3/5-4/7=(21-20)/35,
2/3-3/5=(10-9)/15;
после пары-тройки таких вычитаний становится понятно, что в числителе должны всегда быть единицы...
Математические байки
Потому что в числителе разности дробей a/b-c/d = (ad-bc)/bd стоит определитель ad-bc — он же ориентированная площадь параллелограмма, натянутого на вектора (a,b) и (c,d):
И, конечно, это означает, что площадь соответствующих параллелограмов равна 1. И если поверить в предыдущий факт — что новоприходящая дробь это всегда медианта соседей — то это мгновенно доказывается по индукции. Ведь каждый из двух новопоявляющихся параллелограммов имеет такую же площадь:
Собственно, вывод в другую сторону (что до медианты, с меньшим, чем b+d, знаменаетелем, ничего не появится) тоже мгновенный. Потому что если между a/b и c/d появляется e/f, то разности:
e/f-a/b не меньше 1/bf
c/d-e/f не меньше 1/df,
а в сумме не меньше
1/bf + 1/df = (b+d)/bdf.
e/f-a/b не меньше 1/bf
c/d-e/f не меньше 1/df,
а в сумме не меньше
1/bf + 1/df = (b+d)/bdf.
Поскольку мы делили отрезок длины 1/bd — то f не меньше, чем b+d.
На самом деле, сумма двух выводов выше доказывает по индукции и то, и другое, но в этом проще убедиться самостоятельно.
С другой стороны — то, что в числителе разности всегда 1, можно увидеть из формулы Пика.
С другой стороны — то, что в числителе разности всегда 1, можно увидеть из формулы Пика.
Ибо у треугольника с вершинами O=(0,0), A=(a,b), B=(c,d) других целых точек нет ни внутри (иначе бы a/b и c/d не были соседними в последовательности Фарея), ни на границе (по той же причине для стороны AB и потому что дроби несократимы для сторон OA и OB). А по формуле Пика его площадь — которая есть половина площади соответствующего параллелограмма — тогда равна
3/2 - 1 = 1/2.
3/2 - 1 = 1/2.
Отсюда же, кстати, следует и теорема Дирихле о приближении — что для любого N любое вещественное число x можно приблизить дробью p/q, со знаменателем q, не большим N, так, чтобы
|x-p/q| < 1/Nq.
|x-p/q| < 1/Nq.
Действительно, пусть x на отрезке [0,1] (добавить целое число уж точно можно); рассмотрим последовательность Фарея порядка N и тот отрезок
c/d < x < a/b,
куда наше приближаемое число попало. Раз медианта e/f=(a+c)/(b+d) уже не вошла в последовательность Фарея, то у неё слишком большой знаменатель f=b+d>N. Подотрезки, на которые она делит наш отрезок, имеют длину 1/bf (со второй вершиной a/b) и 1/df (со второй вершиной c/d).
Соответственно, берём тот из них, куда попала наша точка x, и берём вторую вершину в качестве приближения. Победа!
c/d < x < a/b,
куда наше приближаемое число попало. Раз медианта e/f=(a+c)/(b+d) уже не вошла в последовательность Фарея, то у неё слишком большой знаменатель f=b+d>N. Подотрезки, на которые она делит наш отрезок, имеют длину 1/bf (со второй вершиной a/b) и 1/df (со второй вершиной c/d).
Соответственно, берём тот из них, куда попала наша точка x, и берём вторую вершину в качестве приближения. Победа!