Программирование на C++: приближение действительного числа дробью

Очень простая программа, позволяющая для заданного действительного числа получить приближение в виде дроби (с заданной точностью):

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