by Wesley R. Elsberry

The Finite Improbability Calculator is a collection of routines
to permit exploration of very small probabilities. Many
antievolutionary arguments are based upon an *argument from
improbability*: some phenomenon is so improbable that it must
be due to an intelligent agent.

- Select an operation to perform from the list.
- Enter the parameters for the operation.
- Press the button for the operation.
- Results appear in a separate browser window. (You may need to turn off anti-popup services for this page.)

**Change of Base****Factorial****Permutation****Combination****Specified Anti-Information****Dembski's p_origin****Dembski's M/N ratio****Dembski's p_local****Dembski's p_perturb**

Page numbers refer to "No Free Lunch".

Page numbers refer to "No Free Lunch".

Page numbers refer to "No Free Lunch".

Factorial: The point here is to permit calculation of factorial(n) where n can be a large number, say the number of proteins which an organism codes for. However, even a "double" floating-point number overflows at 1.7e308. So factorials are calculated here using a logarithmic representation. The Stirling approximation is used for very large n, and a logarithmic version of the classical iterative method is used for smaller n. Stirling's approximation is taken as

n! ~ n^n e^(-n) sqrt(2 * pi * n) (1 + 1/(12n))

Change of base: Calculated as

new exponent = (old_exponent * ln(oldbase)) / ln(newbase)

Permutation and combination: Uses the factorial function discussed above.

permutations = n! / (n - k)!

combinations = n! / k!(n - k)!

**Specified Anti-Information**

Specified Anti-Information is an application of the "universal distribution" of Kirchherr et alia 1997, expounded in Elsberry and Shallit 2003. SAI is a framework intended as an alternative to Dembski's "design inference". The SAI of a bit string is defined as

SAI = max(0,|y| - C(y))

where |y| is the length of the bit string of interest and C(y) is the Kolmogorov complexity of y. Since C(y) is uncomputable, mostly we should speak of Known Specified Anti-Information, which is just the maximum SAI that can be established by application of known compression techniques.

SAI is defined for bit strings, but often we deal with strings based on a symbol set with cardinality > 2. It is straightforward to determine the length of a bit string needed to represent such a string, though, using the "change of base" function presented earlier. The second part of the SAI section permits SAI to be calculated for such strings.

Something to note here is the apparent difference in ease of application of SAI with the various measures introduced by Dembski.

p_{orig} approximation (as per NFL p.301):

p_{orig} ~ symbols^(-length (perturbation_tolerance -
perturbation_identity))

The discussion on page 301 implies that functional proteins may themselves be considered "discrete combinatorial objects" to which this formula would apply. With a little exploration, then, one can verify that any functional protein of length 1153 or greater has an origination probability smaller than Dembski's "universal small probability".

p_{local} calculation (as per NFL p.293):

p_{local }= (units in system * substitutions / total different
units) ^{(units in system * copies)}

M/N ratio approximation (as per NFL p.297):

M/N ratio ~ ((combinations(length, tolerance * length) *
(symbols-1)^{(tolerance * length)}) / (combinations(length,
identity * length) * (symbols-1)^{(identity * length)}))

There is a discrepancy between the result which Dembski reports for his example calculation of an M/N ratio on p.297 and what the Finite Improbability Calculator reports. Plug in symbols=30, length=1000, tolerance=0.1, and identity=0.2 and the result comes out as 5.555117e-223, whereas Dembski reports 10^-288, or a factor of 10^-65 off. Jeff Shallit noted this error in Dembski's text some time back.

DCO p_{perturb} approximations (as per NFL pp.299 and
300):

p_{perturb} (p.299) ~ ((combinations(length, tolerance *
length) / (combinations(length, identity * length)) *
(symbols-1)^{(length * (tolerance - identity))}

p_{perturb} (p.300) ~ (symbols)^{(length * (tolerance -
identity))}

Dembski, William A. 2002. No Free Lunch. Rowman & Littlefield Publishers.

Elsberry, Wesley R. and Jeffrey Shallit. 2003. Information Theory, Evolutionary Computation, and Dembski's "Complex Specified Information". http://www.antievolution.org/people/wre/papers/eandsdembski.pdf.

Kirchherr, W., M. Li, and P. Vitanyi. The miraculous universal distribution. Math. Intelligencer 19(4) (1997), 7-15. http://www.cwi.nl/~paulv/papers/mathint97.ps

The Finite Improbability Calculator was first coded in spring of 2002, following publication of William Dembski's book, "No Free Lunch". The original utilized a Perl CGI script. The FIC was ported to a PHP instantiation in January, 2004, with routines added for calculating Specified Anti-Information.

The name of this page was inspired by "The Hitchhiker's Guide to the Galaxy" by the late great Douglas Adams.