Очень простая программа, позволяющая для заданного действительного числа получить приближение в виде дроби (с заданной точностью):
p ≈ 355 / 113
В данном случае число пи приближено дробью, значение которой равно 3,1415929.
Алгоритм прост.
Приближаемое число обозначается r. Работа начинается с дроби p/qq при значениях числителя p=0 и знаменателя q=1. Эти начальные значения особой роли не играют, так как алгоритм подбирает их в итерациях.
Для текущих p и q проверяется условие p/q > r. Если оно справедливо, то числитель дроби p слишком велик, и знаменатель q увеличивается на 1. Если p/q < r, то наоборот на 1 увеличивается числитель p.
Ограничением для алгоритма может быть предельное значение знаменателя max_q. От этого значения зависит точность приближения - чем большие знаменатели допускаются, тем точнее приближается число r.
файл real_to_rational.cpp (500 байтов)
© Mental Computing 2010