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 table at the top of 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****Error in dembskis****Hazen Functional Complexity**

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, 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))}

Error in dembskis

That error might be measured in a unit called "dembskis" that scaled things in terms of orders of magnitude came up in discussion of errors in an essay by Marks and Dembski. The reference unit of error for the measure is taken from the case mentioned above in the M/N ratio calculation note, where Dembski had an error of about 65 orders of magnitude. "Dave W." formalized the notion with an equation, and W. Kevin Vicklund suggested using a rounded-off value of 150 as the constant in the denominator, based upon Dembski's figure of 10^150 as a universal small probability. Thus, the final form of quantifying error in dembskis (Reed Cartwright proposed the symbol Δ) is

Δ = | ln(erroneous measure) - ln(correct measure) | / 150

There is not yet a consensus on what to term the unit, but two proposals being considered are "Dmb" and "duns".

Hazen Functional Complexity

The calculation is made per the 2007 PNAS paper by Hazen *et al.*. Given a number of possible configurations, *N*, and a (smaller) number of functionally equivalent configurations, *M(E _{x})*, one obtains the functional complexity metric,

*I(E _{x})* = - log

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.

Hazen RM, Griffin PL, Carothers JM, Szostak JW (2007) Functional information and the emergence of biocomplexity. Proc Natl Acad Sci U S A 104 Suppl 1:8574-81.

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 FIC then was altered to work within a Drupal page using the "PHP code" option.

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