Точность вычислений - числа с плавающей точкой. Экспонента считается неверно?

Jan 23, 2011 01:29

Нашел баг в библиотеке alexandria: субфакториалы (http://en.wikipedia.org/wiki/Subfactorial) читаются неверно, начиная с 11 ( Read more... )

Leave a comment

Comments 2

love5an January 23 2011, 05:32:59 UTC
ну совершенно ясно что все это от ограничений точности в числах с плавающей точкой.
Формула основана на e, и на округлении.
Так как e - число трансцендентное, рациональной дробью его представить нельзя, можно только до определенной точности. float лисповые в точности ограничены машинными флоатами, то есть максимум - long-float, который суть long double 80-битный, например(в clisp так; в sbcl есть только double-float). Произвольная точность задается через рациональную дробь, но опять же, e - только приближением. Погрешность, соответственно, все так же будет, просто после определенного числа.

Но вроде бы есть формула и без e, если верить википедии

... )

Reply


anonymous June 15 2012, 07:03:27 UTC
а для ln((1+x)/(1-x)) , по какой формуле посчитать и как? спасибо

Reply


Leave a comment

Up